<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alioth.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cholmondely</id>
	<title>Elite Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alioth.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cholmondely"/>
	<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php/Special:Contributions/Cholmondely"/>
	<updated>2026-08-13T14:23:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=SOTL_Exploration&amp;diff=90147</id>
		<title>SOTL Exploration</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=SOTL_Exploration&amp;diff=90147"/>
		<updated>2026-08-12T08:55:58Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Linked Captain Beatnik's new Gravitational Sensor Readout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTL Exploration.png|thumb|right|The new F6 screen!]]&lt;br /&gt;
[[File:SOTL Exploration F7.png|thumb|right|The new F7 screen!]]&lt;br /&gt;
[[Image:Sotl-scan.png|thumb|right|Compass and compass data]]&lt;br /&gt;
'''Song of the Labyrinth: Exploration''' is an experimental scenario OXP for Oolite, set in a very different part of space, and a considerably lower-tech environment than the Oolite setting.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The colony ship ''Local Maximum'' suffered an extremely severe hyperspace misjump around seventy years ago, arriving in an uncharted system thousands of light years away from known space. The colony ship's hyperdrive was severely damaged, and the dim red star they named Max's Drift had no habitable planets and poor mineral reserves. Most of the ship's internal equipment survived the accident, and the colonists have been able to survive using hydroponics facilities and extracting water and metals from the system's asteroids.&lt;br /&gt;
&lt;br /&gt;
Mining has recently obtained a small surplus of Uranium and Osmium required for the production of hyperspace fuel, and a cargo shuttle has been extensively refitted to carry a small hyperdrive and a range of survey gear. Its initial task is to survey the local cluster, hoping to find minerals which so far have not been located in exploitable quantities, both to restock the colonists' reserves and to allow fuel and equipment to be produced for a more extended mission.&lt;br /&gt;
&lt;br /&gt;
=== Cim's summary ===&lt;br /&gt;
 This is an OXP which uses the Oolite engine to make a game based on exploration rather than on combat and trading. The player starts off in the centre of the map and explores the surrounding systems visually and with a range of sensor tools.&lt;br /&gt;
 &lt;br /&gt;
 Implemented so far:&lt;br /&gt;
 &lt;br /&gt;
    Basic multi-planet system maps (much more to do here)&lt;br /&gt;
    Hyperspace is its own thing rather than a cut-scene tunnel&lt;br /&gt;
    More realistic (though still somewhat adjusted) system scale&lt;br /&gt;
    Basic planetary detection and parallax searches&lt;br /&gt;
    Gravitational sensors to measure planetary mass, and detect planets beyond visual range&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
There are 3 files.&lt;br /&gt;
:The [https://cim.sotl.org.uk/games/files/oolite/SOTL_Exploration_0.4.oxz Exploration OXZ] (SOTL_Exploration_0.4)&lt;br /&gt;
:The [https://cim.sotl.org.uk/games/files/oolite/Song_of_the_Labyrinth_Startup_1.1.oxz Loader OXZ] (Song_of_the_Labyrinth_Startup_1.1)&lt;br /&gt;
:And [https://cim.sotl.org.uk/games/files/oolite/Song_of_the_Labyrinth_Altmap_1.0.oxz Altmap] (Song_of_the_Labyrinth_Altmap_1.0) - see [[SOTL Altmap]] for details of this second scenario&lt;br /&gt;
&lt;br /&gt;
As this is a scenario OXP which changes many of Oolite's basic rules, it is disabled in conventional Oolite games, and requires the starting of a new game from a special position to play it. This position is available in the SOTL Loader/Startup  OXP (for technical reasons this must be downloaded separately).&lt;br /&gt;
&lt;br /&gt;
None of your normal OXPs will be usable in a SOTL Exploration game.&lt;br /&gt;
&lt;br /&gt;
For more information, see [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17603 the forum thread]&lt;br /&gt;
&lt;br /&gt;
===Warning===&lt;br /&gt;
This is an experimental OXP, and the Startup OXP may need to be updated if the main OXP is - which will mean you lose any progress (and of course, you also have to use a nightly Oolite build). Comments during development are extremely welcome but don't get too attached to your progress yet.&lt;br /&gt;
&lt;br /&gt;
[[File:Lagrange Points (Basic).png|thumb|right|400px|The five Lagrange points generated by the interaction of the gravity of the Sun with that of the Earth]]&lt;br /&gt;
[[File:Lagrange Points.png|thumb|right|400px| Effective potential contour map (not to scale) of Sun-Earth system: L1, L2, L3 are unstable saddle points; L4, L5 are maxima but stable because of the Coriolis effect]]&lt;br /&gt;
==Equipment fitting==&lt;br /&gt;
The '''Shaula'''-class survey ship you fly can carry ten modules (in addition to the generator and flight computer which must be carried). The initial fitting is 3 fuel tanks, 3 capacitors, 1 gravity sensor, 1 spectroscopic sensor, and 1 prospecting laser, though you can customise this as much as you like before you leave.&lt;br /&gt;
&lt;br /&gt;
===Flight computer===&lt;br /&gt;
The flight computer provides navigation support in both normal space and hyperspace, and integrates the output from your ships sensors - without it, you will have to carry out many more tasks manually, and you are recommended to return to base immediately for repairs. &lt;br /&gt;
&lt;br /&gt;
It will automatically mark planets once you approach closely enough to get accurate information on their position and speed, and give them a preliminary designation. Information about the currently selected target will be displayed on your HUD&lt;br /&gt;
&lt;br /&gt;
It has three primable modes:&lt;br /&gt;
* '''bookmark''': place a waypoint at your current location and heading. Useful if you spot something interesting but can't immediately check it out. Only one bookmark can be used at once.&lt;br /&gt;
* '''lagrange''': places a waypoint at each of the 5 Lagrange points of the currently selected planet. Both the planet and star must have mass estimates recorded for this to work. The L4 and L5 points are stable and may contain small clusters of asteroids.&lt;br /&gt;
* '''engine mode''': switches the engines between &amp;quot;precision&amp;quot; and &amp;quot;cruise&amp;quot; mode. Cruise mode is significantly faster and will generally be used, but precision mode will make flying near asteroids and docking with the Local Maximum considerably safer. You must be stationary to switch engine modes. The HUD's speed bar will indicate either '''pn''' (Precision mode) or '''CR''' (Cruise mode).&lt;br /&gt;
&lt;br /&gt;
===Fuel tanks===&lt;br /&gt;
Fuel tanks carry hyperspace fuel. Each tank carries 6 tonnes of fuel. A hyperspace jump consumes fuel in tonnes equal to the square root of its distance in LY (i.e. longer jumps are more fuel-efficient). Exiting a jump early will not save fuel. The only current source of fuel is the Local Maximum - plan your jumps carefully or risk being stranded in another system forever.&lt;br /&gt;
&lt;br /&gt;
===Capacitors===&lt;br /&gt;
Capacitors store energy from your generator to provide boosts to particular energy-intensive systems such as the lasers and hyperdrive. The more you have, the more margin for error you have in carrying out tasks, and the longer hyperspace jumps you can safely carry out.&lt;br /&gt;
&lt;br /&gt;
===Gravity scanner===&lt;br /&gt;
[[Image:Sotl-gravity.png|thumb|right|400px|Gravitational Sensor - do not forget to set the mode (&amp;quot;b&amp;quot;)]]&lt;br /&gt;
The gravity scanner allows the mass of nearby stars and planets to be estimated. If multiple gravity scanners are fitted, they are used in parallel to provide more accurate readings. You must be at a complete stop to use it. You may turn with it in use, but this will interfere with the readings.&lt;br /&gt;
&lt;br /&gt;
Use the mode key ('b') to cycle between the four modes of operation, and press 'n' to activate the current mode:&lt;br /&gt;
* power on/off: initial mode, you must switch it off to re-engage drives&lt;br /&gt;
* scan on/off: while scanning, it will collect gravitational data, giving you the intensity and direction of the net gravitation force (in the screenshot, below and slightly ahead of the ship). The longer the scan runs for, the more precise a reading you'll get. You can turn the ship while the scan is running, but this will affect the data quality and you'll then need to wait a little bit for it to settle. Once you're happy with the data collected, press 'n' to stop the scan&lt;br /&gt;
* assign scan: assigns the scan data to the selected compass target (you need to pick for yourself what object you believe to be the gravitationally dominant one). The system will filter out components of the gravitational force not parallel to the direction of the target, and then use that to calculate surface gravity&lt;br /&gt;
* filter scan: if you already know the approximate mass of an object from a previous scan, you can filter it out of the scan by selecting it with the compass and pressing 'n' in this mode. This lets you get more accurate readings for unmeasured objects, and with sufficient practice and luck can also help you find undiscovered planets.&lt;br /&gt;
&lt;br /&gt;
 What are x,y,z? Where are they measured from?&lt;br /&gt;
&lt;br /&gt;
Relative to your ship and its current axis set.&lt;br /&gt;
&lt;br /&gt;
 Why are they only positive?&lt;br /&gt;
&lt;br /&gt;
They are not: there's an implicit zero-mark about half-way up the scale.&lt;br /&gt;
&lt;br /&gt;
So if you turn your ship so that the X and Y are about half-way up, and the Z is all the way up, then the gravitational source should be in front of you. (On arrival in a new system, the dominant gravitational force will be the star, so this should be easy to verify!)&lt;br /&gt;
&lt;br /&gt;
 And what is the significance of all those &amp;quot;G&amp;quot; 's? &lt;br /&gt;
&lt;br /&gt;
That's the gravitational field strength at the current location - minus any gravitational fields from previously-identified bodies.&lt;br /&gt;
&lt;br /&gt;
 How does one use this equipment to find planets?&lt;br /&gt;
&lt;br /&gt;
So, to find planets:&lt;br /&gt;
:- get reasonably close to the star, turn to face it, verify that the grav sensor has the half-half-full XYZ readings mentioned above&lt;br /&gt;
:- set the star on the compass, assign the scan&lt;br /&gt;
:- now filter the scan to exclude the star&lt;br /&gt;
:- the high-unit (Gs, milli-Gs) of the grav scan should drop out&lt;br /&gt;
:- and you should have a new direction for the next most dominant gravitational source&lt;br /&gt;
:- turn to face that using the XYZ scans&lt;br /&gt;
:- then set off in that direction&lt;br /&gt;
:- hopefully after a while you'll come across a planet&lt;br /&gt;
&lt;br /&gt;
Now you can repeat the process - do another G-scan, and you should get a pretty high milli-G reading when near the planet. Assign the scan, filter out that planet, and then see what's left to find a second planet. Eventually you'll have filtered out all the major gravitational sources, and your gravity scan will just be returning noise in the pico-G region. At that point you've probably found all the planets. ''cim » Thu Mar 03, 2022 9:17 am''&lt;br /&gt;
&lt;br /&gt;
===Spectroscopic scanner and prospecting laser===&lt;br /&gt;
The spectroscopic scanner lets you determine the composition of stars, planets and asteroids by measuring emitted or reflected light. It returns the relative amounts of ten elements or compounds of particular survey interest, on a '''logarithmic scale'''.&lt;br /&gt;
[[Image:Sotl-spectroscopic.png|thumb|right|400px|Spectroscopic Scanner and Prospecting Laser]]&lt;br /&gt;
To use it, point your ship at the thing you want to scan, target it with compass or ident as appropriate, activate the sensor with 'n', and cycle the mode to the correct scan (star, planet or asteroid) with 'b'. Then, activate the scan with 'n' and watch the composition bars climb.&lt;br /&gt;
&lt;br /&gt;
If the target is an asteroid, you'll need to fire the prospecting laser to get anything decent out of the scan.&lt;br /&gt;
&lt;br /&gt;
When the scan looks done, press 'n' again to stop the scan and assign the results to the targeted body. Stars and planets are targeted with the compass; asteroids with the ident system.&lt;br /&gt;
&lt;br /&gt;
Try to stop the scan when the highest of the ten bars reaches the top but no later. Stop too soon and you'll not have collected enough light and may miss some important trace components or have inaccuracies in parameters; stop too late and you'll oversaturate the sensors and corrupt the result.&lt;br /&gt;
&lt;br /&gt;
The bars will go up faster the closer you are to the object, which reduces measurement noise - as does fitting multiple units - though this must be balanced against the risk of oversaturation.&lt;br /&gt;
&lt;br /&gt;
You get different information depending on what you targeted&lt;br /&gt;
* '''Stars''': brightness, and metallicity. Metallicity gives you a very rough idea of how likely the system is to be dense in heavy elements, based on the traces of them in the corona.&lt;br /&gt;
* '''Planets''': surface temperature and atmosphere type&lt;br /&gt;
* '''Asteroids''': mineral composition (there are a lot of potential minerals, so there's two scan types). Any minerals detected in exploitable amounts will be noted on scan completion - the threshold is a lot lower for the rare ones.&lt;br /&gt;
&lt;br /&gt;
===Sampling laser and sample collection bay===&lt;br /&gt;
The sampling laser will break small chunks off an asteroid - ideally one you have previously scanned with the prospecting laser - which can then be scooped into the sample collection bay and returned to the Local Maximum for extraction of valuable minerals. Each collection bay will hold 15 samples. (On particularly mineral-rich asteroids, a single sample may contain multiple usable minerals)&lt;br /&gt;
&lt;br /&gt;
===Wreckage, Silicates, Ice and Ores ===&lt;br /&gt;
The list of commodities on the [[F8 screen (commodity market)|F8 commodities screen]] is adumbrated by the F8F8 entry for each item - so there is no current need for ice, but there ''is'' for Uranium, Rhenium, ''etc''.&lt;br /&gt;
&lt;br /&gt;
[[Image:sotl-hyperspace.png|thumb|right|400px|SOTL Hyperspace]]&lt;br /&gt;
==Hyperspace==&lt;br /&gt;
Hyperspace travel is dangerous - especially in a ship as improvised as the Shaula-class. When you activate the hyperdrive, an additional instrument display will be projected on to your HUD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Above: '''progress to destination''' (&amp;quot;travelling&amp;quot;). This starts with you leaving the gravitational influence of your current system, then travelling through hyperspace, then entering your destination system. If you need to drop out mid-jump, this will determine where you end up.&lt;br /&gt;
# Right: '''current energy reserves'''. Hyperspace travel is energy-intensive. If you run out of energy mid-jump, your ship will be destroyed as it fails to maintain hyperspatial integrity. You can press 'h' again to abort the jump and drop out away from your destination, which will damage your ship due to the rough exit, but you should at least survive.&lt;br /&gt;
# Centre: '''jump status'''. If this is &amp;lt;font color=&amp;quot;Yellow&amp;quot;&amp;gt;'''yellow'''&amp;lt;/font&amp;gt; or &amp;lt;font color=&amp;quot;Green&amp;quot;&amp;gt;'''green'''&amp;lt;/font&amp;gt; the jump is going well. If &amp;lt;font color=&amp;quot;Orange&amp;quot;&amp;gt;'''orange'''&amp;lt;/font&amp;gt;, you are losing energy fast but should have sufficient reserves to finish the jump. If &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''red'''&amp;lt;/font&amp;gt;, you do not have sufficient reserves at the current rate of energy loss to complete the jump (this will start flashing &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''red'''&amp;lt;/font&amp;gt;/'''black''' if you have fewer than 5 seconds available)&lt;br /&gt;
# Left, bottom: '''jump alignment'''. You need to handle a lot of the jump yourself. Keep your &amp;lt;font color=&amp;quot;Yellow&amp;quot;&amp;gt;'''yellow'''&amp;lt;/font&amp;gt; marks aligned with the moving &amp;lt;font color=&amp;quot;Green&amp;quot;&amp;gt;'''green'''&amp;lt;/font&amp;gt; ones using your pitch and roll controls - the closer the alignment, the less energy you will need to maintain hyperspatial integrity.&lt;br /&gt;
&lt;br /&gt;
The pattern you need to align to is a property of the particular jump you are making, so with practice you can use less energy. Additionally, the more times you complete a jump the more computer assistance you receive with future jumps on the same route, which reduces the precision needed to maintain energy levels. (This means you need to carry fewer energy banks and can carry more survey equipment instead)&lt;br /&gt;
&lt;br /&gt;
Jumps are non-linear:&lt;br /&gt;
- time aligning in hyperspace needed to complete the jump is proportional to distance&lt;br /&gt;
- real time taken is proportional to distance squared&lt;br /&gt;
- fuel usage is proportional to the square root of the distance&lt;br /&gt;
&lt;br /&gt;
As large masses travel through normal space, they leave ripples behind them in the hyperspace medium, and semi-stable calm points. The larger the mass, the better the calm point. For this reason, a successful jump will place you in the calm point for the system's star.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
See the BB Discussion thread for Cim's 2021 notes about what he had hoped to add.&lt;br /&gt;
* 0.4: added sampling laser and collection bay, adjusted HUD to be easier to read when facing star&lt;br /&gt;
* 0.3: added spectroscopic scanner, asteroids, prospecting laser&lt;br /&gt;
* 0.2: first public release, added gravity scanner, stars, planets&lt;br /&gt;
* 0.1: unreleased, hyperspace changes only&lt;br /&gt;
&lt;br /&gt;
=== Cim's original plans for the future development of this OXP (or, what's missing!) ===&lt;br /&gt;
*A nicer cockpit/HUD.&lt;br /&gt;
&lt;br /&gt;
*The longer-term idea was that your home base would only have a limited amount of hyperspace fuel - large, but not infinite.&lt;br /&gt;
:You'd then need to locate and mine particular materials from asteroids which could be synthesised into fuel back at the home base.&lt;br /&gt;
:While doing that you'd also be picking up other raw materials, which would let your home build additional equipment&lt;br /&gt;
&lt;br /&gt;
*First basic one would be a mining drone which attached to an asteroid and started doing (slow!) automated mining of it. Build a few of those and you can start to get minerals in a bit faster. You'd have to give up a lot of your storage space to drag it out there in the first place, of course.&lt;br /&gt;
&lt;br /&gt;
*That would then unlock additional deployable modules - a basic fuel storage depot, which would let you move fuel out from the base ship, and then run bigger expeditions from there - and then later a portable fuel refinery which would mean you didn't have to transport mined materials all the way back to base to get more fuel&lt;br /&gt;
&lt;br /&gt;
*Probably then another sort of drone at some point which would pick up gas/liquid elements from planets for you, which would then extend the range of things your base could construct ... as well as resupply oxygen on the base ship, and other large-but-not-infinite consumables&lt;br /&gt;
&lt;br /&gt;
*Goals: As well as modules for you, also goals to supply materials to repairs on the base ship&lt;br /&gt;
:Eventually, then a long-term goal to repair the base ship entirely (including its hyperdrive), and gradually move it across the chart to one of the habitable planets you found while exploring for the rest of this. (And then you've &amp;quot;won&amp;quot; but obviously you can keep exploring the rest of the map, with the benefit that you no longer need to keep dragging oxygen and water and minerals to your base)&lt;br /&gt;
&lt;br /&gt;
I have no objection in principle to what there is being put in the Expansions Manager, maybe someone else will finish it off / take it in another direction someday.&lt;br /&gt;
&lt;br /&gt;
But ... one reason I didn't put it in the manager is that Exploration depends on Loader, so if you install Exploration, you get the Loader OXP too (Song_of_the_Labyrinth_Startup). Loader can't depend on Exploration, because if it did, Exploration won't load in the core scenario, and then Loader won't load because Exploration isn't there, and then you can't actually start the scenario game. But that means when you're installing from the manager, if you install Loader it can't then auto-install Exploration ... and then if you try to run Loader it'll probably go wrong with an entirely unhelpful error message&lt;br /&gt;
&lt;br /&gt;
The manager ideally needs a new relationship type adding to handle that sort of &amp;quot;install-time but not run-time&amp;quot; dependency, but I never got round to that either.&lt;br /&gt;
&lt;br /&gt;
You might be able to make this clear enough with descriptions.&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
=== Overview of SOTL Exploration ===&lt;br /&gt;
There seem to be three major points about this .oxp/game/proof of concept.&lt;br /&gt;
&lt;br /&gt;
1) It is ''genuine'' exploration within the Oolite game framework. Although the map is known (ie the location of the stars), one must &amp;quot;discover&amp;quot; how to make the jump, and discover what is at the other end (planets, asteroids, ''etc''). And as the only pilot, there is nobody else about to spoonfeed you the information!&lt;br /&gt;
&lt;br /&gt;
2) The Hyperspace Jump is no longer a doddle - it's now an adventure! It now starts to resemble what one reads about in some of the science fiction.&lt;br /&gt;
&lt;br /&gt;
3) Finding the planets is now an adventure too!&lt;br /&gt;
&lt;br /&gt;
Since cim programmed this ''within'' the Oolite game framework, some of these ideas should be transferable to the main game for those with the skills.&lt;br /&gt;
&lt;br /&gt;
=== Ideas for improvement ===&lt;br /&gt;
1) Replace the Coriolis (colony ship &amp;quot;Local Maximum&amp;quot;) with a [[Generation Ships OXP|Generation Ship]] (see &amp;quot;Tweaks&amp;quot; below), unsure about replacing the player's Adder (but, if the technology is more primitive than Oolite's, then the Adder is too modern).&lt;br /&gt;
::Using a Generation Ship could make the later stages of the game quite interesting (moving the colony ship to a habitable planet). It would not have hyperdrive. So if it were to follow the player into a wormhole - and then get ''lost''... !&lt;br /&gt;
:For immersion, have a different interface when docking, involving interaction with the colony ship leaders ([[HD Backgrounds Image Pack A]]; [[LitF]]; [[Galactic Navy OXP]])&lt;br /&gt;
:F4 ship/station interface screen: remove &amp;quot;GalCop station&amp;quot; from 3rd registration screen; remove offensive/defensive from Fast Activation screens&lt;br /&gt;
:F8 screen (stuff for sale!) seems a bit bizarre! Column headings need changing.&lt;br /&gt;
&lt;br /&gt;
2) Better HUD &lt;br /&gt;
:especially half-way marks for the Gravitational Sensor ''(badly needed'') - see Captain Beatnik's tweaked version (&amp;quot;Tweaks&amp;quot; below)&lt;br /&gt;
:: (i) The vanilla game HUD has roll/pitch indicators, which Wildeblood rotated 90° for his [[Wide-Screen HUD]]. These have a zero-point in the ''middle'' of the bar.&lt;br /&gt;
:: (ii) the various [[User:Captain Beatnik|Coluber/CB HUDs]] which have markings along their bars.&lt;br /&gt;
:: (iii) But they ideally need coloured fill bars extending from the zero point in the middle to show things more accurately. Is this doable?&lt;br /&gt;
:: (iv) [[Vimana HUD]] &amp;amp; [[Vimana-X HUD]] have bits which can appear &amp;amp; disappear (Travel Module, Ship Module, ''etc''.) - and could be used for the gravitational sensor, for example.&lt;br /&gt;
&lt;br /&gt;
3) Create uses for the mined minerals, new equipment made back at &amp;quot;Local Maximum&amp;quot;, ''etc''. As in [[SOTL_Exploration#Cim.27s_original_plans_for_the_future_development_of_this_OXP_.28or.2C_what.27s_missing.21.29|Cim's original plans]] above.&lt;br /&gt;
&lt;br /&gt;
4) Addition: Add in &amp;quot;landing on anchor&amp;quot; with [[Planetfall2 OXP|PF2]] to visit the colonies? There are presumably other non-Hyperspace ships travelling between the colonies and &amp;quot;Local Maximum&amp;quot; which could be added in for immersion. (something [[Dynamic_Ship_List_(Oolite)|small]]: [[Landing Craft|Isis Landing Craft]] w/o decal? [[Firefly]]? [[Y-Wing]]? [[Mining Pod]]?)&lt;br /&gt;
&lt;br /&gt;
5) Addition: small craft flying between the planet and the colony ship ferrying people and resources from one t'other.&lt;br /&gt;
&lt;br /&gt;
6) Addition: Add in Thargoids? Allow &amp;quot;Interdiction&amp;quot; during Hyperspace travel? (&amp;quot;Tough&amp;quot; start!). Thargoid visitations could get worse as the game goes on, but one could (with discovered resources) upgrade one's laser and add some defences!&lt;br /&gt;
&lt;br /&gt;
=== Questions ===&lt;br /&gt;
*What happens if you just grab asteroid chunks without analysing them and bring them back to base? Do they still add to the resources in the F8 screen?&lt;br /&gt;
&lt;br /&gt;
== Tweaks ==&lt;br /&gt;
[[File:Captain Beatnik's SOTL Gravitational Sensor 0.4.1.jpg|right|200px]]&lt;br /&gt;
* '''Generation Ship''': to replace the colony ship ''Local Maximum'' which is currently a Coriolis station with a more immersive Generation Ship. &lt;br /&gt;
:Follow phkb's instructions [https://bb.oolite.space/viewtopic.php?p=306558#p306558 here] - you will need to use his linked &amp;quot;Generation_Ships.oxp download&amp;quot; which corrects the dock model alignment and positioning to make docking easier.&lt;br /&gt;
* '''Gravitational Sensor'''&lt;br /&gt;
:Captain Beatnik had been decent enough to rejig the Sensor readouts so that they are easier to decipher. Download his version of SOTL Exploration OXP [https://app.box.com/s/v3oigcxwncmm7l4dzbu5zzp8mghd5szp here] (if you want a Generation Ship as well, you will still need to tweak in line with Phkb's instructions above!).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[SOTL Altmap]] - for details of the second game!&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17603 BB Discussion Thread] (2015+)&lt;br /&gt;
*[https://github.com/cim--/oxp-SongOfTheLabyrinth SOTL GitHub site]&lt;br /&gt;
*[[User:Cim|Cim]]: link to author's page &amp;amp; his other OXPs&lt;br /&gt;
*[[Exploration]]&lt;br /&gt;
&lt;br /&gt;
{{Unclassified-OXP}}&lt;br /&gt;
{{demo-OXP}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Captain_Beatnik%27s_SOTL_Gravitational_Sensor_0.4.1.jpg&amp;diff=90146</id>
		<title>File:Captain Beatnik's SOTL Gravitational Sensor 0.4.1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Captain_Beatnik%27s_SOTL_Gravitational_Sensor_0.4.1.jpg&amp;diff=90146"/>
		<updated>2026-08-12T08:51:18Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: From https://bb.oolite.space/viewtopic.php?p=306928#p306928&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
From https://bb.oolite.space/viewtopic.php?p=306928#p306928&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Planetfall2_OXP&amp;diff=90145</id>
		<title>Planetfall2 OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Planetfall2_OXP&amp;diff=90145"/>
		<updated>2026-08-11T13:49:44Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Version History */ Hid more of the version history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:IconPF2.png|100px|right]]&lt;br /&gt;
[[File:PlanetFall2 city 7.png|300px|thumb|right|Landing at a city]]&lt;br /&gt;
[[File:PlanetFall2 moon 5.png|300px|thumb|right|Landing on a moon]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
{{Infobox EquipStats Oolite| title = PlanetFall2 OXP&lt;br /&gt;
|image = &lt;br /&gt;
|equipName =  Atmospheric Stabilisers&lt;br /&gt;
|equipCost = 5,000₢&lt;br /&gt;
|equipTL = 9&lt;br /&gt;
}}&lt;br /&gt;
An OXP which allows the Commander to land at specific locations on planets and moons (but not suns, even at night). Each main planet has up to 5 designated landing sites, while additional planets can have 3, and each moon can have 2 (configurable via [[Library OXP|Library Config]]). Pick your landing site and point your ship at the flashing marker near the surface that indicates the Ground Control Interface Point for the landing zone. Ensure your flight path is not too steep, otherwise you may sustain damage when the automated landing protocol engages. &lt;br /&gt;
&lt;br /&gt;
Be careful of turbulence as you enter the atmosphere. To assist with atmospheric turbulence, the &amp;quot;Atmospheric Stabilisers&amp;quot; can be purchased at any TL9+ system for 5000cr. When equipped, this will reduce the impact of turbulence on your ship. Speed will have an impact on how much your ship is effected by turbulence. Slowing down will decrease the effect.&lt;br /&gt;
&lt;br /&gt;
Your approach will trigger an automatic landing request. You should receive a response after a few seconds, indicating you are either cleared for landing or not. If you have clearance, continue towards the Ground Control Interface Point at less than 100 m/s until the automated system engages, captures your ship and lowers you to a landing pad. &lt;br /&gt;
&lt;br /&gt;
Planetary take-off is via a launch booster, with control being returned to the Commander once orbital insertion is achieved.&lt;br /&gt;
&lt;br /&gt;
=== A suite of OXPs ===&lt;br /&gt;
This OXP is currently a suite of 3 OXPs with another 2 optional OXPs: &lt;br /&gt;
*'''PlanetFall2''' (the coding)&lt;br /&gt;
*'''PlanetFall Resources A''' } individual planetary images part 1&lt;br /&gt;
*'''PlanetFall Resources B''' } individual planetary images part 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional: '''Feudal PlanetFall2''' (linking PlanetFall2 with [[Feudal States]] which is currently the only OXP which does much on the planet surface).&lt;br /&gt;
:&amp;lt;s&amp;gt;At time of writing PlanetFall2 is only compatible with Feudal States v.1 (and the ''alpha'' Feudal States v.2 is only compatible with PlanetFall v.1)!&amp;lt;/s&amp;gt; It should now be compatible with both versions of Feudal States.&lt;br /&gt;
*Optional: [[Planet Rotation Cosmetics OXP]] slows down the planet's rotation as you approach it and are captured by the planet's gravity.&lt;br /&gt;
&lt;br /&gt;
[[File:Planetfall2 Transit system.png|right|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Gaming changes from Thargoid's PlanetFall v1 (2008-13) ===&lt;br /&gt;
*You can now land on a planet without purchasing &amp;quot;planetary landing capabilities&amp;quot;/&amp;quot;atmospheric stabilisers&amp;quot; - but it is rather more dangerous&lt;br /&gt;
::If you have already bought &amp;quot;planetary landing capabilities&amp;quot;, PF2 will convert them to &amp;quot;atmospheric stabilisers&amp;quot;&lt;br /&gt;
*There are now specific landing sites on the planet&lt;br /&gt;
*Commodity Markets are now included (''ie'' PlanetFall Markets OXP is redundant).&lt;br /&gt;
*When landed you can transit from one landing site to another (and pay good money to transit your ship, too!).&lt;br /&gt;
*[[Maintenance]] overhauls are now performed on the planet surface rather than in the orbital station (they will tell you this on the station!)&lt;br /&gt;
*There are other changes to be discovered!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
*Oolite v.1.90 or better&lt;br /&gt;
*[[GNN]] v1.4&lt;br /&gt;
*[[Library OXP]]&lt;br /&gt;
*[[Market Script Interface]]&lt;br /&gt;
*[[External Docking System]]&lt;br /&gt;
&lt;br /&gt;
While it isn’t a requirement, the [[Planet Rotation Cosmetics OXP]] is a highly recommended addition for PlanetFall 2.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
There are a '''lot''' of options available to help configure the system the way you want it. The list is long, so if you want to see everything, ''click'' the link on the right.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show me everything!&amp;quot; data-collapsetext=&amp;quot;Turn it off! Turn it off!&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
Library Config has the following sections for PlanetFall2:&lt;br /&gt;
* General settings&lt;br /&gt;
* Main planet settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Extra Planet settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Moon settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Spawn chances: TL factors&lt;br /&gt;
* Transit costs&lt;br /&gt;
* Ship transfer costs&lt;br /&gt;
&lt;br /&gt;
=== General settings ===&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Move shipyards to planet:''' Controls whether shipyards are moved to planet-side locations.&lt;br /&gt;
* '''Move maintenance to planet:''' Controls whether the &amp;quot;Maintenance Overhaul&amp;quot; item is moved to only be offered on planet-side locations.&lt;br /&gt;
* '''Atmosphere turbulence:''' Controls whether the turbulence effect, when entering the atmosphere of a planet, is active or not.&lt;br /&gt;
* '''Shallow approach:''' Controls whether a shallow approach angle is required when landing on a surface location.&lt;br /&gt;
* '''Use landing images:''' Controls whether the images displayed after landing at a planetary site are displayed.&lt;br /&gt;
* '''Use Almanac names:''' Controls whether the names of planetary locations are given names based on the methodology from the Galactic Almanac.&lt;br /&gt;
* '''Allow planetary transit:''' Controls whether it is possible to fast travel to other planetary sites after landing.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Main planet max:''' Maximum number of locations that could be spawned on the main planet.&lt;br /&gt;
* '''Extra planet max:''' Maximum number of locations that could be spawned on a secondary planet with an atmosphere.&lt;br /&gt;
* '''Moon max:''' Maximum number of locations that could be spawned on a moon with no atmosphere.&lt;br /&gt;
* '''Atmosphere max altitude:''' Maximum height (in km) of the atmosphere of a planet.&lt;br /&gt;
* '''Beacon range:''' Max distance (in km) that planetary beacons become visible to the player.&lt;br /&gt;
* '''Service Level dec:''' Amount that service level will be reduced by when launching from a planet.&lt;br /&gt;
* '''Transfer Time:''' Amount of time (in hours) that will pass when transferring player ship to the current location.&lt;br /&gt;
* '''Train speed:''' Base average speed of trains (in kph), which is scaled up or down based on the TL of the system.&lt;br /&gt;
* '''Turbulence impact scale:''' Scales the impact of turbulence, where 1.0 means no change to the default, 0.5 halves the impact, and 0.0 means no impact (same as turning turbulence off).&lt;br /&gt;
&lt;br /&gt;
=== Main planet settings ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Capital cities:''' Whether capital cities will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Military bases:''' Whether military bases will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure complexes:''' Whether leisure complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Factories:''' Whether factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Rubbish dumps:''' Whether rubbish dumps will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Capital cities:''' What type of market will be available at capital cities.&lt;br /&gt;
* '''Military bases:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Leisure complexes:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Factories:''' What type of market will be available at factories.&lt;br /&gt;
* '''Rubbish dumps:''' What type of market will be available at rubbish dumps.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51. (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn city:''' Chance of spawning a capital city.&lt;br /&gt;
* '''Spawn military base:''' Chance of spawning a military base.&lt;br /&gt;
* '''Spawn leisure complex:''' Chance of spawning a leisure complex.&lt;br /&gt;
* '''Spawn factory:''' Chance of spawning a factory.&lt;br /&gt;
* '''Spawn rubbish dump:''' Chance of spawning a rubbish dump.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Extra planet Settings ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Colony cities:''' Whether colony cities will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Military bases:''' Whether military bases will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure complexes:''' Whether leisure complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Factories:''' Whether factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Rubbish dumps:''' Whether rubbish dumps will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Colony cities:''' What type of market will be available at colony cities.&lt;br /&gt;
* '''Military bases:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Leisure complexes:''' What type of market will be available at leisure complexes.&lt;br /&gt;
* '''Factories:''' What type of market will be available at factories.&lt;br /&gt;
* '''Rubbish dumps:''' What type of market will be available at rubbish dumps.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51 (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn colony city:''' Chance of spawning a colony city.&lt;br /&gt;
* '''Spawn military base:''' Chance of spawning a military base.&lt;br /&gt;
* '''Spawn leisure complex:''' Chance of spawning a leisure complex.&lt;br /&gt;
* '''Spawn factory:''' Chance of spawning a factory.&lt;br /&gt;
* '''Spawn rubbish dump:''' Chance of spawning a rubbish dump.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Moons ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Colony domes:''' Whether colony domes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Mines:''' Whether mines will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Prisons:''' Whether prisons will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure domes:''' Whether leisure domes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Robot factories:''' Whether robot factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Research complexes:''' Whether research complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Wastelands:''' Whether wastelands will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Colony domes:''' What type of market will be available at colony domes.&lt;br /&gt;
* '''Mines:''' What type of market will be available at mines.&lt;br /&gt;
* '''Prison:''' What type of market will be available at prisons.&lt;br /&gt;
* '''Leisure domes:''' What type of market will be available at leisure domes.&lt;br /&gt;
* '''Robot factories:''' What type of market will be available at robot factories.&lt;br /&gt;
* '''Research complexes:''' What type of market will be available at research complexes.&lt;br /&gt;
* '''Wastelands:''' What type of market will be available at wastelands.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51 (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn colony dome:''' Chance of spawning a colony dome.&lt;br /&gt;
* '''Spawn mine:''' Chance of spawning a mine.&lt;br /&gt;
* '''Spawn prison:''' Chance of spawning a prison.&lt;br /&gt;
* '''Spawn leisure dome:''' Chance of spawning a leisure dome.&lt;br /&gt;
* '''Spawn robot factory:''' Chance of spawning a robot factory.&lt;br /&gt;
* '''Spawn research complex:''' Chance of spawning a research complex.&lt;br /&gt;
* '''Spawn wasteland:''' Chance of spawning a wasteland.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Spawn chances: TL factors ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Main planet min/max:''' Factor to apply to spawn chance of main planet locations based on the TL of the system.&lt;br /&gt;
* '''Extra planets min/max:''' Factor to apply to spawn chance of extra planet locations based on the TL of the system.&lt;br /&gt;
* '''Moons min/max:''' Factor to apply to spawn chance of moon locations based on the TL of the system.&lt;br /&gt;
&lt;br /&gt;
The min value would be applied at the lowest TL, while the max value would apply to the highest TL.&amp;lt;br&amp;gt;&lt;br /&gt;
TL's in between would get a scaled value between min and max.&lt;br /&gt;
&lt;br /&gt;
=== Transit costs ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Fee:''' Base cost for a single trip (cr).&lt;br /&gt;
* '''Anarchy factor:''' Factor applied to fee in Anarchy systems&lt;br /&gt;
* '''Feudal factor:''' Factor applied to fee in Feudal systems.&lt;br /&gt;
* '''Multi-government factor:''' Factor applied to fee in Multi-Government systems.&lt;br /&gt;
* '''Dictatorship factor:''' Factor applied to fee in Dictatorship systems.&lt;br /&gt;
* '''Communist factor:''' Factor applied to fee in Communist systems.&lt;br /&gt;
* '''Confederacy factor:''' Factor applied to fee in Confederacy systems.&lt;br /&gt;
* '''Democracy factor:''' Factor applied to fee in Democracy systems.&lt;br /&gt;
* '''Corporate State factor:''' Factor applied to fee in Corporate State systems.&lt;br /&gt;
&lt;br /&gt;
eg 0.0 = All trips are free; 1.0 = Use base cost; 0.5 = 50% of base cost.&lt;br /&gt;
&lt;br /&gt;
=== Ship transfer costs ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Fee:''' Base cost for ship transfer (cr).&lt;br /&gt;
* '''Anarchy factor:''' Factor applied to fee in Anarchy systems&lt;br /&gt;
* '''Feudal factor:''' Factor applied to fee in Feudal systems.&lt;br /&gt;
* '''Multi-government factor:''' Factor applied to fee in Multi-Government systems.&lt;br /&gt;
* '''Dictatorship factor:''' Factor applied to fee in Dictatorship systems.&lt;br /&gt;
* '''Communist factor:''' Factor applied to fee in Communist systems.&lt;br /&gt;
* '''Confederacy factor:''' Factor applied to fee in Confederacy systems.&lt;br /&gt;
* '''Democracy factor:''' Factor applied to fee in Democracy systems.&lt;br /&gt;
* '''Corporate State factor:''' Factor applied to fee in Corporate State systems.&lt;br /&gt;
&lt;br /&gt;
eg 0.0 = Ship transfers are free; 1.0 = Use base cost; 1.5 = 150% base cost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
All components are downloadable through the in-game [[Expansions Manager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Direct download here&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:PlanetFall2_2.35.oxz|PlanetFall2_2.35.oxz]] (downloaded {{#downloads:PlanetFall2_2.35.oxz}} times).&lt;br /&gt;
* [[Media:PlanetFall2_ResourcesA.oxz|PlanetFall2_ResourcesA.oxz]] v1.1&lt;br /&gt;
* [[Media:PlanetFall2_ResourcesB.oxz|PlanetFall2_ResourcesB.oxz]] v1.0&lt;br /&gt;
* [[Media:Feudal_PlanetFall2_1.7.oxz|Feudal_PlanetFall2_1.7.oxz]] v1.7 (downloaded {{#downloads:Feudal_PlanetFall2_1.7.oxz}} times).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* [[Media:PlanetFall2_BlackMonks.oxz|PlanetFall2_BlackMonks.oxz]] v2.1 - Adds Bank of the Black Monks to the planet surface locations, providing all the normal bank facilities. The [[Black_Monk_Monastery|Bank of the Black Monks]] also needs to be installed.&lt;br /&gt;
* [[Media:PlanetFall2_HoopyCasino.oxz|PlanetFall2_HoopyCasino.oxz]] v2.5 - Adds HOopy casinos to the planet surface locations, complete with gaming opportunities. The [[HOopy_Casino|HOopy Casino OXP]] also needs to be installed.&lt;br /&gt;
* [[Media:PlanetFall2_Oo-Haul.oxz|PlanetFall2_Oo-Haul.oxz]] v2.1 - Adds an Oo-Haul distribution centre to the main planet, and a mission to escort a hauler from it out to either the witchpoint or constore. The [[Your_Ad_Here!|YAH/Your Ad Here!]] OXP and [[Oo-Haul]] need to be installed.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
*Author (PF v.2): [[User:Phkb|Phkb]]&lt;br /&gt;
*Author (PF v.1): [[User:Thargoid|Thargoid]]&lt;br /&gt;
&lt;br /&gt;
This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license with the following clauses:&lt;br /&gt;
&lt;br /&gt;
* Whilst you are free (and encouraged) to re-use any of the scripting, models or texturing in this OXP, the usage must be distinct from that within this OXP. Unique identifiers such as (but not limited to) unique shipdata.plist entity keys, mission variables, script names (this.name), equipment identity strings (EQ_), description list arrays and entity roles must not be re-used without prior agreement. Basically if it's unique or would identify or overwrite anything in the original OXP, then you may not re-use it (for obvious compatibility reasons).&lt;br /&gt;
* rebundling of this OXP within another distribution is permitted as long as it is unchanged. The following derivates however are permitted and except from the above:&lt;br /&gt;
** the conversion of files between XML and openStep.&lt;br /&gt;
** the merging of files with other files of the same type from other OXPs.&lt;br /&gt;
* The license information (either as this file or merged into a larger one) must be included in the OXP.&lt;br /&gt;
* Even though it is not compulsory, if you are re-using any sizable or recognisable piece of this OXP, please let me know :)&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; (Details of images used) ---&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show gory details&amp;quot; data-collapsetext=&amp;quot;Hide gory details&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
'''Image files:'''&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_20850610.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21988050.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_23326348.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21988072.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_23326337.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21835246.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/blue-sky-with-scattered-white-clouds_12110221.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22542965.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/cloudy-sky-daylight-background_19380968.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22543011.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/blue-sky-with-cloud-closeup_6133056.htm Image by photogenia on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22542943.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-vector/20-vehicles-outline-icon-presentation_38543743.htm Image by flatart on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-ai-image/subway-dark-atmosphere_76653967.htm Image by freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-ai-image/new-york-city-subway-train-motion_69844323.htm Image by freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/motion-blur-automatic-train-moving-inside-tunnel-tokyo-japan_10824408.htm Image by tawatchai07 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Some images were generated by AI at https://www.freepik.com/pikaso/ai-image-generator&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sound files:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;e train 140kmh 04 190613_0029.wav&amp;quot; by klankbeeld -- https://freesound.org/s/476298/ -- License: Attribution 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Arrival of a passenger electric train.1950km station_2(Eq,lmtr).wav&amp;quot; by newlocknew -- https://freesound.org/s/580464/ -- License: Attribution 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version History ==&lt;br /&gt;
2.35&lt;br /&gt;
* Tighter integration with Library.&lt;br /&gt;
* Improved handling of nova conditions.&lt;br /&gt;
&lt;br /&gt;
2.34&lt;br /&gt;
* Shipyard not moved to planet in Anarchy systems.&lt;br /&gt;
* Made ship maintenance available from stations in Anarchy systems.&lt;br /&gt;
* Methods for creating random location names should now create the same name for the same location, every time. No more name switching.&lt;br /&gt;
* Added some additional place naming methods for potential future use.&lt;br /&gt;
* Fixed issue with naming function for Leisure Complexes, where some of the elements in brackets were not being returned.&lt;br /&gt;
* Corrections to some number extraction processes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
2.33&lt;br /&gt;
* Fixed bug in $getPlanetFromLandingSite function.&lt;br /&gt;
* Tweak to monkey patch function.&lt;br /&gt;
&lt;br /&gt;
2.32&lt;br /&gt;
* Fixed issue where a excessive number of Colony Domes were being spawned (and possibly Colony Cities as well).&lt;br /&gt;
* Citizens of a system can now use the transit system for free. (Requires Diplomacy OXP)&lt;br /&gt;
* Home System members with enough standing can now use the transit system for free. (Requires Home System OXP).&lt;br /&gt;
&lt;br /&gt;
2.31&lt;br /&gt;
* Added GNN interface to some planetary surface locations.&lt;br /&gt;
* Fixed null reference error that could occur during transits.&lt;br /&gt;
* Added screenID's to all mission screens.&lt;br /&gt;
* Speed of the landing FX now scales with system performance.&lt;br /&gt;
* Switched to using logcontrol.plist for debug output.&lt;br /&gt;
&lt;br /&gt;
2.30&lt;br /&gt;
* Changed manifest title from &amp;quot;PlanetFall&amp;quot; to &amp;quot;PlanetFall2&amp;quot;.&lt;br /&gt;
* Changed Library Config aliases to &amp;quot;PlanetFall2&amp;quot;.&lt;br /&gt;
* Changed category to &amp;quot;Systems&amp;quot;.&lt;br /&gt;
* Fixed issue with adding OXP locations to custom systems, where some keys were being added to the list twice.&lt;br /&gt;
&lt;br /&gt;
2.29&lt;br /&gt;
* Shuttles that choose to land on a planet will now do so at one of the landing sites.&lt;br /&gt;
* Shuttles will also launch from the landing sites.&lt;br /&gt;
&lt;br /&gt;
2.28&lt;br /&gt;
* Fixed method of detecting when two landing sites are too close together.&lt;br /&gt;
* Changed calculation method for positioning landing sites to ensure good separation from others.&lt;br /&gt;
&lt;br /&gt;
2.27&lt;br /&gt;
* Fixed issue where stored names were not being restored from missionVariables reliably.&lt;br /&gt;
* Fixed issue with naming system for Oo-Haul sites, which wasn't including &amp;quot;(Distribution Centre)&amp;quot; in the name.&lt;br /&gt;
* Fixed issue with naming HOopy Casino sites, which wasn't including &amp;quot;(HOopy Casino)&amp;quot; in the name.&lt;br /&gt;
* OXP planet locations defined via the ship role &amp;quot;planetFall2_???_externalOXP&amp;quot; are now attempted to be added to custom systems. Random factors and spawn conditions can then come in to play to limit the number of spawns.&lt;br /&gt;
&lt;br /&gt;
2.26&lt;br /&gt;
* Darkened overlay images for better compatibility with Oolite 1.92.&lt;br /&gt;
&lt;br /&gt;
2.25&lt;br /&gt;
* Moved more text into missiontext.plist.&lt;br /&gt;
* Fixed issue with ship transfer fee not being calculated correctly when being deducted from the players account.&lt;br /&gt;
&lt;br /&gt;
2.24&lt;br /&gt;
* Added check for, and warning message of, PlanetLand OXP conflict.&lt;br /&gt;
&lt;br /&gt;
2.23&lt;br /&gt;
* Fixed issue where shipyards were not viewable on stations that have overridden the &amp;quot;move shipyards to planet&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
2.22 &lt;br /&gt;
* Display a message when attempting to access shipyards on stations when they are located on planetary surfaces.&lt;br /&gt;
* Added option to disable the shallow approach angle requirement when landing on a surface location.&lt;br /&gt;
* Tweaked spawning logic so planetary locations can't be too close together, increasing the distance from the previous fix.&lt;br /&gt;
&lt;br /&gt;
2.21&lt;br /&gt;
* Change to manifest file to match with split of resources pack into two.&lt;br /&gt;
&lt;br /&gt;
2.20&lt;br /&gt;
* Added a function, $getSystemLocations, which returns an object containing the ship keys and place names of all planetary locations in a given system.&lt;br /&gt;
&lt;br /&gt;
2.19&lt;br /&gt;
* Setting beacon range to zero will make all beacons visible all the time.&lt;br /&gt;
* Added ability to scale the maximum turbulence factor per planet.&lt;br /&gt;
&lt;br /&gt;
2.18&lt;br /&gt;
* Added a &amp;quot;turbulence impact scale&amp;quot; option so the effect of turbulence can be scaled to taste.&lt;br /&gt;
* Allowed for blank entries in location overrides to switch to randomised location types and naming.&lt;br /&gt;
* Fixed issues when checking roles to determine the type of VFX to show for landing.&lt;br /&gt;
* Added ability to override the landing clouds, docks and overlays on a per-planet basis.&lt;br /&gt;
* Some code refactoring.&lt;br /&gt;
&lt;br /&gt;
2.17&lt;br /&gt;
* Moved most text into missiontext.plist for easier localisation.&lt;br /&gt;
* Removed monkey patch on Marker Inquirer as no longer required.&lt;br /&gt;
&lt;br /&gt;
2.16&lt;br /&gt;
* Tweak to prevent LMSS and Laser Arrangement interfaces disappearing on non-PlanetFall locations.&lt;br /&gt;
&lt;br /&gt;
2.15&lt;br /&gt;
* Increased the number of shipdata entities to better handle high values for the number of planetary landing points.&lt;br /&gt;
&lt;br /&gt;
2.14&lt;br /&gt;
* Added protection for instances where a planet or moon has no air color value set.&lt;br /&gt;
* Fixed issue where the reason for the denial of a landing request was not being transmitted to the player.&lt;br /&gt;
&lt;br /&gt;
2.13&lt;br /&gt;
* Further fixes to linkage between landing sites and planets.&lt;br /&gt;
&lt;br /&gt;
2.12&lt;br /&gt;
* Fixed incorrect property setting in shipdata.&lt;br /&gt;
* Changed allegiance setting for research complexes to be neutral.&lt;br /&gt;
* Fixed issue where landing sites could spawn too close together.&lt;br /&gt;
&lt;br /&gt;
2.11&lt;br /&gt;
* Fixed issue where link between landing sites and planets could occasionally break due to rounding errors.&lt;br /&gt;
&lt;br /&gt;
2.10&lt;br /&gt;
* Prevented things like &amp;quot;Immigration Control&amp;quot; from appearing in Anarchy systems.&lt;br /&gt;
* Prevented turbulence frame callback from being started twice.&lt;br /&gt;
* Fixed error: this.serviceLevelDecrease is not a function.&lt;br /&gt;
* Tweaks to hopefully permanently fix issue where turbulence effect keeps running after a witchspace jump or docking.&lt;br /&gt;
&lt;br /&gt;
2.9&lt;br /&gt;
* Fixed JS error in transit process code.&lt;br /&gt;
* Fixed issue where Vimana-X HUD was not resetting correctly on launch after using transit system.&lt;br /&gt;
&lt;br /&gt;
2.8&lt;br /&gt;
* Split off planet rotation slowing into separate OXP, and made optional for this OXP.&lt;br /&gt;
&lt;br /&gt;
2.7&lt;br /&gt;
* Dying while turbulence is active will now stop the frame callback.&lt;br /&gt;
* Added tweak to planet rotation when approaching planet, slowing it down to make scale issues less obvious (can be configured with Library Config).&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
2.6&lt;br /&gt;
* Small tweak to the market script.&lt;br /&gt;
* Small fix to the name generation process for Capital Cities.&lt;br /&gt;
&lt;br /&gt;
2.5&lt;br /&gt;
* Refined some text in messages for better understanding and integration with the built in voice.&lt;br /&gt;
* Added a pre-spawn check for a condition script on custom (ie non-built-in) surface locations.&lt;br /&gt;
* Fixed issue that was preventing custom names from being applied to custom system setups.&lt;br /&gt;
* Added a PDF document outlining how to create custom systems, for non-coders.&lt;br /&gt;
* Updates for the PlanetFall Oo-haul mission pack.&lt;br /&gt;
* Added conflict with PlanetFallMarketSaver - this OXP shouldn't be necessary with PlanetFall2.&lt;br /&gt;
* Added conflict with PlanetFall Markets - this OXP shouldn't be necessary with PlanetFall2.&lt;br /&gt;
* Removed some unused settings in config.&lt;br /&gt;
* Split off graphical assets into separate OXP, to make updating the core code easier for everyone.&lt;br /&gt;
* Added a second train FX image, so that the second animation doesn't just look completely like the first.&lt;br /&gt;
* Tweaked train FX images to make them more centred.&lt;br /&gt;
* Added scan class to station entities.&lt;br /&gt;
&lt;br /&gt;
2.4&lt;br /&gt;
* Adjusted calculations to make landing when pointing at the GCIP more consistent.&lt;br /&gt;
&lt;br /&gt;
2.3&lt;br /&gt;
* Added a planet-side transit system, so you don't have to launch and re-dock to visit another landing site on the same planet.&lt;br /&gt;
* Transit costs are adjusted based on government types. Configurable via Library Config.&lt;br /&gt;
* Ship transfer costs are adjusted based on government types. Configurable via Library Config.&lt;br /&gt;
* Fixed shipyard transfer process to not run more than once per system.&lt;br /&gt;
* Added fragment and vertex shaders to ensure all break patterns appear clearly and without shadow.&lt;br /&gt;
* Removed yaw turbulence factor. Only pitch and roll turbulence will be now be set.&lt;br /&gt;
* Fixed issue that was preventing subSurface colonies and moonSurface domes from being spawned.&lt;br /&gt;
* Amount of reduction to service level is now configurable via Library Config.&lt;br /&gt;
* Added a function (PlanetFall2.playerShipIsLocal) that can be called to determine if the player is near their ship or not.&lt;br /&gt;
* Removed the Blackmonks and HoOpy Casino config options, and incorporated spawn chances in script_info object of shipdata and condition script.&lt;br /&gt;
&lt;br /&gt;
2.2&lt;br /&gt;
* Fixed issue where, if &amp;quot;Additional Planets&amp;quot; doesn't create any planets, no landing sites are created on the main planet.&lt;br /&gt;
* Reapplied monkey match for Market Inquirer to address issue with beacons not showing when more than 100000m from the player when docked.&lt;br /&gt;
* Removed conflicts with SW Planetary Systems and Moons, although it is unlikely any created moons will get landing sites.&lt;br /&gt;
&lt;br /&gt;
2.1&lt;br /&gt;
* Added methods to allow for a fully customised system to be defined (with multiple sites per planet/moon).&lt;br /&gt;
* Moved Feudal States override code into a separate OXP.&lt;br /&gt;
* Fixed missing semi-colon in shipdata.plist.&lt;br /&gt;
* Switched ground control interface point to be a normal ship object (rather than a visual effect) to gain better compatibility with OXP's like Telescope.&lt;br /&gt;
* Made the ground control interface points more visible.&lt;br /&gt;
* Reduced the number of monkey patches required.&lt;br /&gt;
* Made the maximum range at which the space compass will detect ground control interface points configurable via Library Config, and changed the default value to 200km.&lt;br /&gt;
* Added some conflict oxps (&amp;quot;Planetary Systems&amp;quot; and &amp;quot;Moons&amp;quot; by stranger).&lt;br /&gt;
* Improved compatibility with Market Inquirer.&lt;br /&gt;
* Tweaked spawning methods to better reflect the original PlanetFall results, where OXP station roles are not added unless override flag is set.&lt;br /&gt;
* Added a warning screen for players, informing them that ship maintenance services are only available on the planet.&lt;br /&gt;
* Added a chance of a misjump when executing a witchspace jump inside the atmosphere.&lt;br /&gt;
* Fixed issue where entering witchspace while the turbulence effect is still active would result in it staying active.&lt;br /&gt;
* Fixed bug that was setting service level to the minimum value when launching from a planetary location.&lt;br /&gt;
* Turbulence now doesn't end when speed is zero.&lt;br /&gt;
* Added a config item to manage how much the service level of the player ship is reduced.&lt;br /&gt;
* Added shipdata entries to allow for multiple military bases, leisure complexes, factories and dumps on the main planet in custom systems. &lt;br /&gt;
* Fixed issues where NaN, NaN, Nan is calculated for a vector.&lt;br /&gt;
* Log messages now controllable via a debug flag.&lt;br /&gt;
* Removed some unused code.&lt;br /&gt;
&lt;br /&gt;
2.0&lt;br /&gt;
* Updated landing FX, with clouds and landing pads.&lt;br /&gt;
* Updated launching FX.&lt;br /&gt;
* Changed docking method to have a fixed location (rather than just descending towards the planet surface anywhere), which means you can now save your game at planetary locations.&lt;br /&gt;
* Access to equipment sales (F3 Equip Ship) configuration via Library Config.&lt;br /&gt;
* Updated market information to allow for 3 different methods to be applied to any of the locations. (Configurable via Library Config)&lt;br /&gt;
* Added a variety of arrival report screen backgrounds. (Can be turned off via Library Config)&lt;br /&gt;
* Added a turbulence effect when in the atmosphere of a planet. (Can be turned off via Library Config)&lt;br /&gt;
* Equipment item renamed to &amp;quot;Atmospheric Stabilisers&amp;quot;, but is optional for planetary landings.&lt;br /&gt;
* Moved ships from shipyards on other stations to planetary locations. (Configurable via Library Config)&lt;br /&gt;
* Moved &amp;quot;Maintenance Overhaul&amp;quot; to only be available on the main planet. (Configurable via Library Config)&lt;br /&gt;
* Added script updates to Feudal Systems, Aquatics, Market Inquirer, Galactic Almanac and In-System cargo delivery to maintain compatibility.&lt;br /&gt;
* Additional compatibility settings updated via shipdata-overrides.plist.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Dark Side ==&lt;br /&gt;
=== Custom designing a system ===&lt;br /&gt;
You can now custom design a system:&lt;br /&gt;
:specifically naming landing sites (see inside Lave.oxp)&lt;br /&gt;
:adding tweaks for entering the atmosphere: storms, haze, colours, and [[OXP_howto_texture#Planet_textures|city night-lights]] (see inside Famous Planets v.3 &amp;amp; see inside Lave.oxp)&lt;br /&gt;
:tweaking landing: images (see inside DGill's newest Feudal Systems suite - Digebiti &amp;amp; Tibecea, PF2 Blackmonks, PF2 HoOpy Casinos and PF2 Oohaul) &lt;br /&gt;
:tweaking landing: haze (see Famous Planets v.3 - G1 Larais)&lt;br /&gt;
:tweaking landing: activities (see inside DGill's newest Feudal Systems suite, PF2 Blackmonks, PF2 HoOpy Casinos and PF2 Oohaul)&lt;br /&gt;
&lt;br /&gt;
To tweak a system, see the &amp;quot;Creating Custom Systems.pdf&amp;quot; &amp;amp; the &amp;quot;Developer's ReadMe&amp;quot; hidden inside the PF2 and then also the example [https://app.box.com/s/5xbksy48qr9cp31z2wpef6wjla05s3ih/file/1505969925081 SuperSystem.oxp]&lt;br /&gt;
:There is more detail [https://bb.oolite.space/viewtopic.php?p=301011#p301011 here] (runs on for several pages) and [https://bb.oolite.space/viewtopic.php?p=301065#p301065 here]&lt;br /&gt;
&lt;br /&gt;
=== Problems with the Oolite game engine ===&lt;br /&gt;
*Planets were never meant to be interacted with in Oolite - there's a lot of hand-waving going on with PF2 when it comes to landing on the surface. [https://bb.oolite.space/viewtopic.php?p=301396#p301396 Phkb (2025)]&lt;br /&gt;
*The Oolite game engine does support larger planets and stars - I put together an OXP a while ago which uses them - but not necessarily particularly well. (Editor: [[SOTL Altmap]]? [[SOTL Exploration]]?)&amp;lt;br&amp;gt;&lt;br /&gt;
:You would have noticeable &amp;quot;corners&amp;quot; on the planets at 'real-world' sizes, as a 20,000 triangle polygon gets too large. You can already see these if you go as low as you can on a planet and look at the horizon. Similarly, the way planet texturing works would need to be significantly changed to avoid pixels tens of kilometres wide. There are display issues with large stars at high distances. There's a bit of a hack in the display code to avoid the worst of it, but there can still be strange issues with which objects are displayed in front of which. (You would probably need a higher Open GL version to solve these, which may or may not be practical to hide behind a graphics setting toggle) [https://bb.oolite.space/viewtopic.php?p=263420#p263420 Cim (2018)]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=21606 BB thread] (2024)&lt;br /&gt;
*[[Planetfall OXP]] PF v.1 original wiki page&lt;br /&gt;
&lt;br /&gt;
== Quick Facts ==&lt;br /&gt;
{{OXPLevel|0|2}}{{IconOXP|ooVersion=&amp;quot;1.90&amp;quot;|oxpCPU=&amp;quot;Average&amp;quot;|oxpMEM=&amp;quot;Low&amp;quot;|oxpGPU=&amp;quot;Average&amp;quot;|oxpIsAPI=true|oxpIsDocumented=true|oxpIsConfigurable=true}}&lt;br /&gt;
[[Image:IconLib.png|48px|right|link=Library OXP|alt=Config options available through 'Library']]&lt;br /&gt;
{{Infobox OXPb| title = PlanetFall2.oxz&lt;br /&gt;
|version = 2.35&lt;br /&gt;
|release = 2026-08-03&lt;br /&gt;
|license = CC BY-NC-SA 3.0&lt;br /&gt;
|features = Planetary landings&lt;br /&gt;
|category = Systems OXPs&lt;br /&gt;
|author = [[User:Thargoid|Thargoid]], [[User:phkb|phkb]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?t=21606 Oolite BB]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance indicator ==&lt;br /&gt;
[[File:Tag-colour-orange.png|right]]&lt;br /&gt;
By default, planetary landings are harder than they were in V1. However, if you don't land on or approach planets, gameplay is largely unaffected (or it can be).&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Planetfall2_OXP&amp;diff=90144</id>
		<title>Planetfall2 OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Planetfall2_OXP&amp;diff=90144"/>
		<updated>2026-08-11T13:48:34Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* The Dark Side */ Added more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:IconPF2.png|100px|right]]&lt;br /&gt;
[[File:PlanetFall2 city 7.png|300px|thumb|right|Landing at a city]]&lt;br /&gt;
[[File:PlanetFall2 moon 5.png|300px|thumb|right|Landing on a moon]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
{{Infobox EquipStats Oolite| title = PlanetFall2 OXP&lt;br /&gt;
|image = &lt;br /&gt;
|equipName =  Atmospheric Stabilisers&lt;br /&gt;
|equipCost = 5,000₢&lt;br /&gt;
|equipTL = 9&lt;br /&gt;
}}&lt;br /&gt;
An OXP which allows the Commander to land at specific locations on planets and moons (but not suns, even at night). Each main planet has up to 5 designated landing sites, while additional planets can have 3, and each moon can have 2 (configurable via [[Library OXP|Library Config]]). Pick your landing site and point your ship at the flashing marker near the surface that indicates the Ground Control Interface Point for the landing zone. Ensure your flight path is not too steep, otherwise you may sustain damage when the automated landing protocol engages. &lt;br /&gt;
&lt;br /&gt;
Be careful of turbulence as you enter the atmosphere. To assist with atmospheric turbulence, the &amp;quot;Atmospheric Stabilisers&amp;quot; can be purchased at any TL9+ system for 5000cr. When equipped, this will reduce the impact of turbulence on your ship. Speed will have an impact on how much your ship is effected by turbulence. Slowing down will decrease the effect.&lt;br /&gt;
&lt;br /&gt;
Your approach will trigger an automatic landing request. You should receive a response after a few seconds, indicating you are either cleared for landing or not. If you have clearance, continue towards the Ground Control Interface Point at less than 100 m/s until the automated system engages, captures your ship and lowers you to a landing pad. &lt;br /&gt;
&lt;br /&gt;
Planetary take-off is via a launch booster, with control being returned to the Commander once orbital insertion is achieved.&lt;br /&gt;
&lt;br /&gt;
=== A suite of OXPs ===&lt;br /&gt;
This OXP is currently a suite of 3 OXPs with another 2 optional OXPs: &lt;br /&gt;
*'''PlanetFall2''' (the coding)&lt;br /&gt;
*'''PlanetFall Resources A''' } individual planetary images part 1&lt;br /&gt;
*'''PlanetFall Resources B''' } individual planetary images part 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional: '''Feudal PlanetFall2''' (linking PlanetFall2 with [[Feudal States]] which is currently the only OXP which does much on the planet surface).&lt;br /&gt;
:&amp;lt;s&amp;gt;At time of writing PlanetFall2 is only compatible with Feudal States v.1 (and the ''alpha'' Feudal States v.2 is only compatible with PlanetFall v.1)!&amp;lt;/s&amp;gt; It should now be compatible with both versions of Feudal States.&lt;br /&gt;
*Optional: [[Planet Rotation Cosmetics OXP]] slows down the planet's rotation as you approach it and are captured by the planet's gravity.&lt;br /&gt;
&lt;br /&gt;
[[File:Planetfall2 Transit system.png|right|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Gaming changes from Thargoid's PlanetFall v1 (2008-13) ===&lt;br /&gt;
*You can now land on a planet without purchasing &amp;quot;planetary landing capabilities&amp;quot;/&amp;quot;atmospheric stabilisers&amp;quot; - but it is rather more dangerous&lt;br /&gt;
::If you have already bought &amp;quot;planetary landing capabilities&amp;quot;, PF2 will convert them to &amp;quot;atmospheric stabilisers&amp;quot;&lt;br /&gt;
*There are now specific landing sites on the planet&lt;br /&gt;
*Commodity Markets are now included (''ie'' PlanetFall Markets OXP is redundant).&lt;br /&gt;
*When landed you can transit from one landing site to another (and pay good money to transit your ship, too!).&lt;br /&gt;
*[[Maintenance]] overhauls are now performed on the planet surface rather than in the orbital station (they will tell you this on the station!)&lt;br /&gt;
*There are other changes to be discovered!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
*Oolite v.1.90 or better&lt;br /&gt;
*[[GNN]] v1.4&lt;br /&gt;
*[[Library OXP]]&lt;br /&gt;
*[[Market Script Interface]]&lt;br /&gt;
*[[External Docking System]]&lt;br /&gt;
&lt;br /&gt;
While it isn’t a requirement, the [[Planet Rotation Cosmetics OXP]] is a highly recommended addition for PlanetFall 2.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
There are a '''lot''' of options available to help configure the system the way you want it. The list is long, so if you want to see everything, ''click'' the link on the right.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show me everything!&amp;quot; data-collapsetext=&amp;quot;Turn it off! Turn it off!&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
Library Config has the following sections for PlanetFall2:&lt;br /&gt;
* General settings&lt;br /&gt;
* Main planet settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Extra Planet settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Moon settings&lt;br /&gt;
** F3/F8 access&lt;br /&gt;
** Spawn chances&lt;br /&gt;
* Spawn chances: TL factors&lt;br /&gt;
* Transit costs&lt;br /&gt;
* Ship transfer costs&lt;br /&gt;
&lt;br /&gt;
=== General settings ===&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Move shipyards to planet:''' Controls whether shipyards are moved to planet-side locations.&lt;br /&gt;
* '''Move maintenance to planet:''' Controls whether the &amp;quot;Maintenance Overhaul&amp;quot; item is moved to only be offered on planet-side locations.&lt;br /&gt;
* '''Atmosphere turbulence:''' Controls whether the turbulence effect, when entering the atmosphere of a planet, is active or not.&lt;br /&gt;
* '''Shallow approach:''' Controls whether a shallow approach angle is required when landing on a surface location.&lt;br /&gt;
* '''Use landing images:''' Controls whether the images displayed after landing at a planetary site are displayed.&lt;br /&gt;
* '''Use Almanac names:''' Controls whether the names of planetary locations are given names based on the methodology from the Galactic Almanac.&lt;br /&gt;
* '''Allow planetary transit:''' Controls whether it is possible to fast travel to other planetary sites after landing.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Main planet max:''' Maximum number of locations that could be spawned on the main planet.&lt;br /&gt;
* '''Extra planet max:''' Maximum number of locations that could be spawned on a secondary planet with an atmosphere.&lt;br /&gt;
* '''Moon max:''' Maximum number of locations that could be spawned on a moon with no atmosphere.&lt;br /&gt;
* '''Atmosphere max altitude:''' Maximum height (in km) of the atmosphere of a planet.&lt;br /&gt;
* '''Beacon range:''' Max distance (in km) that planetary beacons become visible to the player.&lt;br /&gt;
* '''Service Level dec:''' Amount that service level will be reduced by when launching from a planet.&lt;br /&gt;
* '''Transfer Time:''' Amount of time (in hours) that will pass when transferring player ship to the current location.&lt;br /&gt;
* '''Train speed:''' Base average speed of trains (in kph), which is scaled up or down based on the TL of the system.&lt;br /&gt;
* '''Turbulence impact scale:''' Scales the impact of turbulence, where 1.0 means no change to the default, 0.5 halves the impact, and 0.0 means no impact (same as turning turbulence off).&lt;br /&gt;
&lt;br /&gt;
=== Main planet settings ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Capital cities:''' Whether capital cities will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Military bases:''' Whether military bases will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure complexes:''' Whether leisure complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Factories:''' Whether factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Rubbish dumps:''' Whether rubbish dumps will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Capital cities:''' What type of market will be available at capital cities.&lt;br /&gt;
* '''Military bases:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Leisure complexes:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Factories:''' What type of market will be available at factories.&lt;br /&gt;
* '''Rubbish dumps:''' What type of market will be available at rubbish dumps.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51. (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn city:''' Chance of spawning a capital city.&lt;br /&gt;
* '''Spawn military base:''' Chance of spawning a military base.&lt;br /&gt;
* '''Spawn leisure complex:''' Chance of spawning a leisure complex.&lt;br /&gt;
* '''Spawn factory:''' Chance of spawning a factory.&lt;br /&gt;
* '''Spawn rubbish dump:''' Chance of spawning a rubbish dump.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Extra planet Settings ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Colony cities:''' Whether colony cities will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Military bases:''' Whether military bases will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure complexes:''' Whether leisure complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Factories:''' Whether factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Rubbish dumps:''' Whether rubbish dumps will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Colony cities:''' What type of market will be available at colony cities.&lt;br /&gt;
* '''Military bases:''' What type of market will be available at military bases.&lt;br /&gt;
* '''Leisure complexes:''' What type of market will be available at leisure complexes.&lt;br /&gt;
* '''Factories:''' What type of market will be available at factories.&lt;br /&gt;
* '''Rubbish dumps:''' What type of market will be available at rubbish dumps.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51 (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn colony city:''' Chance of spawning a colony city.&lt;br /&gt;
* '''Spawn military base:''' Chance of spawning a military base.&lt;br /&gt;
* '''Spawn leisure complex:''' Chance of spawning a leisure complex.&lt;br /&gt;
* '''Spawn factory:''' Chance of spawning a factory.&lt;br /&gt;
* '''Spawn rubbish dump:''' Chance of spawning a rubbish dump.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Moons ===&lt;br /&gt;
==== F3/F8 Access ====&lt;br /&gt;
'''Flags'''&lt;br /&gt;
* '''Colony domes:''' Whether colony domes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Mines:''' Whether mines will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Prisons:''' Whether prisons will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Leisure domes:''' Whether leisure domes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Robot factories:''' Whether robot factories will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Research complexes:''' Whether research complexes will have access to the F3 Equip Ship screen.&lt;br /&gt;
* '''Wastelands:''' Whether wastelands will have access to the F3 Equip Ship screen.&lt;br /&gt;
&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Colony domes:''' What type of market will be available at colony domes.&lt;br /&gt;
* '''Mines:''' What type of market will be available at mines.&lt;br /&gt;
* '''Prison:''' What type of market will be available at prisons.&lt;br /&gt;
* '''Leisure domes:''' What type of market will be available at leisure domes.&lt;br /&gt;
* '''Robot factories:''' What type of market will be available at robot factories.&lt;br /&gt;
* '''Research complexes:''' What type of market will be available at research complexes.&lt;br /&gt;
* '''Wastelands:''' What type of market will be available at wastelands.&lt;br /&gt;
Market type key:&lt;br /&gt;
* 0 = No market; &lt;br /&gt;
* 1 = Default market, which will likely be the main station market; &lt;br /&gt;
* 2 = SFEP (Stations for Extra Planets) method, which adjusts prices and quantities based on the distance of the site from the main station.&lt;br /&gt;
* 3 = Original market, as defined in PlanetFall v1.51 (but pre-Oolite 1.84).&lt;br /&gt;
&lt;br /&gt;
==== Spawn chances ====&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Spawn colony dome:''' Chance of spawning a colony dome.&lt;br /&gt;
* '''Spawn mine:''' Chance of spawning a mine.&lt;br /&gt;
* '''Spawn prison:''' Chance of spawning a prison.&lt;br /&gt;
* '''Spawn leisure dome:''' Chance of spawning a leisure dome.&lt;br /&gt;
* '''Spawn robot factory:''' Chance of spawning a robot factory.&lt;br /&gt;
* '''Spawn research complex:''' Chance of spawning a research complex.&lt;br /&gt;
* '''Spawn wasteland:''' Chance of spawning a wasteland.&lt;br /&gt;
&lt;br /&gt;
eg 0.4 = 40% chance. The chance will be adjusted slightly by the TechLevel factor (see below).&lt;br /&gt;
&lt;br /&gt;
=== Spawn chances: TL factors ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Main planet min/max:''' Factor to apply to spawn chance of main planet locations based on the TL of the system.&lt;br /&gt;
* '''Extra planets min/max:''' Factor to apply to spawn chance of extra planet locations based on the TL of the system.&lt;br /&gt;
* '''Moons min/max:''' Factor to apply to spawn chance of moon locations based on the TL of the system.&lt;br /&gt;
&lt;br /&gt;
The min value would be applied at the lowest TL, while the max value would apply to the highest TL.&amp;lt;br&amp;gt;&lt;br /&gt;
TL's in between would get a scaled value between min and max.&lt;br /&gt;
&lt;br /&gt;
=== Transit costs ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Fee:''' Base cost for a single trip (cr).&lt;br /&gt;
* '''Anarchy factor:''' Factor applied to fee in Anarchy systems&lt;br /&gt;
* '''Feudal factor:''' Factor applied to fee in Feudal systems.&lt;br /&gt;
* '''Multi-government factor:''' Factor applied to fee in Multi-Government systems.&lt;br /&gt;
* '''Dictatorship factor:''' Factor applied to fee in Dictatorship systems.&lt;br /&gt;
* '''Communist factor:''' Factor applied to fee in Communist systems.&lt;br /&gt;
* '''Confederacy factor:''' Factor applied to fee in Confederacy systems.&lt;br /&gt;
* '''Democracy factor:''' Factor applied to fee in Democracy systems.&lt;br /&gt;
* '''Corporate State factor:''' Factor applied to fee in Corporate State systems.&lt;br /&gt;
&lt;br /&gt;
eg 0.0 = All trips are free; 1.0 = Use base cost; 0.5 = 50% of base cost.&lt;br /&gt;
&lt;br /&gt;
=== Ship transfer costs ===&lt;br /&gt;
'''Values'''&lt;br /&gt;
* '''Fee:''' Base cost for ship transfer (cr).&lt;br /&gt;
* '''Anarchy factor:''' Factor applied to fee in Anarchy systems&lt;br /&gt;
* '''Feudal factor:''' Factor applied to fee in Feudal systems.&lt;br /&gt;
* '''Multi-government factor:''' Factor applied to fee in Multi-Government systems.&lt;br /&gt;
* '''Dictatorship factor:''' Factor applied to fee in Dictatorship systems.&lt;br /&gt;
* '''Communist factor:''' Factor applied to fee in Communist systems.&lt;br /&gt;
* '''Confederacy factor:''' Factor applied to fee in Confederacy systems.&lt;br /&gt;
* '''Democracy factor:''' Factor applied to fee in Democracy systems.&lt;br /&gt;
* '''Corporate State factor:''' Factor applied to fee in Corporate State systems.&lt;br /&gt;
&lt;br /&gt;
eg 0.0 = Ship transfers are free; 1.0 = Use base cost; 1.5 = 150% base cost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
All components are downloadable through the in-game [[Expansions Manager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Direct download here&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Media:PlanetFall2_2.35.oxz|PlanetFall2_2.35.oxz]] (downloaded {{#downloads:PlanetFall2_2.35.oxz}} times).&lt;br /&gt;
* [[Media:PlanetFall2_ResourcesA.oxz|PlanetFall2_ResourcesA.oxz]] v1.1&lt;br /&gt;
* [[Media:PlanetFall2_ResourcesB.oxz|PlanetFall2_ResourcesB.oxz]] v1.0&lt;br /&gt;
* [[Media:Feudal_PlanetFall2_1.7.oxz|Feudal_PlanetFall2_1.7.oxz]] v1.7 (downloaded {{#downloads:Feudal_PlanetFall2_1.7.oxz}} times).&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* [[Media:PlanetFall2_BlackMonks.oxz|PlanetFall2_BlackMonks.oxz]] v2.1 - Adds Bank of the Black Monks to the planet surface locations, providing all the normal bank facilities. The [[Black_Monk_Monastery|Bank of the Black Monks]] also needs to be installed.&lt;br /&gt;
* [[Media:PlanetFall2_HoopyCasino.oxz|PlanetFall2_HoopyCasino.oxz]] v2.5 - Adds HOopy casinos to the planet surface locations, complete with gaming opportunities. The [[HOopy_Casino|HOopy Casino OXP]] also needs to be installed.&lt;br /&gt;
* [[Media:PlanetFall2_Oo-Haul.oxz|PlanetFall2_Oo-Haul.oxz]] v2.1 - Adds an Oo-Haul distribution centre to the main planet, and a mission to escort a hauler from it out to either the witchpoint or constore. The [[Your_Ad_Here!|YAH/Your Ad Here!]] OXP and [[Oo-Haul]] need to be installed.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
*Author (PF v.2): [[User:Phkb|Phkb]]&lt;br /&gt;
*Author (PF v.1): [[User:Thargoid|Thargoid]]&lt;br /&gt;
&lt;br /&gt;
This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license with the following clauses:&lt;br /&gt;
&lt;br /&gt;
* Whilst you are free (and encouraged) to re-use any of the scripting, models or texturing in this OXP, the usage must be distinct from that within this OXP. Unique identifiers such as (but not limited to) unique shipdata.plist entity keys, mission variables, script names (this.name), equipment identity strings (EQ_), description list arrays and entity roles must not be re-used without prior agreement. Basically if it's unique or would identify or overwrite anything in the original OXP, then you may not re-use it (for obvious compatibility reasons).&lt;br /&gt;
* rebundling of this OXP within another distribution is permitted as long as it is unchanged. The following derivates however are permitted and except from the above:&lt;br /&gt;
** the conversion of files between XML and openStep.&lt;br /&gt;
** the merging of files with other files of the same type from other OXPs.&lt;br /&gt;
* The license information (either as this file or merged into a larger one) must be included in the OXP.&lt;br /&gt;
* Even though it is not compulsory, if you are re-using any sizable or recognisable piece of this OXP, please let me know :)&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; (Details of images used) ---&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show gory details&amp;quot; data-collapsetext=&amp;quot;Hide gory details&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
'''Image files:'''&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_20850610.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21988050.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_23326348.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21988072.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_23326337.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/empty-dark-room-modern-futuristic-sci-fi-background-3d-illustration_21835246.htm Image by user6702303 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/blue-sky-with-scattered-white-clouds_12110221.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22542965.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/cloudy-sky-daylight-background_19380968.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22543011.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/blue-sky-with-cloud-closeup_6133056.htm Image by photogenia on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/beautiful-skyscape-during-daytime_22542943.htm Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-vector/20-vehicles-outline-icon-presentation_38543743.htm Image by flatart on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-ai-image/subway-dark-atmosphere_76653967.htm Image by freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-ai-image/new-york-city-subway-train-motion_69844323.htm Image by freepik&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.freepik.com/free-photo/motion-blur-automatic-train-moving-inside-tunnel-tokyo-japan_10824408.htm Image by tawatchai07 on Freepik&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Some images were generated by AI at https://www.freepik.com/pikaso/ai-image-generator&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sound files:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;e train 140kmh 04 190613_0029.wav&amp;quot; by klankbeeld -- https://freesound.org/s/476298/ -- License: Attribution 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Arrival of a passenger electric train.1950km station_2(Eq,lmtr).wav&amp;quot; by newlocknew -- https://freesound.org/s/580464/ -- License: Attribution 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Version History ==&lt;br /&gt;
2.35&lt;br /&gt;
* Tighter integration with Library.&lt;br /&gt;
* Improved handling of nova conditions.&lt;br /&gt;
&lt;br /&gt;
2.34&lt;br /&gt;
* Shipyard not moved to planet in Anarchy systems.&lt;br /&gt;
* Made ship maintenance available from stations in Anarchy systems.&lt;br /&gt;
* Methods for creating random location names should now create the same name for the same location, every time. No more name switching.&lt;br /&gt;
* Added some additional place naming methods for potential future use.&lt;br /&gt;
* Fixed issue with naming function for Leisure Complexes, where some of the elements in brackets were not being returned.&lt;br /&gt;
* Corrections to some number extraction processes.&lt;br /&gt;
&lt;br /&gt;
2.33&lt;br /&gt;
* Fixed bug in $getPlanetFromLandingSite function.&lt;br /&gt;
* Tweak to monkey patch function.&lt;br /&gt;
&lt;br /&gt;
2.32&lt;br /&gt;
* Fixed issue where a excessive number of Colony Domes were being spawned (and possibly Colony Cities as well).&lt;br /&gt;
* Citizens of a system can now use the transit system for free. (Requires Diplomacy OXP)&lt;br /&gt;
* Home System members with enough standing can now use the transit system for free. (Requires Home System OXP).&lt;br /&gt;
&lt;br /&gt;
2.31&lt;br /&gt;
* Added GNN interface to some planetary surface locations.&lt;br /&gt;
* Fixed null reference error that could occur during transits.&lt;br /&gt;
* Added screenID's to all mission screens.&lt;br /&gt;
* Speed of the landing FX now scales with system performance.&lt;br /&gt;
* Switched to using logcontrol.plist for debug output.&lt;br /&gt;
&lt;br /&gt;
2.30&lt;br /&gt;
* Changed manifest title from &amp;quot;PlanetFall&amp;quot; to &amp;quot;PlanetFall2&amp;quot;.&lt;br /&gt;
* Changed Library Config aliases to &amp;quot;PlanetFall2&amp;quot;.&lt;br /&gt;
* Changed category to &amp;quot;Systems&amp;quot;.&lt;br /&gt;
* Fixed issue with adding OXP locations to custom systems, where some keys were being added to the list twice.&lt;br /&gt;
&lt;br /&gt;
2.29&lt;br /&gt;
* Shuttles that choose to land on a planet will now do so at one of the landing sites.&lt;br /&gt;
* Shuttles will also launch from the landing sites.&lt;br /&gt;
&lt;br /&gt;
2.28&lt;br /&gt;
* Fixed method of detecting when two landing sites are too close together.&lt;br /&gt;
* Changed calculation method for positioning landing sites to ensure good separation from others.&lt;br /&gt;
&lt;br /&gt;
2.27&lt;br /&gt;
* Fixed issue where stored names were not being restored from missionVariables reliably.&lt;br /&gt;
* Fixed issue with naming system for Oo-Haul sites, which wasn't including &amp;quot;(Distribution Centre)&amp;quot; in the name.&lt;br /&gt;
* Fixed issue with naming HOopy Casino sites, which wasn't including &amp;quot;(HOopy Casino)&amp;quot; in the name.&lt;br /&gt;
* OXP planet locations defined via the ship role &amp;quot;planetFall2_???_externalOXP&amp;quot; are now attempted to be added to custom systems. Random factors and spawn conditions can then come in to play to limit the number of spawns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
2.26&lt;br /&gt;
* Darkened overlay images for better compatibility with Oolite 1.92.&lt;br /&gt;
&lt;br /&gt;
2.25&lt;br /&gt;
* Moved more text into missiontext.plist.&lt;br /&gt;
* Fixed issue with ship transfer fee not being calculated correctly when being deducted from the players account.&lt;br /&gt;
&lt;br /&gt;
2.24&lt;br /&gt;
* Added check for, and warning message of, PlanetLand OXP conflict.&lt;br /&gt;
&lt;br /&gt;
2.23&lt;br /&gt;
* Fixed issue where shipyards were not viewable on stations that have overridden the &amp;quot;move shipyards to planet&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
2.22 &lt;br /&gt;
* Display a message when attempting to access shipyards on stations when they are located on planetary surfaces.&lt;br /&gt;
* Added option to disable the shallow approach angle requirement when landing on a surface location.&lt;br /&gt;
* Tweaked spawning logic so planetary locations can't be too close together, increasing the distance from the previous fix.&lt;br /&gt;
&lt;br /&gt;
2.21&lt;br /&gt;
* Change to manifest file to match with split of resources pack into two.&lt;br /&gt;
&lt;br /&gt;
2.20&lt;br /&gt;
* Added a function, $getSystemLocations, which returns an object containing the ship keys and place names of all planetary locations in a given system.&lt;br /&gt;
&lt;br /&gt;
2.19&lt;br /&gt;
* Setting beacon range to zero will make all beacons visible all the time.&lt;br /&gt;
* Added ability to scale the maximum turbulence factor per planet.&lt;br /&gt;
&lt;br /&gt;
2.18&lt;br /&gt;
* Added a &amp;quot;turbulence impact scale&amp;quot; option so the effect of turbulence can be scaled to taste.&lt;br /&gt;
* Allowed for blank entries in location overrides to switch to randomised location types and naming.&lt;br /&gt;
* Fixed issues when checking roles to determine the type of VFX to show for landing.&lt;br /&gt;
* Added ability to override the landing clouds, docks and overlays on a per-planet basis.&lt;br /&gt;
* Some code refactoring.&lt;br /&gt;
&lt;br /&gt;
2.17&lt;br /&gt;
* Moved most text into missiontext.plist for easier localisation.&lt;br /&gt;
* Removed monkey patch on Marker Inquirer as no longer required.&lt;br /&gt;
&lt;br /&gt;
2.16&lt;br /&gt;
* Tweak to prevent LMSS and Laser Arrangement interfaces disappearing on non-PlanetFall locations.&lt;br /&gt;
&lt;br /&gt;
2.15&lt;br /&gt;
* Increased the number of shipdata entities to better handle high values for the number of planetary landing points.&lt;br /&gt;
&lt;br /&gt;
2.14&lt;br /&gt;
* Added protection for instances where a planet or moon has no air color value set.&lt;br /&gt;
* Fixed issue where the reason for the denial of a landing request was not being transmitted to the player.&lt;br /&gt;
&lt;br /&gt;
2.13&lt;br /&gt;
* Further fixes to linkage between landing sites and planets.&lt;br /&gt;
&lt;br /&gt;
2.12&lt;br /&gt;
* Fixed incorrect property setting in shipdata.&lt;br /&gt;
* Changed allegiance setting for research complexes to be neutral.&lt;br /&gt;
* Fixed issue where landing sites could spawn too close together.&lt;br /&gt;
&lt;br /&gt;
2.11&lt;br /&gt;
* Fixed issue where link between landing sites and planets could occasionally break due to rounding errors.&lt;br /&gt;
&lt;br /&gt;
2.10&lt;br /&gt;
* Prevented things like &amp;quot;Immigration Control&amp;quot; from appearing in Anarchy systems.&lt;br /&gt;
* Prevented turbulence frame callback from being started twice.&lt;br /&gt;
* Fixed error: this.serviceLevelDecrease is not a function.&lt;br /&gt;
* Tweaks to hopefully permanently fix issue where turbulence effect keeps running after a witchspace jump or docking.&lt;br /&gt;
&lt;br /&gt;
2.9&lt;br /&gt;
* Fixed JS error in transit process code.&lt;br /&gt;
* Fixed issue where Vimana-X HUD was not resetting correctly on launch after using transit system.&lt;br /&gt;
&lt;br /&gt;
2.8&lt;br /&gt;
* Split off planet rotation slowing into separate OXP, and made optional for this OXP.&lt;br /&gt;
&lt;br /&gt;
2.7&lt;br /&gt;
* Dying while turbulence is active will now stop the frame callback.&lt;br /&gt;
* Added tweak to planet rotation when approaching planet, slowing it down to make scale issues less obvious (can be configured with Library Config).&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
2.6&lt;br /&gt;
* Small tweak to the market script.&lt;br /&gt;
* Small fix to the name generation process for Capital Cities.&lt;br /&gt;
&lt;br /&gt;
2.5&lt;br /&gt;
* Refined some text in messages for better understanding and integration with the built in voice.&lt;br /&gt;
* Added a pre-spawn check for a condition script on custom (ie non-built-in) surface locations.&lt;br /&gt;
* Fixed issue that was preventing custom names from being applied to custom system setups.&lt;br /&gt;
* Added a PDF document outlining how to create custom systems, for non-coders.&lt;br /&gt;
* Updates for the PlanetFall Oo-haul mission pack.&lt;br /&gt;
* Added conflict with PlanetFallMarketSaver - this OXP shouldn't be necessary with PlanetFall2.&lt;br /&gt;
* Added conflict with PlanetFall Markets - this OXP shouldn't be necessary with PlanetFall2.&lt;br /&gt;
* Removed some unused settings in config.&lt;br /&gt;
* Split off graphical assets into separate OXP, to make updating the core code easier for everyone.&lt;br /&gt;
* Added a second train FX image, so that the second animation doesn't just look completely like the first.&lt;br /&gt;
* Tweaked train FX images to make them more centred.&lt;br /&gt;
* Added scan class to station entities.&lt;br /&gt;
&lt;br /&gt;
2.4&lt;br /&gt;
* Adjusted calculations to make landing when pointing at the GCIP more consistent.&lt;br /&gt;
&lt;br /&gt;
2.3&lt;br /&gt;
* Added a planet-side transit system, so you don't have to launch and re-dock to visit another landing site on the same planet.&lt;br /&gt;
* Transit costs are adjusted based on government types. Configurable via Library Config.&lt;br /&gt;
* Ship transfer costs are adjusted based on government types. Configurable via Library Config.&lt;br /&gt;
* Fixed shipyard transfer process to not run more than once per system.&lt;br /&gt;
* Added fragment and vertex shaders to ensure all break patterns appear clearly and without shadow.&lt;br /&gt;
* Removed yaw turbulence factor. Only pitch and roll turbulence will be now be set.&lt;br /&gt;
* Fixed issue that was preventing subSurface colonies and moonSurface domes from being spawned.&lt;br /&gt;
* Amount of reduction to service level is now configurable via Library Config.&lt;br /&gt;
* Added a function (PlanetFall2.playerShipIsLocal) that can be called to determine if the player is near their ship or not.&lt;br /&gt;
* Removed the Blackmonks and HoOpy Casino config options, and incorporated spawn chances in script_info object of shipdata and condition script.&lt;br /&gt;
&lt;br /&gt;
2.2&lt;br /&gt;
* Fixed issue where, if &amp;quot;Additional Planets&amp;quot; doesn't create any planets, no landing sites are created on the main planet.&lt;br /&gt;
* Reapplied monkey match for Market Inquirer to address issue with beacons not showing when more than 100000m from the player when docked.&lt;br /&gt;
* Removed conflicts with SW Planetary Systems and Moons, although it is unlikely any created moons will get landing sites.&lt;br /&gt;
&lt;br /&gt;
2.1&lt;br /&gt;
* Added methods to allow for a fully customised system to be defined (with multiple sites per planet/moon).&lt;br /&gt;
* Moved Feudal States override code into a separate OXP.&lt;br /&gt;
* Fixed missing semi-colon in shipdata.plist.&lt;br /&gt;
* Switched ground control interface point to be a normal ship object (rather than a visual effect) to gain better compatibility with OXP's like Telescope.&lt;br /&gt;
* Made the ground control interface points more visible.&lt;br /&gt;
* Reduced the number of monkey patches required.&lt;br /&gt;
* Made the maximum range at which the space compass will detect ground control interface points configurable via Library Config, and changed the default value to 200km.&lt;br /&gt;
* Added some conflict oxps (&amp;quot;Planetary Systems&amp;quot; and &amp;quot;Moons&amp;quot; by stranger).&lt;br /&gt;
* Improved compatibility with Market Inquirer.&lt;br /&gt;
* Tweaked spawning methods to better reflect the original PlanetFall results, where OXP station roles are not added unless override flag is set.&lt;br /&gt;
* Added a warning screen for players, informing them that ship maintenance services are only available on the planet.&lt;br /&gt;
* Added a chance of a misjump when executing a witchspace jump inside the atmosphere.&lt;br /&gt;
* Fixed issue where entering witchspace while the turbulence effect is still active would result in it staying active.&lt;br /&gt;
* Fixed bug that was setting service level to the minimum value when launching from a planetary location.&lt;br /&gt;
* Turbulence now doesn't end when speed is zero.&lt;br /&gt;
* Added a config item to manage how much the service level of the player ship is reduced.&lt;br /&gt;
* Added shipdata entries to allow for multiple military bases, leisure complexes, factories and dumps on the main planet in custom systems. &lt;br /&gt;
* Fixed issues where NaN, NaN, Nan is calculated for a vector.&lt;br /&gt;
* Log messages now controllable via a debug flag.&lt;br /&gt;
* Removed some unused code.&lt;br /&gt;
&lt;br /&gt;
2.0&lt;br /&gt;
* Updated landing FX, with clouds and landing pads.&lt;br /&gt;
* Updated launching FX.&lt;br /&gt;
* Changed docking method to have a fixed location (rather than just descending towards the planet surface anywhere), which means you can now save your game at planetary locations.&lt;br /&gt;
* Access to equipment sales (F3 Equip Ship) configuration via Library Config.&lt;br /&gt;
* Updated market information to allow for 3 different methods to be applied to any of the locations. (Configurable via Library Config)&lt;br /&gt;
* Added a variety of arrival report screen backgrounds. (Can be turned off via Library Config)&lt;br /&gt;
* Added a turbulence effect when in the atmosphere of a planet. (Can be turned off via Library Config)&lt;br /&gt;
* Equipment item renamed to &amp;quot;Atmospheric Stabilisers&amp;quot;, but is optional for planetary landings.&lt;br /&gt;
* Moved ships from shipyards on other stations to planetary locations. (Configurable via Library Config)&lt;br /&gt;
* Moved &amp;quot;Maintenance Overhaul&amp;quot; to only be available on the main planet. (Configurable via Library Config)&lt;br /&gt;
* Added script updates to Feudal Systems, Aquatics, Market Inquirer, Galactic Almanac and In-System cargo delivery to maintain compatibility.&lt;br /&gt;
* Additional compatibility settings updated via shipdata-overrides.plist.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Dark Side ==&lt;br /&gt;
=== Custom designing a system ===&lt;br /&gt;
You can now custom design a system:&lt;br /&gt;
:specifically naming landing sites (see inside Lave.oxp)&lt;br /&gt;
:adding tweaks for entering the atmosphere: storms, haze, colours, and [[OXP_howto_texture#Planet_textures|city night-lights]] (see inside Famous Planets v.3 &amp;amp; see inside Lave.oxp)&lt;br /&gt;
:tweaking landing: images (see inside DGill's newest Feudal Systems suite - Digebiti &amp;amp; Tibecea, PF2 Blackmonks, PF2 HoOpy Casinos and PF2 Oohaul) &lt;br /&gt;
:tweaking landing: haze (see Famous Planets v.3 - G1 Larais)&lt;br /&gt;
:tweaking landing: activities (see inside DGill's newest Feudal Systems suite, PF2 Blackmonks, PF2 HoOpy Casinos and PF2 Oohaul)&lt;br /&gt;
&lt;br /&gt;
To tweak a system, see the &amp;quot;Creating Custom Systems.pdf&amp;quot; &amp;amp; the &amp;quot;Developer's ReadMe&amp;quot; hidden inside the PF2 and then also the example [https://app.box.com/s/5xbksy48qr9cp31z2wpef6wjla05s3ih/file/1505969925081 SuperSystem.oxp]&lt;br /&gt;
:There is more detail [https://bb.oolite.space/viewtopic.php?p=301011#p301011 here] (runs on for several pages) and [https://bb.oolite.space/viewtopic.php?p=301065#p301065 here]&lt;br /&gt;
&lt;br /&gt;
=== Problems with the Oolite game engine ===&lt;br /&gt;
*Planets were never meant to be interacted with in Oolite - there's a lot of hand-waving going on with PF2 when it comes to landing on the surface. [https://bb.oolite.space/viewtopic.php?p=301396#p301396 Phkb (2025)]&lt;br /&gt;
*The Oolite game engine does support larger planets and stars - I put together an OXP a while ago which uses them - but not necessarily particularly well. (Editor: [[SOTL Altmap]]? [[SOTL Exploration]]?)&amp;lt;br&amp;gt;&lt;br /&gt;
:You would have noticeable &amp;quot;corners&amp;quot; on the planets at 'real-world' sizes, as a 20,000 triangle polygon gets too large. You can already see these if you go as low as you can on a planet and look at the horizon. Similarly, the way planet texturing works would need to be significantly changed to avoid pixels tens of kilometres wide. There are display issues with large stars at high distances. There's a bit of a hack in the display code to avoid the worst of it, but there can still be strange issues with which objects are displayed in front of which. (You would probably need a higher Open GL version to solve these, which may or may not be practical to hide behind a graphics setting toggle) [https://bb.oolite.space/viewtopic.php?p=263420#p263420 Cim (2018)]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=21606 BB thread] (2024)&lt;br /&gt;
*[[Planetfall OXP]] PF v.1 original wiki page&lt;br /&gt;
&lt;br /&gt;
== Quick Facts ==&lt;br /&gt;
{{OXPLevel|0|2}}{{IconOXP|ooVersion=&amp;quot;1.90&amp;quot;|oxpCPU=&amp;quot;Average&amp;quot;|oxpMEM=&amp;quot;Low&amp;quot;|oxpGPU=&amp;quot;Average&amp;quot;|oxpIsAPI=true|oxpIsDocumented=true|oxpIsConfigurable=true}}&lt;br /&gt;
[[Image:IconLib.png|48px|right|link=Library OXP|alt=Config options available through 'Library']]&lt;br /&gt;
{{Infobox OXPb| title = PlanetFall2.oxz&lt;br /&gt;
|version = 2.35&lt;br /&gt;
|release = 2026-08-03&lt;br /&gt;
|license = CC BY-NC-SA 3.0&lt;br /&gt;
|features = Planetary landings&lt;br /&gt;
|category = Systems OXPs&lt;br /&gt;
|author = [[User:Thargoid|Thargoid]], [[User:phkb|phkb]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?t=21606 Oolite BB]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance indicator ==&lt;br /&gt;
[[File:Tag-colour-orange.png|right]]&lt;br /&gt;
By default, planetary landings are harder than they were in V1. However, if you don't land on or approach planets, gameplay is largely unaffected (or it can be).&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Riredi_OXP&amp;diff=90142</id>
		<title>Riredi OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Riredi_OXP&amp;diff=90142"/>
		<updated>2026-08-09T22:35:18Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* New Version! */ Updated the update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Riredi_sodalite_orbital_station2.png|thumb|799px|right|Riredi sodalite orbital station]]&lt;br /&gt;
[[File:riredi planet.png|thumb|300px|left|Riredi.oxp's Riredi]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
*Custom texture for the planet&lt;br /&gt;
*New F7 description of the planet&lt;br /&gt;
*Unique orbital station&lt;br /&gt;
*Custom docking tunnel for [[BGS]]&lt;br /&gt;
*Special station defenders&lt;br /&gt;
&lt;br /&gt;
[[Sector1/Riredi]] is the home of '''Coluber Inc.''' (Coluber Works and Shipyards Ltd.) and '''Riredisec Ltd.''' (a well established transport company that is specialized in the transportation of larger quantities of gold, platinum and gemstones).&lt;br /&gt;
&lt;br /&gt;
The station is thus unique (designed and built by Coluber) and is guarded by [[Coluber Pitviper|Pitviper Mark II]]s which are manufactured locally by Coluber.&lt;br /&gt;
&lt;br /&gt;
This OXP was initially created by Captain Beatnik in 2014.&lt;br /&gt;
&lt;br /&gt;
=== Riredi v.2.0 ===&lt;br /&gt;
This OXP has been updated by [[User:Phkb|Phkb]] in 2024 (currently v.2.4)&lt;br /&gt;
&lt;br /&gt;
The new version includes &lt;br /&gt;
*retextures of the Sodalite station &amp;amp; buoy, &lt;br /&gt;
*retexture of the planet (now includes city lights) &lt;br /&gt;
*introduces various trading tweaks (illegality of radioactives, a [[New Cargoes]] commodity)&lt;br /&gt;
*creates a preponderance of Coluber ships in the station shipyard (if the various Coluber ship OXPs are loaded)&lt;br /&gt;
*introduces retextured Coluber police ships to the system.&lt;br /&gt;
*includes PlanetFall 2 integration.&lt;br /&gt;
&lt;br /&gt;
It links in with [[User:Phkb|Phkb]]'s Pitviper Mark II Facelift OXP (See [[Coluber Pitviper]]).&lt;br /&gt;
&lt;br /&gt;
[[File:IconBGS.png|right |link=BGS|BGS enhances this OXP]]&lt;br /&gt;
[[File:IconPF2.png|right |link=Planetfall2 OXP|PlanetFall2 adds lore-based landing sites]]&lt;br /&gt;
[[File:New Cargoes icon.png|right|link=New Cargoes|New Cargoes commodity added in]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*The original OXP was created by Captain Beatnik back in 2014 (planet texture, F7 screen description, station). &lt;br /&gt;
*It was then rejigged as an OXZ for the in-game [[Expansions Manager]] by Dybal in 2020. &lt;br /&gt;
*Phkb then added in city lights to the planet textures, improved ship textures, New Cargoes and planet landing sites for PlanetFall2 in 2024.&lt;br /&gt;
*Captain Beatnik is currently adding more: a lore-based planet texture, greeting screen on docking, ''etc''.&lt;br /&gt;
&lt;br /&gt;
*Captain Beatnik has also added much lore for the planet and its denizens (see his [[User:Captain Beatnik|User:page]] for links to it).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Sector1/Riredi]] - contains some of the new Lore&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16237 RELEASE: Riredi (ambience OXP)] BB Thread (2014-24)&lt;br /&gt;
*[[User:Captain Beatnik|Captain Beatnik]]: links to his other OXPs (pitvipers, racing ships &amp;amp; HUDs)&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
This oxp was repackaged and placed on the [[Expansions Manager]] by [[User:Dybal|Dybal]] and has since been updated by Phkb.&lt;br /&gt;
=== New Version! ===&lt;br /&gt;
*[[User:Captain Beatnik|Captain Beatnik]] has been working on updating this OXP further: [https://app.box.com/s/kkbg2ceb45aisg88npzq9o0wqxkebcy0 ''download here (9th Aug 2026 update)''].&lt;br /&gt;
&lt;br /&gt;
(i) Planet Texture: It now contains a lore-based planet texture with the appropriate geography (the vast central sea; Apex Mons (a gigantic, extinct shield volcano with three military research facilities on its crater rim, faintly visible at night); and the massive Coluber Works and Shipyards complex, situated in isolation within an ancient southern meteorite crater. The city night-lights now allow the N-Ddshriiipjiziss mega-metropolitan region to become visible in-game whenever the peninsula it occupies is on the planet's night side. Even the gigantic palace complex of the Three Protecting Mothers is now visible — albeit only as a tiny lightspot — from orbit, just as described in the lore.&lt;br /&gt;
&lt;br /&gt;
(ii) Panorama: Minor tweaks now position the station to allow fantastic views of the planet — including the day-night terminator — both upon arrival at the Witchpoint and after launching from the station.&lt;br /&gt;
&lt;br /&gt;
(iii) Greeting: You are now met with an immersive greeting when you dock at the station - a welcome screen that displays useful information alongside some humorous messages — such as alerts if the ship has damaged modules or requires maintenance. The screen also shows your legal status, with the greeting becoming more reserved or even hostile if you are flagged as an Offender or Fugitive.&lt;br /&gt;
&lt;br /&gt;
==== Possible future improvements ====&lt;br /&gt;
 If I find the time, I’ll try building some interior facilities for the station next. I already have a few ideas, but I’m still working out a concept for how to implement them. (Captain Beatnik, August 2026).&lt;br /&gt;
&lt;br /&gt;
[[File:Tag-colour-green.png]]&lt;br /&gt;
&lt;br /&gt;
{{dockables-OXP}}&lt;br /&gt;
{{ambience-OXP}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Baakili_Far_Trader&amp;diff=90141</id>
		<title>Baakili Far Trader</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Baakili_Far_Trader&amp;diff=90141"/>
		<updated>2026-08-09T17:42:03Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Tweaks */ Added Krager's script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Semantic Infobox ShipStats Oolite&lt;br /&gt;
|title=Baakili Far Trader&lt;br /&gt;
|image = [[Image:Z_Baakili.png|120px]]&lt;br /&gt;
|width = 850m&lt;br /&gt;
|height = 850m&lt;br /&gt;
|length = 1400m&lt;br /&gt;
|hyperspace = Yes&lt;br /&gt;
|isoxp = OXP&lt;br /&gt;
|isplayer = No&lt;br /&gt;
}}&lt;br /&gt;
== Baakili Far Trader OXP ==&lt;br /&gt;
&amp;lt;sup&amp;gt;by [[User:Zieman|Zieman]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This OXP adds an enigmatic alien race to the Ooniverse. These aliens fly gigantic, weird-looking spaceships and trade, as they say: &amp;quot;in information, sometimes esoteric, but always accurate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Inspired by a character found in [http://en.wikipedia.org/wiki/Space_Rogue Paul Neurath's Space Rogue] (Origin 1989). &lt;br /&gt;
&lt;br /&gt;
Released under the [http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported] License.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The mysterious Baakili value information above all else, so only a few select items of usual trader cargo is accepted. The rumours of sentients dropped near GalCop stations in remote systems with certain period of their lives erased from their memories are yet to be confirmed. &lt;br /&gt;
&lt;br /&gt;
== Finding one and Trading ==&lt;br /&gt;
If you have an Advanced Space Compass, Baakili Nav Buoy is shown as &amp;lt;b&amp;gt;U&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To initiate trade procedure, approach from behind - when you're close enough, you'll be transported to the trading area.  &lt;br /&gt;
&lt;br /&gt;
== Additional info ==&lt;br /&gt;
Baakili Far Trader has the role &amp;quot;bigTrader&amp;quot; in the role set, so it can be summoned by the Big Ships OXP. Even then the Baakili will behave in their own way.&lt;br /&gt;
&lt;br /&gt;
Bigships_1.0.2.zip included in the download. &lt;br /&gt;
&lt;br /&gt;
== Version history ==&lt;br /&gt;
2.0 - current version: [http://app.box.com/shared/zug5tyeqfk Download v 2.0 from Box.com] (2010)&lt;br /&gt;
* uses shaders via Oolite's materials model&lt;br /&gt;
* added Baakili to pirate-victim-roles.plist&lt;br /&gt;
&lt;br /&gt;
1.2 - second bugfix: [http://koti.mbnet.fi/jouniku/Oolite/Baakili%20Far%20Trader%201.2.zip Download v 1.2 direct from Zieman's website]&lt;br /&gt;
* fixed problems that prevented the use of custom commodities.plist&lt;br /&gt;
* now the Baakili gets unique commodity market as intended, both when spawned by the OXP's own populator script and as bigTrader by the Big Ships OXP&lt;br /&gt;
&lt;br /&gt;
1.1 - first bugfix&lt;br /&gt;
* fixed shipdata (prevented the ship's appearance 2 times out of 3)&lt;br /&gt;
* replaced the populator script with a javascript one&lt;br /&gt;
&lt;br /&gt;
1.0 - initial release&lt;br /&gt;
&lt;br /&gt;
== Tweaks ==&lt;br /&gt;
You will need to tweak the market to work with post 1.80 versions of Oolite: see [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17621#p239979 here] for instructions&lt;br /&gt;
&lt;br /&gt;
Krager published a script for this OXP doing just that: see [https://bb.oolite.space/viewtopic.php?p=306882#p306882 here] (2026)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[http://koti.mbnet.fi/jouniku/Oolite/ZOoliteOPXs.html Zieman's Oolite OXPs Website]&lt;br /&gt;
*[http://jouniku.mbnet.fi/Oolite/ZOoliteOPXs.html Another Zieman web site]&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=274666#p274666 Recent activity] (2021)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=7372 Thread includes Baakili] (2010-2)&lt;br /&gt;
&lt;br /&gt;
*[[User:Zieman|Zieman]]&lt;br /&gt;
*[[Far Arm ships]]: 10 ships &amp;amp; 4 missiles inspired by Paul Neurath's Space Rogue&lt;br /&gt;
*[[Tin of SPAM]]&lt;br /&gt;
*[[Z-ships]]: (Asp Explorer, Cobra Commodore, Porcupine &amp;amp; Python Courier) &lt;br /&gt;
*[[Zieman's Habitat Orbital Station]]&lt;br /&gt;
&lt;br /&gt;
{{OXPLevel|0}}&lt;br /&gt;
{{ship-OXP}}&lt;br /&gt;
[[Category:Oolite carriers]]&lt;br /&gt;
[[Category:Non-humanoid people]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Zerst%C3%B6rer&amp;diff=90140</id>
		<title>Zerstörer</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Zerst%C3%B6rer&amp;diff=90140"/>
		<updated>2026-08-09T12:28:51Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added some lore, destubbed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Semantic Infobox ShipStats Oolite| title=Zerstörer&lt;br /&gt;
|image = [[image:Zerstörer.png|120px]]&lt;br /&gt;
|dimensions = 89x29x101&lt;br /&gt;
|width = 89m&lt;br /&gt;
|height = 29m&lt;br /&gt;
|length = 101m&lt;br /&gt;
|capacity = 20 TC&lt;br /&gt;
|capacityext = N/A&lt;br /&gt;
|maxspeed = 0.40 LM&lt;br /&gt;
|maneuverability = Roll: 1.9&amp;lt;br /&amp;gt;Pitch: 1.25&lt;br /&gt;
|energybanks = Unknown&lt;br /&gt;
|energyrecharge = 3.8&lt;br /&gt;
|gunmounts = Fore&lt;br /&gt;
|missileslots = 4&lt;br /&gt;
|shieldboost = No&lt;br /&gt;
|milshields = No&lt;br /&gt;
|hyperspace = Yes&lt;br /&gt;
|isoxp = OXP&lt;br /&gt;
|isplayer = No&lt;br /&gt;
|baseprice = N/A&lt;br /&gt;
}}&lt;br /&gt;
==Overview==&lt;br /&gt;
Also known as 'The Zerstoerer' and 'Prinz Klasse Zerstoerer' (English: Destroyer)&lt;br /&gt;
&lt;br /&gt;
Sadly, the Zerstoerer can be a lumbering ungainly ship, unless flown by a pilot with lightening-speed reactions. While less suited for jousting, the Zerstoerer can be deadly in a full-fledged assault.&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
The Zerstoerer was originally designed to protect the feudal naval strategists, those lucky individuals blessed with the strategic “coup d’oeil”, keeping them safe so that they could direct their navies against their enemies - whether Thargoids, pirates, bolsheviks or bourgeois money-grubbing corporatists. Sadly, many are now in the hands of the cravenly wealthy who have the connections to get their hands on one of these flagships.&lt;br /&gt;
&lt;br /&gt;
These are built by Chivalric Spaceworks which has dockyards spread throughout the Feudal states&lt;br /&gt;
&lt;br /&gt;
The Zerstoerer is flown by the princely class and is the one of the various feudal ships. Based on the Tetrahedron, the four-aspected nature of the ship reflects the four crucial values of chivalry: Piety, Nobility (includes loyalty &amp;amp; courtesy), Valour and Honour (includes Fair Play).&lt;br /&gt;
&lt;br /&gt;
With the onslaught of the Thargoids, the resulting enfeeblement of GalCop and the concommitant rise of piracy, the Feudal Worlds were no longer able to source starships from the relevant corporations (especially with the inevitable political interference), and the growing need for &amp;quot;worthy steeds&amp;quot; for the knightly classes led to Lord Ramirez (rumoured to hail from [[Sector1/Geinona|Geinona]]) designing these Feudal Fliers, and eventually establishing Chivalric Spaceworks.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
The Zerstörer is available in the: [[Feudal States]] OXP.&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Zerst%C3%B6rer&amp;diff=90139</id>
		<title>Zerstörer</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Zerst%C3%B6rer&amp;diff=90139"/>
		<updated>2026-08-09T12:10:57Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added some lore, destubbed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Semantic Infobox ShipStats Oolite| title=Zerstörer&lt;br /&gt;
|image = [[image:Zerstörer.png|120px]]&lt;br /&gt;
|dimensions = 89x29x101&lt;br /&gt;
|width = 89m&lt;br /&gt;
|height = 29m&lt;br /&gt;
|length = 101m&lt;br /&gt;
|capacity = 20 TC&lt;br /&gt;
|capacityext = N/A&lt;br /&gt;
|maxspeed = 0.40 LM&lt;br /&gt;
|maneuverability = Roll: 1.9&amp;lt;br /&amp;gt;Pitch: 1.25&lt;br /&gt;
|energybanks = Unknown&lt;br /&gt;
|energyrecharge = 3.8&lt;br /&gt;
|gunmounts = Fore&lt;br /&gt;
|missileslots = 4&lt;br /&gt;
|shieldboost = No&lt;br /&gt;
|milshields = No&lt;br /&gt;
|hyperspace = Yes&lt;br /&gt;
|isoxp = OXP&lt;br /&gt;
|isplayer = No&lt;br /&gt;
|baseprice = N/A&lt;br /&gt;
}}&lt;br /&gt;
==Overview==&lt;br /&gt;
Also known as 'The Zerstoerer' and 'Prinz Klasse Zerstoerer' (English: Destroyer)&lt;br /&gt;
&lt;br /&gt;
Sadly, the Zerstoerer can be a lumbering ungainly ship, unless flown by a pilot with lightening-speed reactions. While less suited for jousting, the Zerstoerer can be deadly in a full-fledged assault.&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
These are built by Chivalric Spaceworks which has dockyards spread throughout the Feudal states&lt;br /&gt;
&lt;br /&gt;
The Zerstoerer is flown by the princely class and is the one of the various feudal ships. Based on the Tetrahedron, the four-aspected nature of the ship reflects the four crucial values of chivalry: Piety, Nobility (includes loyalty &amp;amp; courtesy), Valour and Honour (includes Fair Play).&lt;br /&gt;
&lt;br /&gt;
With the onslaught of the Thargoids, the resulting enfeeblement of GalCop and the concommitant rise of piracy, the Feudal Worlds were no longer able to source starships from the relevant corporations (especially with the inevitable political interference), and the growing need for &amp;quot;worthy steeds&amp;quot; for the knightly classes led to Lord Ramirez (rumoured to hail from [[Sector1/Geinona|Geinona]]) designing these Feudal Fliers, and eventually establishing Chivalric Spaceworks.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
The Zerstörer is available in the: [[Feudal States]] OXP.&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Korvette&amp;diff=90138</id>
		<title>Korvette</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Korvette&amp;diff=90138"/>
		<updated>2026-08-09T12:06:49Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added some lore, destubbed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Semantic Infobox ShipStats Oolite&lt;br /&gt;
|title=Korvette&lt;br /&gt;
|image = [[image:Korvette.png|120px]]&lt;br /&gt;
|width = 39m&lt;br /&gt;
|height = 11m&lt;br /&gt;
|length = 54m&lt;br /&gt;
|capacity = 10 TC&lt;br /&gt;
|capacityext = N/A&lt;br /&gt;
|maxspeed = 0.36 LM&lt;br /&gt;
|maneuverability = Roll: 2.3&amp;lt;br /&amp;gt;Pitch: 2.0&lt;br /&gt;
|energybanks = Unknown&lt;br /&gt;
|energyrecharge = 3.0&lt;br /&gt;
|gunmounts = Fore&lt;br /&gt;
|missileslots = 4&lt;br /&gt;
|shieldboost = No&lt;br /&gt;
|milshields = No&lt;br /&gt;
|hyperspace = Yes&lt;br /&gt;
|isoxp = OXP&lt;br /&gt;
|isplayer = No&lt;br /&gt;
|baseprice = N/A&lt;br /&gt;
}}&lt;br /&gt;
==Overview==&lt;br /&gt;
Also known as 'Freiherr-Klasse Korvette'&lt;br /&gt;
&lt;br /&gt;
In the right hands, the Korvette is a nifty and agile steed, well capable of scoring first at a pas d'armes, and then evading the opponent's sally.&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
These are built by Chivalric Spaceworks which has dockyards spread throughout the Feudal states&lt;br /&gt;
&lt;br /&gt;
The Korvette is flown by the baronial class and is the one of the various feudal ships. Based on the Tetrahedron, the four-aspected nature of the ship reflects the four crucial values of chivalry: Piety, Nobility (includes loyalty &amp;amp; courtesy), Valour and Honour (includes Fair Play).&lt;br /&gt;
&lt;br /&gt;
With the onslaught of the Thargoids, the resulting enfeeblement of GalCop and the concommitant rise of piracy, the Feudal Worlds were no longer able to source starships from the relevant corporations (especially with the inevitable political interference), and the growing need for &amp;quot;worthy steeds&amp;quot; for the knightly classes led to Lord Ramirez (rumoured to hail from [[Sector1/Geinona|Geinona]]) designing these Feudal Fliers, and eventually establishing Chivalric Spaceworks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
The Korvette is available in the: [[Feudal States]] OXP.&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=J%C3%A4ger&amp;diff=90137</id>
		<title>Jäger</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=J%C3%A4ger&amp;diff=90137"/>
		<updated>2026-08-09T12:01:55Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added some lore, destubbed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Semantic Infobox ShipStats Oolite&lt;br /&gt;
|title=Jäger&lt;br /&gt;
|image = [[image:Jäger.png|120px]]&lt;br /&gt;
|width = 17m&lt;br /&gt;
|height = 9m&lt;br /&gt;
|length = 39m&lt;br /&gt;
|capacity = 5 TC&lt;br /&gt;
|capacityext = N/A&lt;br /&gt;
|maxspeed = 0.375 LM&lt;br /&gt;
|maneuverability = Roll: 2.5&amp;lt;br /&amp;gt;Pitch: 2.0&lt;br /&gt;
|energybanks = Unknown&lt;br /&gt;
|energyrecharge = 2.0&lt;br /&gt;
|gunmounts = Fore&lt;br /&gt;
|missileslots = 2&lt;br /&gt;
|shieldboost = No&lt;br /&gt;
|milshields = No&lt;br /&gt;
|hyperspace = Yes&lt;br /&gt;
|isoxp = OXP&lt;br /&gt;
|isplayer = No&lt;br /&gt;
|baseprice = N/A&lt;br /&gt;
}}&lt;br /&gt;
==Overview==&lt;br /&gt;
Also known as 'The Jaeger' or 'Ritter-Klasse Jaeger' (English: Hunter)&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
These are built by Chivalric Spaceworks which has dockyards spread throughout the Feudal states&lt;br /&gt;
&lt;br /&gt;
The Jaeger is flown by humble knights and is the least sophisticated of the various feudal ships. Based on the Tetrahedron, the four-aspected nature of the ship reflects the four crucial values of chivalry: Piety, Nobility (includes loyalty &amp;amp; courtesy), Valour and Honour (includes Fair Play).&lt;br /&gt;
&lt;br /&gt;
With the onslaught of the Thargoids, the resulting enfeeblement of GalCop and the concommitant rise of piracy, the Feudal Worlds were no longer able to source starships from the relevant corporations (especially with the inevitable political interference), and the growing need for &amp;quot;worthy steeds&amp;quot; for the knightly classes led to Lord Ramirez (rumoured to hail from [[Sector1/Geinona|Geinona]]) designing these Feudal Fliers, and eventually establishing Chivalric Spaceworks.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
The Jäger is available in the: [[Feudal States]] OXP.&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Planetinfo.plist&amp;diff=90136</id>
		<title>Planetinfo.plist</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Planetinfo.plist&amp;diff=90136"/>
		<updated>2026-08-09T11:27:06Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Properties of the Planet */ Added note about &amp;quot;fogUniform&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''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 [[Oolite planet list|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):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:BellScrib goatsoup1.JPG|thumb|right|Ian Bell worksheet for the goatsoup recipe from his vanished archives&amp;lt;br&amp;gt;See [[Oolite_planet_list#Where_do_these_crazy_names_come_from|Where do these crazy names come from?]] ]]&lt;br /&gt;
&lt;br /&gt;
=== Colour Specifiers ===&lt;br /&gt;
'''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:&lt;br /&gt;
Named colours, RGB / RGBA tuples, RGB / RGBA dictionaries or HSBA dictionaries. &lt;br /&gt;
&lt;br /&gt;
Colours can be viewed at https://rgbcolorpicker.com/0-1 and many other websites&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;gory details&amp;quot; for more: ---&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show gory details&amp;quot; data-collapsetext=&amp;quot;Hide gory details&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
==== Named colours ====&lt;br /&gt;
The simplest form of colour specifier is a string containing a colour name. The following names are supported:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Colour names&lt;br /&gt;
! Name !! RGBA value&lt;br /&gt;
|-&lt;br /&gt;
|  blackColor || 0, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| darkGrayColor || 1/3, 1/3, 1/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| lightGrayColor || 2/3, 2/3, 2/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| whiteColor || 1, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| grayColor || 1/2, 1/2, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| redColor || 1, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| greenColor || 0, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| blueColor || 0, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| cyanColor || 0, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| yellowColor || 1, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| magentaColor || 1, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
|  orangeColor || 1, 1/2, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| purpleColor || 1/2, 0, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| brownColor || 0.6, 0.4, 0.2, 1&lt;br /&gt;
|-&lt;br /&gt;
| clearColor || 0, 0, 0, 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGBA tuples ====&lt;br /&gt;
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:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;1 1 0&amp;quot;&amp;lt;/code&amp;gt; — yellow&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;0 128 0 128&amp;quot;&amp;lt;/code&amp;gt; — medium green at 50% opacity&lt;br /&gt;
* &amp;lt;code&amp;gt;(1, 0, 0)&amp;lt;/code&amp;gt; – red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RGBA dictionaries ====&lt;br /&gt;
Just in case you’re unsure of the order the RGB[A] components come in, you can use a dictionary:&lt;br /&gt;
 {&lt;br /&gt;
    blue = 0.8;&lt;br /&gt;
    green = 0.8;&lt;br /&gt;
 }&lt;br /&gt;
Accepted keys are '''red''', '''green''', '''blue''' and '''alpha''' (or '''opacity'''), all optional (default: 0.0 for red, green and blue, 1.0 for alpha).&lt;br /&gt;
&lt;br /&gt;
==== HSBA dictionaries ====&lt;br /&gt;
But wait, there’s more! Colours may also be specified as dictionaries in the [http://en.wikipedia.org/wiki/HSB_colour_space 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.&lt;br /&gt;
 {&lt;br /&gt;
    // Pale magenta&lt;br /&gt;
    hue = 300;&lt;br /&gt;
    saturation = 0.3;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Added for Oolite v.1.91 ===&lt;br /&gt;
*air_density / or the Javascript planet entity airDensity - see below (pretty picture!) &lt;br /&gt;
&lt;br /&gt;
=== Added for Oolite v.1.89 ===&lt;br /&gt;
 This needs editing by somebody who understands it! Snatched from the Progress thread&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=270737#p270737 air_color] now produces the right color for the sky. Not only that, it is now used as the atmosphere scatter color when the planet is viewed from space. Non-blue atmospheres are finally possible!&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=270771#p270771 air_color_mix_ratio]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=271058#p271058 terminator_threshold_vector shipdata key]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=271058#p271058 JSPlanet terminatorThresholdVector property]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=269833#p269833 MULTIPLIER_LIGHTSRCRADIANCE and MULITPLIER_EXPOSURE]: Planet, ships and atmosphere shaders can now define lightsource radiance and scene exposure multipliers&lt;br /&gt;
*Also stuff about city lights&lt;br /&gt;
*And probably other stuff I missed!&lt;br /&gt;
&lt;br /&gt;
==Where Settings Apply==&lt;br /&gt;
&lt;br /&gt;
===Universal Settings===&lt;br /&gt;
&lt;br /&gt;
Universal options are applied to all 2048 solar systems, this is useful for settings such as ambient lighting levels, eg.&lt;br /&gt;
 &amp;quot;universal&amp;quot; =&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Interstellar Space===&lt;br /&gt;
&lt;br /&gt;
Conditions for interstellar space in general can be set with the “interstellar space” key.&lt;br /&gt;
&lt;br /&gt;
Note: [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=17191 Procedure to find all interstellar spaces] (2015)&lt;br /&gt;
&lt;br /&gt;
===Specific Systems===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &amp;quot;0 7&amp;quot; =&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
specifies system 7, in galaxy 0, ''Lave''.&lt;br /&gt;
&lt;br /&gt;
===Specific Interstellar Spaces===&lt;br /&gt;
&lt;br /&gt;
You can also specify a position in interstellar space, eg.&lt;br /&gt;
 &amp;quot;interstellar: 0 7 129&amp;quot; =&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
specifies the space in galaxy 0 between systems 7 and 129, ''Lave'' and ''Zaonce''.&lt;br /&gt;
&lt;br /&gt;
Note that&lt;br /&gt;
 &amp;quot;interstellar: 0 7 129&amp;quot; = // jumping from Lave towards Zaonce&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;interstellar: 0 129 7&amp;quot; = // jumping from Zaonce towards Lave&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
are distinct locations and if they both need the same properties this must be explicitly set for both.&lt;br /&gt;
&lt;br /&gt;
In 1.81 the property &amp;quot;link_color&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
'''Note''' that [[User:Switeck|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&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
Settings other than &amp;quot;universal&amp;quot; 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:&lt;br /&gt;
'''* Layer 3 settings'''&lt;br /&gt;
'''* Layer 2 settings''' (default for Javascript changes to data)&lt;br /&gt;
'''* Layer 1 settings''' (default for planetinfo.plist)&lt;br /&gt;
'''* Universal settings'''&lt;br /&gt;
'''* Layer 0 settings''' (value for core game settings)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 &amp;quot;layer&amp;quot; = 2;&lt;br /&gt;
&lt;br /&gt;
==Terraforming Example==&lt;br /&gt;
   &lt;br /&gt;
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%. &lt;br /&gt;
 &lt;br /&gt;
Code:&lt;br /&gt;
 { &lt;br /&gt;
    &amp;quot;0 7&amp;quot; = &lt;br /&gt;
    { &lt;br /&gt;
       &amp;quot;percent_land&amp;quot; = &amp;quot;75&amp;quot;;&lt;br /&gt;
       &amp;quot;land_color&amp;quot; = &amp;quot;0.5 1.0 0.5&amp;quot;;&lt;br /&gt;
       &amp;quot;sea_color&amp;quot; =  &amp;quot;0.3 0.7 1.0&amp;quot;;&lt;br /&gt;
    } &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
 &lt;br /&gt;
Code:&lt;br /&gt;
     &amp;quot;0 8&amp;quot; =  &lt;br /&gt;
    { &lt;br /&gt;
         &amp;quot;inhabitants&amp;quot; = &amp;quot;Blue Frogs&amp;quot;;&lt;br /&gt;
    } &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
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 &lt;br /&gt;
 &lt;br /&gt;
Code:&lt;br /&gt;
     &amp;quot;0 129&amp;quot; = &lt;br /&gt;
    { &lt;br /&gt;
         &amp;quot;sky_blur_cluster_chance&amp;quot; =  &amp;quot;0.9&amp;quot;;&lt;br /&gt;
         &amp;quot;sky_blur_alpha&amp;quot; = &amp;quot;0.1&amp;quot;;&lt;br /&gt;
         &amp;quot;sky_blur_scale&amp;quot; = &amp;quot;32.0&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About the Inhabitants==&lt;br /&gt;
&lt;br /&gt;
===Concealment===&lt;br /&gt;
{{oolite-prop-added|1.83}}&lt;br /&gt;
&lt;br /&gt;
An integer that determines how much information about the system is unknown.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;quot;concealment&amp;quot; = &amp;quot;300&amp;quot;;&lt;br /&gt;
The following values are recognised:&lt;br /&gt;
* 0: default, all information visible&lt;br /&gt;
* 100 or more: F7 screen shows no information, economy/government/TL/star colour not visible on chart&lt;br /&gt;
* 200 or more: system name is not shown&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
===Government===&lt;br /&gt;
&lt;br /&gt;
An integer between 0 and 7 indicating the government type of the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;government&amp;quot; = &amp;quot;7&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
: 0: Anarchy&lt;br /&gt;
: 1: Feudal&lt;br /&gt;
: 2: Multi-Governmental&lt;br /&gt;
: 3: Dictatorship&lt;br /&gt;
: 4: Communist&lt;br /&gt;
: 5: Confederacy&lt;br /&gt;
: 6: Democracy&lt;br /&gt;
: 7: Corporate State&lt;br /&gt;
&lt;br /&gt;
===Economy===&lt;br /&gt;
An integer between 0 and 7 indicating the economy type of the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;economy&amp;quot; = &amp;quot;5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
: 0: Rich Industrial&lt;br /&gt;
: 1: Average Industrial&lt;br /&gt;
: 2: Poor Industrial&lt;br /&gt;
: 3: Mainly Industrial&lt;br /&gt;
: 4: Mainly Agricultural&lt;br /&gt;
: 5: Rich Agricultural&lt;br /&gt;
: 6: Average Agricultural&lt;br /&gt;
: 7: Poor Agricultural&lt;br /&gt;
 &lt;br /&gt;
===Tech Level===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;techlevel&amp;quot; = &amp;quot;13&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Note: [https://bb.oolite.space/viewtopic.php?p=113258#p113258 Episodic minor variations in TL (2010)]&lt;br /&gt;
&lt;br /&gt;
Further Note: The [[Famous Planets]] OXP transmogrifies [[Sector1/Sori]] into the Anarchy &amp;quot;Ascension&amp;quot; with a TL of 16! This is virtually no different to Ceesxe's TL 15.&lt;br /&gt;
&lt;br /&gt;
===Population===&lt;br /&gt;
&lt;br /&gt;
An integer between 0 and 67 indicating the number of inhabitants of a planet in hundreds of millions&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;population&amp;quot; = &amp;quot;23&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
See Wildeblood's note on no upper limit [https://bb.oolite.space/viewtopic.php?p=299408#p299408 here] (2025)&lt;br /&gt;
&lt;br /&gt;
===Productivity===&lt;br /&gt;
&lt;br /&gt;
An integer indicating the productivity of a planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;productivity&amp;quot; = &amp;quot;1000&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Name===&lt;br /&gt;
&lt;br /&gt;
The name of the planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;name&amp;quot; = &amp;quot;The planet's name&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
'''Note''': See the [https://bb.oolite.space/viewtopic.php?t=12131 Pronounceable Planets Project] thread on the forum for some ideas!&lt;br /&gt;
&lt;br /&gt;
===Inhabitant===&lt;br /&gt;
&lt;br /&gt;
The name for one of the inhabitants of the main planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;inhabitant&amp;quot; = &amp;quot;Green Platypus&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Inhabitants===&lt;br /&gt;
&lt;br /&gt;
The name of the inhabitants of the main planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;inhabitants&amp;quot; = &amp;quot;Green Platypi&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
A short description of the planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;description&amp;quot; = &amp;quot;Really, anything you want to say about the place!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
'''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.&lt;br /&gt;
&lt;br /&gt;
===Government Description===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Overrides the default text used to describe the government.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;quot;government_description&amp;quot; = &amp;quot;Dictatorship (Monarchy)&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Economy Description===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Overrides the default text used to describe the economy.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;quot;economy_description&amp;quot; = &amp;quot;Mainly Industrial (Machine Tools)&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Population Description===&lt;br /&gt;
{{oolite-prop-added|1.77}}&lt;br /&gt;
&lt;br /&gt;
Overrides the default text used to describe the population.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;quot;population_description&amp;quot; = &amp;quot;13 Billion&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Random Seed===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
For historical reasons, this is a string of 6 integers between 0 and 255, for example:&lt;br /&gt;
 random_seed = &amp;quot;74 90 72 2 83 183&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==System population==&lt;br /&gt;
These properties are only used in Oolite 1.79 or later.&lt;br /&gt;
&lt;br /&gt;
===Populator===&lt;br /&gt;
&lt;br /&gt;
The name of the worldscript function which will be used to [[Oolite_System_Populator|populate the system]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;populator&amp;quot; = &amp;quot;systemWillPopulate&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Repopulator===&lt;br /&gt;
&lt;br /&gt;
The name of the worldscript function which will be used to [[Oolite_System_Populator|repopulate the system]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;repopulator&amp;quot; = &amp;quot;systemWillRepopulate&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Properties of the Planet==&lt;br /&gt;
&lt;br /&gt;
'''Most of these properties are ignored if a planet texture is set.'''&lt;br /&gt;
&lt;br /&gt;
Note that the available planet texture generator properties changed in places between Oolite 1.77 and Oolite 1.80&lt;br /&gt;
&lt;br /&gt;
And note the 2016 introduction of the shader uniform [[Shaders in Oolite: uniforms|fogUniform]] (a Javascript method for adding fog to planet atmospheres)&lt;br /&gt;
&lt;br /&gt;
===Air Color===&lt;br /&gt;
A colour specifier determining the color of the planet's sky, as well as the atmosphere scatter color.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;air_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Air Color Mix Ratio===&lt;br /&gt;
{{oolite-prop-added|1.89}}&lt;br /&gt;
&lt;br /&gt;
The amount of air color that be mixed in the overall atmosphere color. A number from 0.0 to 1.0 (default 0.5).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;air_color_mix_ratio&amp;quot; = &amp;quot;0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Atmosphere Rotational Velocity===&lt;br /&gt;
&lt;br /&gt;
Sets how fast the atmosphere is rotating. (A random value between 0.0 to 0.03 is the default).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;atmosphere_rotational_velocity&amp;quot; = &amp;quot;0.1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Cloud Alpha===&lt;br /&gt;
{{oolite-prop-added|1.77}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cloud_alpha&amp;quot; = &amp;quot;0.2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Has Atmosphere===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_atmosphere&amp;quot; = 0;&lt;br /&gt;
&lt;br /&gt;
This has no effect on secondary planets - their atmosphere is determined by whether addition uses &amp;lt;code&amp;gt;addPlanet&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;addMoon&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:AtmDensityExample.png|thumb|320px|right|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.]]&lt;br /&gt;
=== Air Density ===&lt;br /&gt;
{{oolite-prop-added|1.91}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;air_density&amp;quot; = &amp;quot;0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Illumination Color===&lt;br /&gt;
{{oolite-prop-added|1.91}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;illumination_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Land Color===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;land_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Percent Cloud===&lt;br /&gt;
The percentage of the planet's atmosphere occupied by clouds.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;percent_cloud&amp;quot; = &amp;quot;0..100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Note that with a low cloud_alpha setting not all of the clouds defined here may actually be visible&lt;br /&gt;
&lt;br /&gt;
===Percent Ice===&lt;br /&gt;
The percentage of the planet occupied by the polar ice caps. Oolite 1.81 or later.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;percent_ice&amp;quot; = &amp;quot;0..100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Percent Land===&lt;br /&gt;
The percentage of the planet occupied by land.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;percent_land&amp;quot; = &amp;quot;0..100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Planet Distance===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
The distance from the centre of the planet to the witchpoint. Only used for the system main planet - secondary planets are positioned separately.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;planet_distance&amp;quot; = &amp;quot;410000&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
The main planet is always positioned on the z-axis.&lt;br /&gt;
&lt;br /&gt;
===Planet Distance Multiplier===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Multiplies the distance from the centre of the main planet to the witchpoint.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;planet_distance_multiplier&amp;quot; = &amp;quot;1.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Planet Name===&lt;br /&gt;
{{oolite-prop-added|1.79}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
  &amp;quot;planet_name&amp;quot; = &amp;quot;Earth&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Polar Land Color===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Sets the land colour in polar regions.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;land_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polar Sea Color===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Sets the sea colour in polar regions.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sea_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Radius===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;radius&amp;quot; = &amp;quot;5500&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Rotational Velocity===&lt;br /&gt;
A number describing the rotational velocity of the planet in radians per second. Overrides rotation_speed if both are set.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;rotational_velocity&amp;quot; = 0.0015;&lt;br /&gt;
&lt;br /&gt;
===Rotation Speed===&lt;br /&gt;
A number describing the rotational velocity of the planet in radians per second. Unlike rotational_velocity, this is affected by rotation_speed_factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;rotation_speed&amp;quot; = 0.0015;&lt;br /&gt;
&lt;br /&gt;
===Rotation Speed Factor===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  &amp;quot;rotation_speed_factor&amp;quot; = 1.0;&lt;br /&gt;
&lt;br /&gt;
(Intended more for the universal section as a &amp;quot;personal taste&amp;quot; option than for individual planets)&lt;br /&gt;
&lt;br /&gt;
===Sea Color===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sea_color&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Terminator Threshold Vector===&lt;br /&gt;
{{oolite-prop-added|1.89}}&lt;br /&gt;
&lt;br /&gt;
This property gives control over the color of the planet's terminator. The way the property works is not entirely straightforward, so see [https://bb.oolite.space/viewtopic.php?p=271058#p271058 this post on BB] for more information.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;terminator_threshold_vector&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
By default the terminator vector is &amp;quot;0.105 0.18 0.28&amp;quot; - which results in a reddish orange colour.&lt;br /&gt;
&lt;br /&gt;
===Texture===&lt;br /&gt;
The replacement texture to be used by a system's main planet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;texture&amp;quot; =  &amp;quot;newPlanetTexture.png&amp;quot;;&lt;br /&gt;
:N.B.&lt;br /&gt;
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''.&lt;br /&gt;
&lt;br /&gt;
===Texture HSB Color===&lt;br /&gt;
This changes the overall hue of the replacement texture.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;texture_hsb_color&amp;quot; =  &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Texture NormSpec===&lt;br /&gt;
{{oolite-prop-added|1.89}}&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 &amp;quot;texture_normspec&amp;quot; = &amp;quot;planetNormalAndSpecularMap.png&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Properties of the Sky==&lt;br /&gt;
&lt;br /&gt;
===Ambient Level===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;ambient_level&amp;quot; = &amp;quot;0.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Nebula Count Multiplier===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;nebula_count_multiplier&amp;quot; = &amp;quot;1.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky Blur Alpha===&lt;br /&gt;
Default 0.1&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_blur_alpha&amp;quot; = &amp;quot;0.0 .. 1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky Blur Cluster Chance===&lt;br /&gt;
This is used for creating nebulae (typically 0.80)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_blur_cluster_chance&amp;quot; = &amp;quot;0.85&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky Blur Scale===&lt;br /&gt;
Default 10. Larger numbers generate bigger nebula, but slow down the game considerable on slower machines.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_blur_scale&amp;quot; = &amp;quot;0.0 .. 128.0 or more&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky N Blurs===&lt;br /&gt;
This is used for defining the number of nebulas (typical is 80, maximum is 1280). This key is multiplied by a &amp;quot;nebula_count_multiplier&amp;quot; definition in Oolite 1.81 or later.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_n_blurs&amp;quot; = &amp;quot;800&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky N Stars===&lt;br /&gt;
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 &amp;quot;star_count_multiplier&amp;quot; definition in Oolite 1.81 or later. In reduced detail mode, this number will be capped to 2400.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_n_stars&amp;quot; = &amp;quot;1200&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sky and Nebula RGB Colors===&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br&amp;gt;&lt;br /&gt;
(Default values are &amp;quot;0.75 0.8 1.0 1.0 0.85 0.6&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sky_rgb_colors&amp;quot; = &amp;quot;0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Alternatively, two [[Materials in Oolite#Colour specifiers|colour specifiers]] may be used:&lt;br /&gt;
 &amp;quot;sky_color_1&amp;quot; = &amp;quot;redColor&amp;quot;;&lt;br /&gt;
 &amp;quot;sky_color_2&amp;quot; =&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;hue&amp;quot; = &amp;quot;60&amp;quot;;&lt;br /&gt;
     &amp;quot;brightness&amp;quot; = &amp;quot;0.8&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;nebula_color_1&amp;quot; = &amp;quot;greenColor&amp;quot;;&lt;br /&gt;
 &amp;quot;nebula_color_2&amp;quot; = &amp;quot;blueColor&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Star Count Multiplier===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;star_count_multiplier&amp;quot; = &amp;quot;0.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties of the Station==&lt;br /&gt;
&lt;br /&gt;
===Market Script===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
A Javascript file used to load a [[Oolite Market Scripts|market script]] for global system price and quantity modifications.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;market_script&amp;quot; = &amp;quot;myoxp_newsystemmarket.js&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
'''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)&lt;br /&gt;
&lt;br /&gt;
===Station===&lt;br /&gt;
The type of station orbiting the main planet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;station&amp;quot; = &amp;quot;coriolis..dodec..special&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Station Roll===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;station_roll&amp;quot; = &amp;quot;0.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Station Vector===&lt;br /&gt;
The direction of the main station from the main planet&lt;br /&gt;
 &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;station_vector&amp;quot; = &amp;quot;-0.717 -0.668 0.201&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Stations Require Docking Clearance===&lt;br /&gt;
&lt;br /&gt;
Specifies if a player has to explicit ask docking permission. See also [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|Oolite Docking Clearance]]&lt;br /&gt;
&lt;br /&gt;
===Market (defunct)===&lt;br /&gt;
The market to be used in this system as the default market. It points to a key in commodities.plist&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;market&amp;quot; = &amp;quot;rockhermit&amp;quot;;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In 1.81 and later, this is replaced by market_script&lt;br /&gt;
&lt;br /&gt;
==Properties of the Sun==&lt;br /&gt;
;N.B.&lt;br /&gt;
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'').&lt;br /&gt;
&lt;br /&gt;
===Corona Flare===&lt;br /&gt;
&lt;br /&gt;
Sets the overall size of the corona in proportion to its sun. (See note above.)&lt;br /&gt;
&lt;br /&gt;
A number from 0.0 (invisibly small) to 1.0 (huge)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;corona_flare&amp;quot; = &amp;quot;0.075&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Corona Hues===&lt;br /&gt;
&lt;br /&gt;
Specifies whether the corona should have visible bands of colours within the corona. (See note above.)&lt;br /&gt;
&lt;br /&gt;
A number from 0.0 (monochromatic) to 1.0 (vivid alternating colours).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;corona_hues&amp;quot; = &amp;quot;0.6&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Corona Shimmer===&lt;br /&gt;
&lt;br /&gt;
Specifies how quickly the corona colours change. (See note above.)&lt;br /&gt;
&lt;br /&gt;
A number from 0.0 (very slow) to 1.0 (very fast).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;corona_shimmer&amp;quot; = &amp;quot;0.4&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sun Color===&lt;br /&gt;
&lt;br /&gt;
Sets the colour of a system's sun.&lt;br /&gt;
&lt;br /&gt;
Can be any [[Materials in Oolite#Colour specifiers|colour specifier]] or [[Materials in Oolite#Named colours|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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_color&amp;quot; = &amp;quot;blueColor&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sun Distance===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Sets the distance between the sun and the main planet in metres.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_distance&amp;quot; = 924122;&lt;br /&gt;
&lt;br /&gt;
Ignored if sun_distance_modifier is set.&lt;br /&gt;
&lt;br /&gt;
===Sun Distance Multiplier===&lt;br /&gt;
{{oolite-prop-added|1.81}}&lt;br /&gt;
&lt;br /&gt;
Multiplies the distance between the sun and the main planet by this factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_distance_multiplier&amp;quot; = 2;&lt;br /&gt;
&lt;br /&gt;
Ignored if sun_distance_modifier is set.&lt;br /&gt;
&lt;br /&gt;
===Sun Distance Modifier===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_distance_modifier&amp;quot; = &amp;quot;15.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
In Oolite 1.81 or later, sun_distance_multiplier is more useful.&lt;br /&gt;
&lt;br /&gt;
=== Sun Gone Nova ===&lt;br /&gt;
&lt;br /&gt;
Sets a nova sun in the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_gone_nova&amp;quot; = &amp;quot;YES&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sun Name===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_name&amp;quot; = &amp;quot;Alpha Centauri&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sun Radius===&lt;br /&gt;
&lt;br /&gt;
Sets the radius of a system's sun. A number between 1000 and 1000000.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_radius&amp;quot; = &amp;quot;100000&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Sun Vector===&lt;br /&gt;
The direction of the sun from the main planet&lt;br /&gt;
 &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;sun_vector&amp;quot; = &amp;quot;-0.717 -0.668 0.201&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Additional Planets==&lt;br /&gt;
&lt;br /&gt;
Finally you can also define your own custom planets and moons:&lt;br /&gt;
 &amp;quot;LavesPurpleMoon&amp;quot; =&lt;br /&gt;
 {&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--They also can be added through script_actions, but it's deprecated and even commented out on this page--&amp;gt;&lt;br /&gt;
To add them to the system, use JS methods &amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_System#addPlanet|system.addPlanet]]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_System#addPlanet|system.addMoon]]&amp;lt;/code&amp;gt;. For the example above, the &amp;lt;code&amp;gt;planetInfoKey&amp;lt;/code&amp;gt; will be &amp;lt;code&amp;gt;&amp;quot;LavesPurpleMoon&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
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.&lt;br /&gt;
 &amp;quot;position&amp;quot; = &amp;quot;pwm 0 -50000 0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
You can omit the coordinate system parameter, then the absolute coordinate system will be used:&lt;br /&gt;
 &amp;quot;position&amp;quot; = &amp;quot;0 -50000 0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Oolite coordinate systems]] for more info about it.&lt;br /&gt;
&lt;br /&gt;
===Orientation===&lt;br /&gt;
Orientation of the planet in space (seems not to be working correctly).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;orientation&amp;quot; = &amp;quot;0.0 1.0 0.0 0.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===Other keys===&lt;br /&gt;
&lt;br /&gt;
You can use other keys from the [[#Properties_of_the_Planet| Properties of the Planet]] section for your planets and moons.&lt;br /&gt;
&lt;br /&gt;
Here are some of the keys you may want to use:&lt;br /&gt;
* &amp;quot;radius&amp;quot;: 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.&lt;br /&gt;
* &amp;quot;rotational_velocity&amp;quot;: Rotation of the planet in rotations per second.&lt;br /&gt;
* &amp;quot;texture&amp;quot;: The name of the texture file that is used to wrap around the surface.&lt;br /&gt;
* &amp;quot;seed&amp;quot;: 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.&lt;br /&gt;
&lt;br /&gt;
[[File:Ico-Glow.png|thumb|right|300px|Click for more detail (eg the Ico station)]]&lt;br /&gt;
== Experimentation ==&lt;br /&gt;
The effect to the right was created by [[User:Cody|Cody]]. &amp;quot;OXPs were a Griff Icosahedron station, a [[Deep Horizon Nav Buoy]], a core planet (I think - if not, [[Povray Planets]]), a mix of [[KeeperSky]] &amp;amp; [[Zygo Cinematic Sky &amp;amp; Nebulas]], plus '''star_count_multiplier''' = 56; '''sun_distance_multiplier''' = 5; and '''ambient_level''' = 0.15;&lt;br /&gt;
&lt;br /&gt;
For a similar &amp;quot;lights down&amp;quot; look, you'd have to tweak '''oolite-default-shader.fragment''' thusly:&lt;br /&gt;
:#define MULTIPLIER_LIGHTSRCRADIANCE	2.0&lt;br /&gt;
:#define MULITPLIER_EXPOSURE		1.0&lt;br /&gt;
&lt;br /&gt;
*For another example see cbr's modifed &amp;quot;Tionisla is Mars&amp;quot; texture [https://bb.oolite.space/viewtopic.php?p=306156#p306156 here] (2026)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Random number generator]] - original method for creating planet descriptions (before Oolite v.1.80 back in 2014).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=3860 seed = &amp;quot;1 2 3 4 5 6&amp;quot;;]: Psuedo-random number generation &amp;amp; planet descriptions (2007)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=3808 position = &amp;quot;x y z&amp;quot; in planetinfo.plist] (2007)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=17678 How to regenerate planetinfo?] (cim, 2015) Replacing the current 7Mb .plist with the original goatsoup recipe.&lt;br /&gt;
&lt;br /&gt;
*Wildeblood's [[World Builder]] allows you to experiment with these settings in-game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assorted Tweaks ===&lt;br /&gt;
*[[User:Submersible|Submersible]]'s collection of [https://www.youtube.com/user/submersibletoaster YouTube videos] of planet textures (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=5044 Question: How to add custom planet descriptions] (2008)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=217053#p217053 Tweaking your skies] (Tricky, 2014)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=20959 Empty system] Removing the stations (and presumably inhabitants) from a system (2021)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=17191 Programming for Interstellar Space] (2015)&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Fully_Annotated_HUD_Configuration_(hud.plist)_File&amp;diff=90135</id>
		<title>Fully Annotated HUD Configuration (hud.plist) File</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Fully_Annotated_HUD_Configuration_(hud.plist)_File&amp;diff=90135"/>
		<updated>2026-08-09T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Made link at bottom human-readable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Origin-story.png|right|thumb|300px|x-origin &amp;amp; y-origin!]]&lt;br /&gt;
{&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // IMPORTANT: This is a PROPERTY LIST (.plist) file in OpenStep format.&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // Please note that this file uses OpenStep format (not JSON, XML, or other formats).&lt;br /&gt;
    // When editing, be careful to preserve all punctuation, especially:&lt;br /&gt;
    // - Commas at the end of dictionary entries (except the last one)&lt;br /&gt;
    // - Semicolons after key-value pairs&lt;br /&gt;
    // - Proper use of quotes, parentheses, and braces&lt;br /&gt;
    // Incorrect punctuation will cause the file to fail to load in Oolite.&lt;br /&gt;
    //&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // GLOBAL HUD SETTINGS&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // These settings control the overall behavior and appearance of the entire HUD. (The parameters that control visibility of the HUD elements are not included)&lt;br /&gt;
    // Changes here affect all HUD elements globally.&lt;br /&gt;
    &lt;br /&gt;
    // --- CROSSHAIR SETTINGS ---&lt;br /&gt;
    // Controls the appearance of the targeting crosshair&lt;br /&gt;
    crosshair_scale      = 32.0;    // Size multiplier for the crosshair. Higher values = larger crosshair&lt;br /&gt;
    crosshair_width      = 1.5;      // Line thickness of the crosshair in pixels&lt;br /&gt;
    crosshair_color      = &amp;quot;greenColor&amp;quot;;  // Color of the crosshair. Can be named colors (&amp;quot;redColor&amp;quot;, &amp;quot;blueColor&amp;quot;) &lt;br /&gt;
                                     // or RGBA tuples like &amp;quot;(0.0, 1.0, 0.0, 1.0)&amp;quot; for green&lt;br /&gt;
    &lt;br /&gt;
    // --- SCANNER SETTINGS ---&lt;br /&gt;
    // Controls the behavior and appearance of the radar scanner&lt;br /&gt;
    scanner_minimalistic = no;       // If YES, uses a simplified scanner display with less detail&lt;br /&gt;
    scanner_non_linear   = no;       // If YES, scanner zoom is non-linear (more sensitive near center)&lt;br /&gt;
    scanner_ultra_zoom   = no;       // If YES, enables ultra zoom mode for the scanner&lt;br /&gt;
    &lt;br /&gt;
    // --- GUI AND DISPLAY SETTINGS ---&lt;br /&gt;
    // General interface settings&lt;br /&gt;
    allow_big_gui        = no;       // If YES, allows larger GUI elements (rarely used)&lt;br /&gt;
    overall_alpha        = 0.75;     // Global transparency for all HUD elements (0.0 = invisible, 1.0 = opaque)&lt;br /&gt;
    &lt;br /&gt;
    // --- SPECIAL INDICATOR SETTINGS ---&lt;br /&gt;
    // Controls specific HUD behaviors&lt;br /&gt;
    cloak_indicator_on_status_light = yes;  // If YES, shows cloak status on the status light instead of separate indicator&lt;br /&gt;
    reticle_target_sensitive = no;          // If YES, reticle changes color when hovering over targets&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // POSITION SYSTEM DOCUMENTATION&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // POSITION PARAMETERS:&lt;br /&gt;
    // All positioned elements use the following coordinate system:&lt;br /&gt;
    //&lt;br /&gt;
    // x: The x-position of the dial on screen.&lt;br /&gt;
    // y: The y-position of the dial on screen.&lt;br /&gt;
    //&lt;br /&gt;
    // x_origin:&lt;br /&gt;
    // - x_origin = 1.0: x co-ordinate is relative to the RIGHT hand side of the screen&lt;br /&gt;
    // - x_origin = 0 or unspecified: x is relative to the MIDDLE of the screen (default)&lt;br /&gt;
    // - x_origin = -1.0: x co-ordinate is relative to the LEFT hand side of the screen&lt;br /&gt;
    //&lt;br /&gt;
    // y_origin:&lt;br /&gt;
    // - y_origin = 1.0: y co-ordinate is relative to the TOP of the screen&lt;br /&gt;
    // - y_origin = 0 or unspecified: y is relative to the MIDDLE of the screen (default)&lt;br /&gt;
    // - y_origin = -1.0: y is relative to the BOTTOM of the screen&lt;br /&gt;
    //&lt;br /&gt;
    // BEST PRACTICE: It is preferable to define HUD elements relative to the screen &lt;br /&gt;
    // borders (x_origin = ±1.0, y_origin = ±1.0) rather than the center, so that HUD &lt;br /&gt;
    // elements fit better on all screen aspect ratios and resolutions.&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // SPECIAL PARAMETERS DOCUMENTATION&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // SPECIAL PARAMETERS:&lt;br /&gt;
    // Some parameters only work with specific dials and have unique behaviors:&lt;br /&gt;
    //&lt;br /&gt;
    // align:&lt;br /&gt;
    // - Only works with &amp;quot;drawASCTarget:&amp;quot; selector&lt;br /&gt;
    // - When set to 1, right-aligns the text to the X coordinate instead of standard left alignment&lt;br /&gt;
    // - Other values: 0 = left alignment (default), &amp;lt;s&amp;gt; 2 = center alignment &amp;lt;/s&amp;gt;&lt;br /&gt;
    //&lt;br /&gt;
    // labelled:&lt;br /&gt;
    // - Only works with &amp;quot;drawEnergyGauge:&amp;quot; selector&lt;br /&gt;
    // - When set to yes, adds bank numbers to the energy banks&lt;br /&gt;
    // - Has no effect on other dials&lt;br /&gt;
    //&lt;br /&gt;
    // n_bars:&lt;br /&gt;
    // - For &amp;quot;drawEnergyGauge:&amp;quot;: determines how many energy banks are drawn (default is 1)&lt;br /&gt;
    // - For &amp;quot;drawPrimedEquipment:&amp;quot;: if set to &amp;gt;1 (odd numbers work better than even),&lt;br /&gt;
    //   also shows some previous and next primable equipment in the cycle&lt;br /&gt;
    // - Ignored for all other dials&lt;br /&gt;
    //&lt;br /&gt;
    // spacing:&lt;br /&gt;
    // - Only works with &amp;quot;drawMissileDisplay:&amp;quot; selector&lt;br /&gt;
    // - Determines spacing between the missile icons in the display&lt;br /&gt;
    // - Does nothing for other dials&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // DIALS SECTION&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // The dials array defines all individual HUD elements (gauges, indicators, displays).&lt;br /&gt;
    // Elements are drawn in the order they appear here - later elements appear on top.&lt;br /&gt;
    // Each dial is a dictionary with properties defining its appearance and behavior.&lt;br /&gt;
    //&lt;br /&gt;
    // COLOR PARAMETER USAGE:&lt;br /&gt;
    // Many dials support color parameters that change appearance based on values:&lt;br /&gt;
    // - color_low: Color for low values/ranges&lt;br /&gt;
    // - color_medium: Color for medium values/ranges&lt;br /&gt;
    // - color_high: Color for high values/ranges&lt;br /&gt;
    // - color_critical: Color for critical/dangerous values (temperature, altitude)&lt;br /&gt;
    // - color_surround: Color for the border/frame around the dial&lt;br /&gt;
    // - color: Base color for dials that don't use range-based coloring&lt;br /&gt;
    //&lt;br /&gt;
    // All color parameters accept standard Oolite color formats:&lt;br /&gt;
    // - Named colors: &amp;quot;greenColor&amp;quot;, &amp;quot;redColor&amp;quot;, &amp;quot;yellowColor&amp;quot;, etc.&lt;br /&gt;
    // - RGB tuples: (1.0, 0.0, 0.0) for red&lt;br /&gt;
    // - RGBA tuples: (1.0, 0.0, 0.0, 0.5) for semi-transparent red&lt;br /&gt;
    // - Hex strings: &amp;quot;#FF0000&amp;quot; for red (less common in plist files)&lt;br /&gt;
    &lt;br /&gt;
    dials       = // these are drawn, in order, after the legends&lt;br /&gt;
    (&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // TARGETING RETICLE&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // The crosshair that appears when targeting missiles or objects&lt;br /&gt;
        {   // Targeting reticle&lt;br /&gt;
            equipment_required  = &amp;quot;EQ_SCANNER_SHOW_MISSILE_TARGET&amp;quot;;  // Only show if this equipment is installed&lt;br /&gt;
            selector            = &amp;quot;drawTargetReticle:&amp;quot;;              // Internal method that draws this element&lt;br /&gt;
            // reticle_scale     = 0.015625 /* 1/64 is default */    // Uncomment to override default scale&lt;br /&gt;
            target_rgba         = &amp;quot;greenColor&amp;quot;;                     // Color for normal targeting&lt;br /&gt;
            target_sensitive_rgba = &amp;quot;redColor&amp;quot;;                      // Color when crosshairs are over target&lt;br /&gt;
            wormhole_rgba       = &amp;quot;cyanColor&amp;quot;;                      // Color when targeting wormholes&lt;br /&gt;
            // Note: Moves about on screen - no position parameters needed&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // WAYPOINT DISPLAY&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows navigation waypoints when advanced compass is equipped&lt;br /&gt;
        {   // Waypoint display&lt;br /&gt;
            equipment_required  = &amp;quot;EQ_ADVANCED_COMPASS&amp;quot;;             // Only show with advanced compass&lt;br /&gt;
            selector            = &amp;quot;drawWaypoints:&amp;quot;;                  // Internal drawing method&lt;br /&gt;
            // Note: Moves about on screen - no position parameters needed&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // SCANNER (RADAR)&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // The main radar display showing contacts around the ship&lt;br /&gt;
        {   // scanner&lt;br /&gt;
            alpha       = 1.0;           // Transparency (1.0 = fully opaque)&lt;br /&gt;
            selector    = &amp;quot;drawScanner:&amp;quot;; // Internal method to draw the scanner&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 0;             // Horizontal position: 0 = center of screen&lt;br /&gt;
            y           = 68;            // Vertical position: 68 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 64.0;          // Height of scanner in pixels&lt;br /&gt;
            width       = 288.0;         // Width of scanner in pixels&lt;br /&gt;
            rgb_color   = (1.0, 0.0, 0.0); // RGB color: (red, green, blue) = bright red&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // SCANNER ZOOM INDICATOR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows the current zoom level of the scanner&lt;br /&gt;
        {   // scanner zoom indicator&lt;br /&gt;
            alpha       = 1.0;           // Fully opaque&lt;br /&gt;
            selector    = &amp;quot;drawScannerZoomIndicator:&amp;quot;; // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 100;           // 100 pixels right of center&lt;br /&gt;
            y           = 36;            // 36 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // STICK SENSITIVITY INDICATOR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current joystick/control sensitivity setting&lt;br /&gt;
        {   // stick sensitivity indicator&lt;br /&gt;
            alpha       = 1.0;           // Fully opaque&lt;br /&gt;
            selector    = &amp;quot;drawStickSensitivityIndicator:&amp;quot;; // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 150;           // 150 pixels right of center&lt;br /&gt;
            y           = 75;            // 75 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 12;            // 12 pixels tall&lt;br /&gt;
            width       = 12;            // 12 pixels wide&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // COMPASS&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows direction to target/station/waypoint&lt;br /&gt;
        {   // compass&lt;br /&gt;
            alpha       = 1.0;           // Fully opaque&lt;br /&gt;
            selector    = &amp;quot;drawCompass:&amp;quot;; // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 132;           // 132 pixels right of center&lt;br /&gt;
            y           = 32;            // 32 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            rgb_color   = (0.0, 0.0, 1.0); // RGB color: blue&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // STATION AEGIS INDICATOR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows when within station protection range&lt;br /&gt;
        {   // station aegis&lt;br /&gt;
            alpha       = 1.0;           // Fully opaque&lt;br /&gt;
            selector    = &amp;quot;drawAegis:&amp;quot;;   // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -132;          // 132 pixels left of center&lt;br /&gt;
            y           = 32;            // 32 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // FUEL SCOOP STATUS&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows when fuel scoop is active&lt;br /&gt;
        {   // fuel scoop status&lt;br /&gt;
            alpha       = 0.75;          // Semi-transparent (75% opaque)&lt;br /&gt;
            selector    = &amp;quot;drawScoopStatus:&amp;quot;; // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -132;          // 132 pixels left of center&lt;br /&gt;
            y           = 92;            // 92 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // SPEED BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current ship speed&lt;br /&gt;
        {   // speed bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw a border around the bar (2 pixels larger than bar)&lt;br /&gt;
            height          = 8;         // Bar height in pixels&lt;br /&gt;
            selector        = &amp;quot;drawSpeedBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width in pixels&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 200;       // 200 pixels right of center&lt;br /&gt;
            y               = 95;        // 95 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;greenColor&amp;quot;;  // Color for low speed range&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;; // Color for medium speed range&lt;br /&gt;
            color_high      = &amp;quot;redColor&amp;quot;;    // Color for high speed range&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // ROLL BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current roll rate&lt;br /&gt;
        {   // roll bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 6;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawRollBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 200;       // 200 pixels right of center&lt;br /&gt;
            y               = 80;        // 80 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color           = &amp;quot;greenColor&amp;quot;;  // Base color for the roll bar&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // PITCH BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current pitch rate&lt;br /&gt;
        {   // pitch bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 6;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawPitchBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 200;       // 200 pixels right of center&lt;br /&gt;
            y               = 70;        // 70 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color           = &amp;quot;greenColor&amp;quot;;  // Base color for the pitch bar&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // YAW BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current yaw rate&lt;br /&gt;
        {   // yaw bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawYawBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 200;       // 200 pixels right of center&lt;br /&gt;
            y               = -130;      // 130 pixels down from center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = 0;         // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color           = &amp;quot;greenColor&amp;quot;;  // Base color for the yaw bar&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // ENERGY GAUGE&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows main energy bank levels&lt;br /&gt;
        {   // energy gauge&lt;br /&gt;
            draw_surround   = yes;       // Draw border around gauge&lt;br /&gt;
            height          = 48;        // Gauge height&lt;br /&gt;
            selector        = &amp;quot;drawEnergyGauge:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Gauge width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 200;       // 200 pixels right of center&lt;br /&gt;
            y               = 35;        // 35 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // SPECIAL PARAMETERS:&lt;br /&gt;
            labelled        = yes;       // Add bank numbers to the energy banks (only works with this selector)&lt;br /&gt;
            n_bars          = 3;         // Number of energy banks to display (only works with this selector)&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;redColor&amp;quot;;    // Color for low energy level&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;; // Color for medium energy level&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the gauge&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // FORWARD SHIELD BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows forward shield strength&lt;br /&gt;
        {   // forward shield bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawForwardShieldBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 94;        // 94 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;redColor&amp;quot;;    // Color for low shield strength&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;; // Color for medium shield strength&lt;br /&gt;
            color_high      = &amp;quot;greenColor&amp;quot;;  // Color for high shield strength&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // AFT SHIELD BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows aft shield strength&lt;br /&gt;
        {   // aft shield bar, can draw a surround 2 units out from the dial size specified&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawAftShieldBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 78;        // 78 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;redColor&amp;quot;;    // Color for low shield strength&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;; // Color for medium shield strength&lt;br /&gt;
            color_high      = &amp;quot;greenColor&amp;quot;;  // Color for high shield strength&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // SURROUND (DECORATIVE)&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Draws a decorative border (used here for visual grouping)&lt;br /&gt;
        {   // just draws a surround 2 units around the selected size&lt;br /&gt;
            height          = 40;        // Height of surround area&lt;br /&gt;
            color           = &amp;quot;yellowColor&amp;quot;; // Color of the border&lt;br /&gt;
            selector        = &amp;quot;drawSurround:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Width of surround area&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 46;        // 46 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // FUEL BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current fuel level&lt;br /&gt;
        {   // fuel bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawFuelBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 61;        // 61 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            // Special case: 'medium' is used for the bar itself, while 'high' and 'low' &lt;br /&gt;
            // are used for the distance marker for the current destination system&lt;br /&gt;
            color_low       = &amp;quot;redColor&amp;quot;;    // Color for distance marker when fuel is insufficient&lt;br /&gt;
            color_medium    = &amp;quot;greenColor&amp;quot;;  // Color for the fuel bar itself&lt;br /&gt;
            color_high      = &amp;quot;yellowColor&amp;quot;; // Color for distance marker when fuel is sufficient&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;  // Color for the border around the bar (if draw_surround is enabled)&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // WITCHSPACE DESTINATION LABEL&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows the destination system during hyperspace&lt;br /&gt;
        {   // witchspace destination label&lt;br /&gt;
            selector        = &amp;quot;drawWitchspaceDestination:&amp;quot;; // Drawing method&lt;br /&gt;
            height          = 10;        // Character height&lt;br /&gt;
            width           = 10;        // Character width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            y               = 55;        // 55 pixels up from bottom&lt;br /&gt;
            x               = -240;      // 240 pixels left of center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            color           = (0.25,0.25,1.0,1.0); // RGBA color: blue with full opacity&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // CABIN TEMPERATURE BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows internal cabin temperature&lt;br /&gt;
        {   // cabin temperature bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawCabinTempBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 51;        // 51 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;greenColor&amp;quot;;   // Color for normal temperature range&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;;  // Color for elevated temperature range&lt;br /&gt;
            color_high      = &amp;quot;orangeColor&amp;quot;;  // Color for high temperature range&lt;br /&gt;
            color_critical  = &amp;quot;redColor&amp;quot;;     // Color for dangerous critical temperature&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;   // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // WEAPON TEMPERATURE BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows weapon system temperature&lt;br /&gt;
        {   // weapon temperature bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawWeaponTempBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 41;        // 41 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // Note: Weapon temperature bar doesn't support the standard color parameters&lt;br /&gt;
            // It uses the default temperature gradient coloring&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // ALTITUDE BAR&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows altitude when near planets&lt;br /&gt;
        {   // altitude bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawAltitudeBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -200;      // 200 pixels left of center&lt;br /&gt;
            y               = 31;        // 31 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;greenColor&amp;quot;;   // Color for safe altitude range&lt;br /&gt;
            color_medium    = &amp;quot;yellowColor&amp;quot;;  // Color for caution altitude range&lt;br /&gt;
            color_high      = &amp;quot;orangeColor&amp;quot;;  // Color for warning altitude range&lt;br /&gt;
            color_critical  = &amp;quot;redColor&amp;quot;;     // Color for critical altitude (danger of crashing)&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;   // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // MISSILE DISPLAY&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows status of mounted missiles&lt;br /&gt;
        {   // missile display, x and y give the location, the x-spacing is given by spacing, the size defines the icon size&lt;br /&gt;
            height          = 12;        // Icon height&lt;br /&gt;
            selector        = &amp;quot;drawMissileDisplay:&amp;quot;; // Drawing method&lt;br /&gt;
            spacing         = 16;        // Horizontal spacing between missile icons&lt;br /&gt;
            width           = 12;        // Icon width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -228;      // 228 pixels left of center&lt;br /&gt;
            y               = 16;        // 16 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // STATUS INDICATOR LIGHT&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows general ship status (alert/warning/caution)&lt;br /&gt;
        {   // status indicator light, x and y give the location, the size defines the icon size&lt;br /&gt;
            height          = 8;         // Light height&lt;br /&gt;
            selector        = &amp;quot;drawStatusLight:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 8;         // Light width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -108;      // 108 pixels left of center&lt;br /&gt;
            y               = 32;        // 32 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // SHIP'S CLOCK&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows current game time&lt;br /&gt;
        {   // ship's clock, x and y give the location, the size defines the character size&lt;br /&gt;
            height          = 12;        // Character height&lt;br /&gt;
            selector        = &amp;quot;drawClock:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 12;        // Character width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -41;       // 41 pixels left of center&lt;br /&gt;
            y               = 18;        // 18 pixels up from bottom&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // PRIMED EQUIPMENT DISPLAY&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows currently activated/primed equipment&lt;br /&gt;
        {   // primed equipment, x and y give the location, the size defines the character size&lt;br /&gt;
            selector        = &amp;quot;drawPrimedEquipment:&amp;quot;; // Drawing method&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            y_origin        = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            x               = 156;       // 156 pixels right of center&lt;br /&gt;
            y               = -2;        // 2 pixels down from center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            width           = 10;        // Character width&lt;br /&gt;
            height          = 10;        // Character height&lt;br /&gt;
            // SPECIAL PARAMETERS:&lt;br /&gt;
            n_bars          = 3;         // Shows current and adjacent primable equipment (odd numbers work better)&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // COMPASS BEACON/WAYPOINT ID&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows the ID of targeted beacon or waypoint&lt;br /&gt;
        {   // compass beacon/waypoint ID, x and y give the location, the size defines the character size&lt;br /&gt;
            equipment_required  = &amp;quot;EQ_ADVANCED_COMPASS&amp;quot;; // Only with advanced compass&lt;br /&gt;
            selector            = &amp;quot;drawASCTarget:&amp;quot;; // Drawing method&lt;br /&gt;
            height              = 12;        // Character height&lt;br /&gt;
            width               = 12;        // Character width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x                   = 144;       // 144 pixels right of center&lt;br /&gt;
            y                   = 4;         // 4 pixels up from bottom&lt;br /&gt;
            x_origin            = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin            = -1;        // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            // SPECIAL PARAMETERS:&lt;br /&gt;
            align               = 1;         // Right-align text to X coordinate (only works with this selector)&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // WEAPONS SYSTEMS OFFLINE TEXT&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows warning when weapons are offline&lt;br /&gt;
        {   // weapons systems offline text, x and y give the location, the size defines the character size&lt;br /&gt;
            height          = 10;        // Character height&lt;br /&gt;
            selector        = &amp;quot;drawWeaponsOfflineText:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 10;        // Character width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -51;       // 51 pixels left of center&lt;br /&gt;
            y               = -51;       // 51 pixels down from center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = 0;         // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
            rgb_color       = (0.0, 1.0, 0.0, 1.0); // RGBA color: green with full opacity&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // FPS COUNTER&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Shows frames per second (debug/development tool)&lt;br /&gt;
        {   // fps counter, x and y give the location, the size defines the character size&lt;br /&gt;
            height          = 18;        // Character height&lt;br /&gt;
            selector        = &amp;quot;drawFPSInfoCounter:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 18;        // Character width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = -300;      // 300 pixels left of center&lt;br /&gt;
            y               = -20;       // 20 pixels down from center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = 1;         // Vertical origin: 1 = top of screen&lt;br /&gt;
            rgb_color       = (0.0, 1.0, 0.0, 1.0); // RGBA color: green with full opacity&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // CUSTOM BAR (EXAMPLE)&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Example of a custom bar that could be added for OXP-specific purposes&lt;br /&gt;
        // This is not in the original file but shows how drawCustomBar would work&lt;br /&gt;
        /*&lt;br /&gt;
        {   // custom bar example&lt;br /&gt;
            draw_surround   = yes;       // Draw border around bar&lt;br /&gt;
            height          = 8;         // Bar height&lt;br /&gt;
            selector        = &amp;quot;drawCustomBar:&amp;quot;; // Drawing method&lt;br /&gt;
            width           = 80;        // Bar width&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x               = 0;         // Center of screen&lt;br /&gt;
            y               = -150;      // 150 pixels down from center&lt;br /&gt;
            x_origin        = 0;         // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin        = 0;         // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
            // COLOR PARAMETERS:&lt;br /&gt;
            color_low       = &amp;quot;blueColor&amp;quot;;    // Color for low values&lt;br /&gt;
            color_medium    = &amp;quot;greenColor&amp;quot;;   // Color for medium values&lt;br /&gt;
            color_high      = &amp;quot;yellowColor&amp;quot;;  // Color for high values&lt;br /&gt;
            color_surround  = &amp;quot;whiteColor&amp;quot;;   // Color for the border around the bar&lt;br /&gt;
        },&lt;br /&gt;
        */&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // LEGENDS SECTION&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // Legends are text labels that appear with dials. They are drawn BEFORE dials,&lt;br /&gt;
    // so text appears behind the graphics. Each legend can be linked to a specific&lt;br /&gt;
    // dial using the 'with_dial' property.&lt;br /&gt;
    //&lt;br /&gt;
    // COLOR PARAMETER:&lt;br /&gt;
    // Legends support a 'color' property to override the default text color:&lt;br /&gt;
    // - color: Sets the text color for the legend&lt;br /&gt;
    // - Accepts standard Oolite color formats (named colors, RGB/RGBA tuples)&lt;br /&gt;
    &lt;br /&gt;
    legends     = // these are drawn, in order, before the dials&lt;br /&gt;
    (&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // LEFT SIDE LEGENDS&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Labels for dials on the left side of the screen&lt;br /&gt;
        &lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;FWD&amp;quot;;         // Text to display: Forward shields&lt;br /&gt;
            align       = 1;             // Text alignment: 1 = center&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 86;            // 86 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 12;            // Font height&lt;br /&gt;
            width       = 12;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;cyanColor&amp;quot;;   // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawForwardShieldBar:&amp;quot;; // Only show if this dial is visible&lt;br /&gt;
        },&lt;br /&gt;
        {   &lt;br /&gt;
            text        = &amp;quot;AFT&amp;quot;;         // Text to display: Aft shields&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 70;            // 70 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 12;            // Font height&lt;br /&gt;
            width       = 12;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;cyanColor&amp;quot;;   // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawAftShieldBar:&amp;quot;; // Link to aft shield bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;FUEL&amp;quot;;        // Text to display: Fuel level&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 55;            // 55 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 10;            // Font height&lt;br /&gt;
            width       = 10;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;orangeColor&amp;quot;; // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawFuelBar:&amp;quot;; // Link to fuel bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;CT&amp;quot;;          // Text to display: Cabin Temperature&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 45;            // 45 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 10;            // Font height&lt;br /&gt;
            width       = 10;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;yellowColor&amp;quot;; // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawCabinTempBar:&amp;quot;; // Link to cabin temp bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;LT&amp;quot;;          // Text to display: Laser Temperature&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 34;            // 34 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 10;            // Font height&lt;br /&gt;
            width       = 10;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;yellowColor&amp;quot;; // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawWeaponTempBar:&amp;quot;; // Link to weapon temp bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;ALT&amp;quot;;         // Text to display: Altitude&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 24;            // 24 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 10;            // Font height&lt;br /&gt;
            width       = 10;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;greenColor&amp;quot;;  // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawAltitudeBar:&amp;quot;; // Link to altitude bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;MISS&amp;quot;;        // Text to display: Missiles&lt;br /&gt;
            align       = 1;             // Center alignment&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = -245;          // 245 pixels left of center&lt;br /&gt;
            y           = 3;             // 3 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 14;            // Font height&lt;br /&gt;
            width       = 14;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;redColor&amp;quot;;    // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawMissileDisplay:&amp;quot;; // Link to missile display&lt;br /&gt;
        },&lt;br /&gt;
        &lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // RIGHT SIDE LEGENDS&lt;br /&gt;
        // =============================================================================&lt;br /&gt;
        // Labels for dials on the right side of the screen&lt;br /&gt;
        &lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;SPD&amp;quot;;         // Text to display: Speed&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 242;           // 242 pixels right of center&lt;br /&gt;
            y           = 86;            // 86 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 14;            // Font height&lt;br /&gt;
            width       = 14;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;whiteColor&amp;quot;;  // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawSpeedBar:&amp;quot;; // Link to speed bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;ROLL&amp;quot;;        // Text to display: Roll rate&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 242;           // 242 pixels right of center&lt;br /&gt;
            y           = 72;            // 72 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 12;            // Font height&lt;br /&gt;
            width       = 12;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;whiteColor&amp;quot;;  // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawRollBar:&amp;quot;; // Link to roll bar&lt;br /&gt;
        },&lt;br /&gt;
        {   // yaw bar legend&lt;br /&gt;
            text        = &amp;quot;YAW&amp;quot;;         // Text to display: Yaw rate&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 242;           // 242 pixels right of center&lt;br /&gt;
            y           = -138;          // 138 pixels down from center&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = 0;             // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
            height      = 12;            // Font height&lt;br /&gt;
            width       = 12;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;whiteColor&amp;quot;;  // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawYawBar:&amp;quot;; // Link to yaw bar&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            text        = &amp;quot;PITCH&amp;quot;;       // Text to display: Pitch rate&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x           = 242;           // 242 pixels right of center&lt;br /&gt;
            y           = 62;            // 62 pixels up from bottom&lt;br /&gt;
            x_origin    = 0;             // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin    = -1;            // Vertical origin: -1 = bottom of screen&lt;br /&gt;
            height      = 12;            // Font height&lt;br /&gt;
            width       = 12;            // Font width&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color       = &amp;quot;whiteColor&amp;quot;;  // Text color for this legend&lt;br /&gt;
            with_dial   = &amp;quot;drawPitchBar:&amp;quot;; // Link to pitch bar&lt;br /&gt;
        }&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // MULTI-FUNCTION DISPLAYS (MFDs)&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // MFDs are customizable panels that can show various information like cargo,&lt;br /&gt;
    // manifest, map, etc. Players can cycle through different MFD modes in-game.&lt;br /&gt;
    // You can define up to 12 MFDs. They are typically positioned on the sides&lt;br /&gt;
    // of the screen to avoid interfering with the main HUD elements.&lt;br /&gt;
    //&lt;br /&gt;
    // COLOR PARAMETER:&lt;br /&gt;
    // MFDs support a 'color' property to change from the default green:&lt;br /&gt;
    // - color: Sets the color of the MFD display elements&lt;br /&gt;
    // - Accepts standard Oolite color formats (named colors, RGB/RGBA tuples)&lt;br /&gt;
    &lt;br /&gt;
    multi_function_displays = // can have 1 to 12 multi function displays&lt;br /&gt;
    (&lt;br /&gt;
        {&lt;br /&gt;
            width = 198;                // Panel width in pixels&lt;br /&gt;
            height = 132;               // Panel height in pixels&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x = -156;                   // 156 pixels left of center&lt;br /&gt;
            y = -72;                    // 72 pixels down from center&lt;br /&gt;
            x_origin = 0;               // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin = 1;               // Vertical origin: 1 = top of screen&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color = &amp;quot;cyanColor&amp;quot;;         // Color for MFD display elements (default is green)&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            width = 198;                // Panel width in pixels&lt;br /&gt;
            height = 132;               // Panel height in pixels&lt;br /&gt;
            // POSITION PARAMETERS:&lt;br /&gt;
            x = 156;                    // 156 pixels right of center&lt;br /&gt;
            y = -72;                    // 72 pixels down from center&lt;br /&gt;
            x_origin = 0;               // Horizontal origin: 0 = center of screen&lt;br /&gt;
            y_origin = 1;               // Vertical origin: 1 = top of screen&lt;br /&gt;
            // COLOR PARAMETER:&lt;br /&gt;
            color = &amp;quot;cyanColor&amp;quot;;         // Color for MFD display elements (default is green)&lt;br /&gt;
        }&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // MESSAGE GUI&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // Controls the display of in-game messages (mission messages, alerts,&lt;br /&gt;
    // status updates, etc.). This is the main text display area for communications.&lt;br /&gt;
    &lt;br /&gt;
    message_gui = {&lt;br /&gt;
        width = 252;                    // Panel width in pixels&lt;br /&gt;
        height = 140;                   // Panel height in pixels&lt;br /&gt;
        // POSITION PARAMETERS:&lt;br /&gt;
        x = 128;                       // 128 pixels right of center&lt;br /&gt;
        y = -60;                       // 60 pixels down from center&lt;br /&gt;
        x_origin = 0;                   // Horizontal origin: 0 = center of screen&lt;br /&gt;
        y_origin = 0;                   // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
        row_height = 14;                // Height of each message line in pixels&lt;br /&gt;
        permanent = no;                 // If NO, panel hides when no messages&lt;br /&gt;
        background_automatic = yes;      // If YES, background auto-hides when no messages&lt;br /&gt;
        // default background transparent&lt;br /&gt;
        background_rgba = &amp;quot;0.0 0.05 0.45 0.0&amp;quot;; // Background color (RGBA): dark blue, fully transparent&lt;br /&gt;
        text_color = &amp;quot;yellowColor&amp;quot;;     // Default text color for messages&lt;br /&gt;
        text_comms_color = &amp;quot;greenColor&amp;quot;; // Text color for communications messages&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // COMMUNICATIONS LOG GUI&lt;br /&gt;
    // =============================================================================&lt;br /&gt;
    // Shows the history of communications (radio chatter, station messages,&lt;br /&gt;
    // comms log, etc.). Typically positioned opposite the message GUI.&lt;br /&gt;
    &lt;br /&gt;
    comm_log_gui = {&lt;br /&gt;
        alpha = &amp;quot;0.75&amp;quot;;                 // Transparency: can be number or string&lt;br /&gt;
        width = 216;                    // Panel width in pixels&lt;br /&gt;
        height = 132;                   // Panel height in pixels&lt;br /&gt;
        // POSITION PARAMETERS:&lt;br /&gt;
        x = -156;                      // 156 pixels left of center&lt;br /&gt;
        y = -68;                       // 68 pixels down from center&lt;br /&gt;
        x_origin = 0;                   // Horizontal origin: 0 = center of screen&lt;br /&gt;
        y_origin = 0;                   // Vertical origin: 0 = center of screen (default)&lt;br /&gt;
        row_height = 12;                // Height of each log line in pixels&lt;br /&gt;
        permanent = no;                 // If NO, panel hides when inactive&lt;br /&gt;
        automatic = yes;                // If YES, auto-hides when no communications&lt;br /&gt;
        background_rgba = &amp;quot;0.0 0.05 0.45 0.5&amp;quot;; // Background color: dark blue, semi-transparent&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// See [https://wiki.alioth.net/index.php/HUD_Customisation_Guide HUD_Customisation_Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Riredi_OXP&amp;diff=90134</id>
		<title>Riredi OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Riredi_OXP&amp;diff=90134"/>
		<updated>2026-08-09T09:42:52Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added CB's latest!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Riredi_sodalite_orbital_station2.png|thumb|799px|right|Riredi sodalite orbital station]]&lt;br /&gt;
[[File:riredi planet.png|thumb|300px|left|Riredi.oxp's Riredi]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
*Custom texture for the planet&lt;br /&gt;
*New F7 description of the planet&lt;br /&gt;
*Unique orbital station&lt;br /&gt;
*Custom docking tunnel for [[BGS]]&lt;br /&gt;
*Special station defenders&lt;br /&gt;
&lt;br /&gt;
[[Sector1/Riredi]] is the home of '''Coluber Inc.''' (Coluber Works and Shipyards Ltd.) and '''Riredisec Ltd.''' (a well established transport company that is specialized in the transportation of larger quantities of gold, platinum and gemstones).&lt;br /&gt;
&lt;br /&gt;
The station is thus unique (designed and built by Coluber) and is guarded by [[Coluber Pitviper|Pitviper Mark II]]s which are manufactured locally by Coluber.&lt;br /&gt;
&lt;br /&gt;
This OXP was initially created by Captain Beatnik in 2014.&lt;br /&gt;
&lt;br /&gt;
=== Riredi v.2.0 ===&lt;br /&gt;
This OXP has been updated by [[User:Phkb|Phkb]] in 2024 (currently v.2.4)&lt;br /&gt;
&lt;br /&gt;
The new version includes &lt;br /&gt;
*retextures of the Sodalite station &amp;amp; buoy, &lt;br /&gt;
*retexture of the planet (now includes city lights) &lt;br /&gt;
*introduces various trading tweaks (illegality of radioactives, a [[New Cargoes]] commodity)&lt;br /&gt;
*creates a preponderance of Coluber ships in the station shipyard (if the various Coluber ship OXPs are loaded)&lt;br /&gt;
*introduces retextured Coluber police ships to the system.&lt;br /&gt;
*includes PlanetFall 2 integration.&lt;br /&gt;
&lt;br /&gt;
It links in with [[User:Phkb|Phkb]]'s Pitviper Mark II Facelift OXP (See [[Coluber Pitviper]]).&lt;br /&gt;
&lt;br /&gt;
[[File:IconBGS.png|right |link=BGS|BGS enhances this OXP]]&lt;br /&gt;
[[File:IconPF2.png|right |link=Planetfall2 OXP|PlanetFall2 adds lore-based landing sites]]&lt;br /&gt;
[[File:New Cargoes icon.png|right|link=New Cargoes|New Cargoes commodity added in]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*The original OXP was created by Captain Beatnik back in 2014 (planet texture, F7 screen description, station). &lt;br /&gt;
*It was then rejigged as an OXZ for the in-game [[Expansions Manager]] by Dybal in 2020. &lt;br /&gt;
*Phkb then added in city lights to the planet textures, improved ship textures, New Cargoes and planet landing sites for PlanetFall2 in 2024.&lt;br /&gt;
*Captain Beatnik is currently adding more: a lore-based planet texture, greeting screen on docking, ''etc''.&lt;br /&gt;
&lt;br /&gt;
*Captain Beatnik has also added much lore for the planet and its denizens (see his [[User:Captain Beatnik|User:page]] for links to it).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Sector1/Riredi]] - contains some of the new Lore&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16237 RELEASE: Riredi (ambience OXP)] BB Thread (2014-24)&lt;br /&gt;
*[[User:Captain Beatnik|Captain Beatnik]]: links to his other OXPs (pitvipers, racing ships &amp;amp; HUDs)&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
This oxp was repackaged and placed on the [[Expansions Manager]] by [[User:Dybal|Dybal]] and has since been updated by Phkb.&lt;br /&gt;
=== New Version! ===&lt;br /&gt;
*[[User:Captain Beatnik|Captain Beatnik]] has been working on updating this OXP further: [https://app.box.com/s/w4xio5dzdt8vhebw5qkihhpqejwiah45 ''download here (Aug 2026 update)''].&lt;br /&gt;
&lt;br /&gt;
(i) Planet Texture: It now contains a lore-based planet texture with the appropriate geography (the vast central sea; Apex Mons (a gigantic, extinct shield volcano with three military research facilities on its crater rim, faintly visible at night); and the massive Coluber Works and Shipyards complex, situated in isolation within an ancient southern meteorite crater. The city night-lights now allow the N-Ddshriiipjiziss mega-metropolitan region to become visible in-game whenever the peninsula it occupies is on the planet's night side. Even the gigantic palace complex of the Three Protecting Mothers is now visible — albeit only as a tiny lightspot — from orbit, just as described in the lore.&lt;br /&gt;
&lt;br /&gt;
(ii) Panorama: Minor tweaks now position the station to allow fantastic views of the planet — including the day-night terminator — both upon arrival at the Witchpoint and after launching from the station.&lt;br /&gt;
&lt;br /&gt;
(iii) Greeting: You are now met with an immersive greeting when you dock at the station - a welcome screen that displays useful information alongside some humorous messages — such as alerts if the ship has damaged modules or requires maintenance. The screen also shows your legal status, with the greeting becoming more reserved or even hostile if you are flagged as an Offender or Fugitive.&lt;br /&gt;
&lt;br /&gt;
==== Possible future improvements ====&lt;br /&gt;
 If I find the time, I’ll try building some interior facilities for the station next. I already have a few ideas, but I’m still working out a concept for how to implement them. (Captain Beatnik, August 2026).&lt;br /&gt;
&lt;br /&gt;
[[File:Tag-colour-green.png]]&lt;br /&gt;
&lt;br /&gt;
{{dockables-OXP}}&lt;br /&gt;
{{ambience-OXP}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90126</id>
		<title>Feudal States</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90126"/>
		<updated>2026-08-07T12:03:44Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* DGill's Feudal Suite */ Added note on updated pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox OXP| title = Feudal States OXP&lt;br /&gt;
|image = [[Image:Titleeagle.jpg|200px]]&lt;br /&gt;
|download = [https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc Latest (2021)]&lt;br /&gt;
|version = 2.1&lt;br /&gt;
|story = N/A&lt;br /&gt;
|stations = [[Feudal States#Ships and Stations|Stations]]&lt;br /&gt;
|ships = [[Feudal States#Ships and Stations|Ships]]&lt;br /&gt;
|mission = [[Feudal States#Elements|Elements]]&lt;br /&gt;
|equipment = N/A&lt;br /&gt;
|alternativeHUD = None&lt;br /&gt;
|soundSet = Some Music&lt;br /&gt;
|category = Systems OXPs&lt;br /&gt;
|author = [[User:Ramirez|Ramirez]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview  ==&lt;br /&gt;
&lt;br /&gt;
The Feudal States is a flavour OXP that adds various new elements to the ''leading'' feudal systems in Oolite galaxies.  The current version covers Galaxies 1, 2, 3, 5, 6 and (incompletely) 7.&lt;br /&gt;
&lt;br /&gt;
== Elements ==&lt;br /&gt;
&lt;br /&gt;
The OXP contains four basic elements:&lt;br /&gt;
&lt;br /&gt;
'''Challenges'''&lt;br /&gt;
&lt;br /&gt;
Pilots can visit [[Royal Hunting Lodge]]s where they are able to challenge nobles in ship-to-ship contact.  Bets can be placed on the outcome, giving you an alternative way of making quick money. Use the '''F8''' interface while docked at the Lodge to accept a challenge and bet on it.&lt;br /&gt;
&lt;br /&gt;
'''Missions'''&lt;br /&gt;
&lt;br /&gt;
Good pilots are in high demand amongst the Feudal States.  Visit the Royal Court where you can take on missions, ranging from simple deliveries to the capture and ransom of senior nobles. Use the '''F8''' interface for the Royal Court after landing on the planet.&lt;br /&gt;
&lt;br /&gt;
'''Promotions'''&lt;br /&gt;
&lt;br /&gt;
As your standing with the Feudal States increases, you can join their ranks as a knight of one of the royal houses.  Further success will see you elevated to the peerage, with the chance of becoming one of the leading members of royal society.&lt;br /&gt;
&lt;br /&gt;
'''Tournaments'''&lt;br /&gt;
&lt;br /&gt;
The Feudal States hold regular tournaments where nobles gather to test their skills in combat.  All pilots with noble rank are eligible to take part, with the winner taking home a major cash prize as well as increasing their prestige.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More detailed information on the OXP is available in the PDF readme (see below).&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
The sections immediately beneath are taken from Ramirez's included .pdf:&lt;br /&gt;
[[File:Feudal inter Digebiti.png|thumb|right|500px|[[Sector1/Digebiti|Digebiti]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibecea.png|thumb|right|500px|[[Sector1/Tibecea|Tibecea]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibedied.png|thumb|right|500px|[[Sector1/Tibedied|Tibedied]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
=== History ===&lt;br /&gt;
The Feudal States were formed in the decades following the first wave of the galaxy’s human colonisation. While the Corporations and Democracies had great success in securing new territory and resources, many individuals found themselves disenfranchised from power, lacking either the political skill or the business acumen to have a real say in the governing of their own affairs. In many systems, breakaway movements soon sprung up, with miners, engineers and farmers agreeing to pool their resources and seek a better life elsewhere.&lt;br /&gt;
The risks were great. Much of the galaxy’s unclaimed territory had by this time become a lawless hunting ground for pirates, cruising from system to system preying on unfortunate merchants and passenger liners. With no defence fleet of their own, and little money to pay for mercenary protection, the colonists turned their back on the complex systems of government that had oppressed them, and instead sought to build their strength through the ancient principles of feudalism. The idea was simple: anyone willing to provide military service to the movement would be rewarded with substantial territories in the new systems, with all the wealth and privilege associated with it.&lt;br /&gt;
&lt;br /&gt;
Despite its rather old-fashioned nature, this offer of service was readily accepted by thousands of highly-rated combat pilots, many of whom had also lost out in the galactic land-grab and were having to scrape a living as itinerant freelancers. For them, serving as a knight in one of the Feudal States was an opportunity to further their careers in a more stable environment and finally earn the respect they felt was their due.&lt;br /&gt;
&lt;br /&gt;
Many Feudal States were established in this way, each system forming its own set of houses, ranks, titles and styles based loosely upon those of Old Earth. For several years, the different states supported each other, eager to present a united front to other governments. But as the ranks of knights swelled, the Feudal States became ever more aggressive in character and friendly rivalry often led to war. Unable to challenge the military authority of the more established governments, the Feudal States turned upon each other in a bid to achieve supremacy.&lt;br /&gt;
&lt;br /&gt;
The Feudal Wars, as the conflicts became known, were small, localised affairs and had little impact on the galaxy as a whole, although many dealers in other systems made their fortune by supplying arms and equipment to the belligerent states. Only when fighting spilled over into a nearby Democratic system, resulting in the accidental destruction of a passing freighter convoy, did the Galactic Cooperation act to put an end to the conflict. A ceasefire was enforced, the terms of which included a general embargo on the supply of offensive weapons by members of the Cooperation to any of the Feudal States.&lt;br /&gt;
&lt;br /&gt;
The ceasefire remains in force today, however it is an uneasy truce and hostilities have recently resumed, with the feudal houses mounting frequent raids against each other’s trade convoys and even capturing high-ranking nobles for ransom. So long as any violence is contained within Feudal borders and does not endanger the lives of visitors, [[GalCop]] has tended to turn a blind eye to most inter-house conflict and police patrols do not venture far from the main space stations.&lt;br /&gt;
&lt;br /&gt;
=== Economy ===&lt;br /&gt;
The Feudal States operate a range of economic models from industrial to agricultural, but they are all hampered by a lack of valuable raw resources; the systems with the most potential having been colonised long ago. Some states have managed to exploit indigenous flora and fauna with moderate success, but the majority have turned to tourism to boost their income. Particularly popular are the [[Royal Hunting Lodge]]s, small stations set away from the main space lanes where knights and nobles gather to test their combat skills and take part in large inter-house tournaments. For those living in societies where conflict is increasingly frowned upon, and the presence of GalCop is never far away, a visit to the Feudal States offers the chance to experience the life of a warrior, living according to the ancient laws of [[Royal Hunting Lodge|chivalry]].&lt;br /&gt;
&lt;br /&gt;
=== Ships and Equipment ===&lt;br /&gt;
The trade embargo enforced by GalCop has left the Feudal States heavily self-sufficient in terms of equipment. Due to their lack of skill in high-tech engineering, the states favour simple but sturdy ships for military service rather than the more complex, high-maintenance models used by other governments. In recent times, most ships have been provided through a special contract with Beckmann-Fleisig AG, an independent shipbuilder with similar views on function over form.&lt;br /&gt;
&lt;br /&gt;
A significant consequence of the Feudal States’ low-tech approach is that pilots are less reliant on the complex missile and defence systems that have become popular on many ship models. As a result, pilots in feudal service are known to be exceptionally good shots and many hold high combat ratings with the Elite Federation. Typically, each Feudal House operates three basic ship classes: the Jäger, Korvette and Zerstörer.&lt;br /&gt;
&lt;br /&gt;
=== From Cim's Ship's Manual ===&lt;br /&gt;
''Tucked away inside his [[Ship's Library OXP]]:''&lt;br /&gt;
&lt;br /&gt;
A Feudal System is defined as “a system where the exercise of power is hierarchical in nature”. In practice, since that is virtually tautologous, this status is reserved for those systems which have been unable to come to a satisfactory agreement with the Cooperative over at least one of the terms in the treaties. They may make a few goodwill payments to fund a basic station and patrols, or the Cooperative may provide them from surplus funding elsewhere, but there is no formal agreement.&lt;br /&gt;
&lt;br /&gt;
[[Sector7/Atlaeser|Atlaeser]] in Chart 7 actually follows a traditional feudal model in its government, with the Grand Mover ruling with an inner court of Flock Leaders, and an outer court of Path and Skein Leaders (the planet still uses the traditional avian titles of nobility, from pre-spaceflight migrations). The system has relatively high living standards even for the serf classes, thanks to a well-balanced economy, and excellent natural resources.&lt;br /&gt;
&lt;br /&gt;
At the other end of the scale, [[Sector3/Sovere|Sovere]] in Chart 3 has virtually no natural resources, and even its water is contaminated with hallucinogenic compounds. The corporate government would like to sell the water to other systems, as there is some demand for it, but under Cooperative law it is classified as a Narcotic, and the government's refusal to accept this classification is the crux of the dispute with the Cooperative.&lt;br /&gt;
&lt;br /&gt;
[[Sector8/Cetiat|Cetiat]] in Chart 8 is the sort of system where the Cooperative practice of restricting the supply of technology to Feudal systems makes a lot of sense. The system refuses to sign up to either the non-aggression or mutual defence clauses of the Cooperative treaties, although fortunately its lack of industrial resources means that the nearby systems are not in any great danger from its pitiful navy. The dictatorship's territorial ambitions, while extremely unlikely to get anywhere, are long-standing.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' that cim's account is at loggerheads with that of Ramirez just above it. One presumes that this is motivated by an uneasiness with the concept of popular feudalism so far in the future. As adumbrated in the musings section beneath, with the collapse of the Golden Age due to Thargoid invasions and the rise of piracy, Feudalism is a perfectly reasonable response.&lt;br /&gt;
&lt;br /&gt;
== Ships and Stations ==&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; text-align=&amp;quot;center&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Jäger.png |link= Jäger |100px|]]&amp;lt;br&amp;gt;[[Jäger]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Korvette.png |link= Korvette |100px|]]&amp;lt;br&amp;gt;[[Korvette]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Zerstörer.png |link= Zerstörer |100px|]]&amp;lt;br&amp;gt;[[Zerstörer]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Lodge.png |link= Royal Hunting Lodge |100px|]]&amp;lt;br&amp;gt;[[Royal Hunting Lodge]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Difficulty ==&lt;br /&gt;
&lt;br /&gt;
Taking part in missions, challenges and tournaments is entirely optional.  Missions and tournament events increase in difficulty as you progress, while challenges vary in difficulty depending on the skill and rank of your opponent.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Note that the ship models use shaders to help with identification, though the OXP will run with shader options turned off.&lt;br /&gt;
&lt;br /&gt;
[[File:IconPF2.png|right|link=Planetfall2 OXP|PlanetFall2 adds feudal landing sites]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Requires [[Planetfall_OXP|Planetfall OXP]] (either the 2013 PF1 version ''or'' the 2024 PF2 version).&lt;br /&gt;
&lt;br /&gt;
== Download  ==&lt;br /&gt;
*v.2.1 Downloadable from [https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc here]&lt;br /&gt;
*[[Media:Feudal_States_1.16.3.oxz|Feudal_States_1.16.3.oxz]] (downloaded {{#downloads:Feudal_States_1.16.3.oxz}} times) or through the in-game [[Expansions Manager]].&lt;br /&gt;
*The Feudal States OXP is available for download at [http://www.arcadia-digital.net/steve/Oolite/Oolite.html Ramirez' Oolite Pages]&lt;br /&gt;
*[[Media:Feudal_States_1.16.2.oxz|Feudal_States_1.16.2.oxz]] for Oolite 1.79 or later (downloaded {{#downloads:Feudal_States_1.16.2.oxz}} times).&lt;br /&gt;
&lt;br /&gt;
[[Image:IconGNN.png|right|48px|link=GNN|DGill's version uses GNN]]&lt;br /&gt;
[[Image:IconLib.png|right|48px|link=Library OXP|DGill's version uses Library's PAD]]&lt;br /&gt;
[[Image:IconPF2.png|right|48px|link=Planetfall2|DGill's version uses Planetfall2]]&lt;br /&gt;
=== DGill's Feudal Suite ===&lt;br /&gt;
DGill's Feudal States oxp suite (in Beta, for playtesting) - these 4 OXPs replace Ramirez's original, above. [[File:New.gif]]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1lqj6brYWwgR555AcewXgvKpZak7sswTx?usp=sharing Feudal States Extended]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1O1_Wpcl2OW-e8dWPTDkq-5py1W2dOyRQ?usp=sharing Feudal States Tibecea]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1FeBS8o85YsSRHIpNtmwxI91bXA-Qq5DL?usp=sharing Feudal States Ships]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1l8eW-8q27q2bKlanl3-nD7XmtbwTtBVW?usp=sharing Feudal States Images]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Tibecea&amp;quot; both adds estate management to the game (once one is of high-enough feudal rank) ''and'' flavours the SE corner of G1 (Santaari) around [[Tibecea (Rough Guide)|Tibecea]].&lt;br /&gt;
&lt;br /&gt;
The feudal suite adds in more activities and dovetails beautifully with [[Planetfall2 OXP]], building on the possibilities which Planetfall2 introduces to Oolite. At the time of writing, it is the only OXP which does this. It ''also'' works with the older Planetfall.&lt;br /&gt;
&lt;br /&gt;
==== Revised PDF ====&lt;br /&gt;
DGill has revised Ramirez's .pdf to include G8/Xrata.&lt;br /&gt;
&lt;br /&gt;
To extract it, try here: [[File:The Feudal States Extended.pdf.zip]]&lt;br /&gt;
&lt;br /&gt;
Or you can just dig it out of his &amp;quot;Feudal States Extended&amp;quot; OXP.&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
G8 is missing from this OXP (there are 32 feudal states there). It would also be nice to add in some more nationalities (Norwegian? Hungarian? Finnish? Brazilian? Scottish? ''etc''). And maybe one or two of the other species - the batrachians of G8 Rear or the felines of G8 Aanra? &lt;br /&gt;
&lt;br /&gt;
The escutcheons for G7 are likewise missing.&lt;br /&gt;
&lt;br /&gt;
''This is all fixed in DGill's four-piece Feudal States suite''&lt;br /&gt;
&lt;br /&gt;
=== Historic context ===&lt;br /&gt;
Feudalism developed in Europe as a response to the downfall of the Roman Empire (≅ GalCop) and the incursions of the barbarians (≅ Thargoids &amp;amp; pirates). As matters in The Eight worsen and presuming that GalCop proves incapable of supporting local regimes, one might well expect more states to take up a feudal system of government as people cry out for protection against the invaders!&lt;br /&gt;
&lt;br /&gt;
== Tweaks ==&lt;br /&gt;
OXP's being modifiable, this one, also, can be changed at whim if you have the skills. See the screen shots of DGill's version [https://bb.oolite.space/viewtopic.php?p=278048#p278048 here], with larger hunting lodges, a feudal HUD (!) and a greater variety of different missions.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
Tucked away inside this oxp is one of [[User:Ramirez|Ramirez]]'s famous .pdf's stashed full of information (15 pages!). &lt;br /&gt;
&lt;br /&gt;
To extract it, try here: [[File:The Feudal States.pdf.zip]]&lt;br /&gt;
&lt;br /&gt;
''Or'' you can use the [[Expansions Manager]], or just expand it with your computer's software unzipper and peek into the folder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*You can find the Feudal States discussion thread on the Oolite Bulletin Boards [https://bb.oolite.space/viewtopic.php?t=5511 here].&lt;br /&gt;
*See the Royal Houses box at the bottom of this page&lt;br /&gt;
*An earlier Feudal OXP was written by Caracal [https://bb.oolite.space/viewtopic.php?t=4860 Teaser OXP for Feudals: Target Practice] (2008 - download link broken)&lt;br /&gt;
&lt;br /&gt;
This has proved a very popular OXP - together with the main thread there are many others dealing with problems people found. These two are a little different:&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=13140 Land ownership as reward for missions for Feudal lords?] (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=18710 How do you imagine Feudal Systems?] (2017)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FeudalStatesRoyalHouses}}&lt;br /&gt;
&lt;br /&gt;
{{station-OXP}}{{ship-OXP}}{{mission-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:The Feudal States| ]] [[Category:Fictional organisations]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:The_Feudal_States_Extended.pdf.zip&amp;diff=90125</id>
		<title>File:The Feudal States Extended.pdf.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:The_Feudal_States_Extended.pdf.zip&amp;diff=90125"/>
		<updated>2026-08-07T11:56:29Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: From DGill's Feudal States OXP suite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
From DGill's Feudal States OXP suite&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Sector8/Index&amp;diff=90124</id>
		<title>Sector8/Index</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Sector8/Index&amp;diff=90124"/>
		<updated>2026-08-07T11:49:29Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added Feudal States OXP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GalaxyGuide/IndexList}}&lt;br /&gt;
&lt;br /&gt;
== Overview over Galaxy Sector 8 ==&lt;br /&gt;
&amp;lt;!-- This div should be part of ClickMapHeader, but the MediaWiki 1.9.3 is too old. --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;{{ClickMapHeader|Sector=8|Image=Sector8_OverViewMap.png}}&lt;br /&gt;
{{ClickMapEntry|Name=Anesbi|Sector=8|XPos=1|YPos=45|XPosRel=6|YPosRel=70}}&lt;br /&gt;
{{ClickMapEntry|Name=Iseror|Sector=8|XPos=204|YPos=230|XPosRel=616|YPosRel=348}}&lt;br /&gt;
{{ClickMapEntry|Name=Ererso|Sector=8|XPos=38|YPos=249|XPosRel=117|YPosRel=376}}&lt;br /&gt;
{{ClickMapEntry|Name=Leatanre|Sector=8|XPos=168|YPos=103|XPosRel=508|YPosRel=157}}&lt;br /&gt;
{{ClickMapEntry|Name=Tebienla|Sector=8|XPos=206|YPos=59|XPosRel=622|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Revequ|Sector=8|XPos=85|YPos=146|XPosRel=258|YPosRel=222}}&lt;br /&gt;
{{ClickMapEntry|Name=Eresorbe|Sector=8|XPos=95|YPos=218|XPosRel=288|YPosRel=330}}&lt;br /&gt;
{{ClickMapEntry|Name=Vegedius|Sector=8|XPos=147|YPos=121|XPosRel=445|YPosRel=184}}&lt;br /&gt;
{{ClickMapEntry|Name=Querbeis|Sector=8|XPos=136|YPos=13|XPosRel=412|YPosRel=22}}&lt;br /&gt;
{{ClickMapEntry|Name=Leater|Sector=8|XPos=29|YPos=211|XPosRel=90|YPosRel=319}}&lt;br /&gt;
{{ClickMapEntry|Name=Bianbies|Sector=8|XPos=132|YPos=208|XPosRel=400|YPosRel=315}}&lt;br /&gt;
{{ClickMapEntry|Name=Maana|Sector=8|XPos=201|YPos=38|XPosRel=607|YPosRel=60}}&lt;br /&gt;
{{ClickMapEntry|Name=Biis|Sector=8|XPos=86|YPos=143|XPosRel=261|YPosRel=217}}&lt;br /&gt;
{{ClickMapEntry|Name=Usmaedin|Sector=8|XPos=36|YPos=189|XPosRel=111|YPosRel=286}}&lt;br /&gt;
{{ClickMapEntry|Name=Erlabeor|Sector=8|XPos=12|YPos=24|XPosRel=39|YPosRel=39}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeerin|Sector=8|XPos=153|YPos=83|XPosRel=463|YPosRel=127}}&lt;br /&gt;
{{ClickMapEntry|Name=Teescear|Sector=8|XPos=255|YPos=204|XPosRel=769|YPosRel=309}}&lt;br /&gt;
{{ClickMapEntry|Name=Oresreat|Sector=8|XPos=10|YPos=133|XPosRel=33|YPosRel=202}}&lt;br /&gt;
{{ClickMapEntry|Name=Esusge|Sector=8|XPos=17|YPos=14|XPosRel=54|YPosRel=24}}&lt;br /&gt;
{{ClickMapEntry|Name=Lequatdi|Sector=8|XPos=245|YPos=3|XPosRel=739|YPosRel=7}}&lt;br /&gt;
{{ClickMapEntry|Name=Oredrier|Sector=8|XPos=237|YPos=241|XPosRel=715|YPosRel=364}}&lt;br /&gt;
{{ClickMapEntry|Name=Soladiar|Sector=8|XPos=16|YPos=126|XPosRel=51|YPosRel=192}}&lt;br /&gt;
{{ClickMapEntry|Name=Inzaan_1|Sector=8|XPos=74|YPos=45|XPosRel=225|YPosRel=70}}&lt;br /&gt;
{{ClickMapEntry|Name=Maenes|Sector=8|XPos=108|YPos=91|XPosRel=327|YPosRel=139}}&lt;br /&gt;
{{ClickMapEntry|Name=Xebeis|Sector=8|XPos=39|YPos=73|XPosRel=120|YPosRel=112}}&lt;br /&gt;
{{ClickMapEntry|Name=Cetiat|Sector=8|XPos=20|YPos=29|XPosRel=63|YPosRel=46}}&lt;br /&gt;
{{ClickMapEntry|Name=Titiridi|Sector=8|XPos=14|YPos=17|XPosRel=45|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Geale|Sector=8|XPos=45|YPos=158|XPosRel=138|YPosRel=240}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceanve|Sector=8|XPos=84|YPos=65|XPosRel=255|YPosRel=100}}&lt;br /&gt;
{{ClickMapEntry|Name=Esveti|Sector=8|XPos=151|YPos=246|XPosRel=457|YPosRel=372}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceraerar|Sector=8|XPos=87|YPos=119|XPosRel=264|YPosRel=181}}&lt;br /&gt;
{{ClickMapEntry|Name=Aarzari|Sector=8|XPos=10|YPos=48|XPosRel=33|YPosRel=75}}&lt;br /&gt;
{{ClickMapEntry|Name=Dieranor|Sector=8|XPos=190|YPos=100|XPosRel=574|YPosRel=153}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceanquan|Sector=8|XPos=185|YPos=187|XPosRel=559|YPosRel=283}}&lt;br /&gt;
{{ClickMapEntry|Name=Enustien|Sector=8|XPos=187|YPos=58|XPosRel=565|YPosRel=90}}&lt;br /&gt;
{{ClickMapEntry|Name=Atanon|Sector=8|XPos=114|YPos=151|XPosRel=345|YPosRel=229}}&lt;br /&gt;
{{ClickMapEntry|Name=Biatge|Sector=8|XPos=76|YPos=95|XPosRel=231|YPosRel=145}}&lt;br /&gt;
{{ClickMapEntry|Name=Aditira|Sector=8|XPos=58|YPos=67|XPosRel=177|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Orbira|Sector=8|XPos=116|YPos=87|XPosRel=351|YPosRel=133}}&lt;br /&gt;
{{ClickMapEntry|Name=Aedis|Sector=8|XPos=116|YPos=116|XPosRel=351|YPosRel=177}}&lt;br /&gt;
{{ClickMapEntry|Name=Anri|Sector=8|XPos=133|YPos=253|XPosRel=403|YPosRel=382}}&lt;br /&gt;
{{ClickMapEntry|Name=Orlaaror|Sector=8|XPos=122|YPos=128|XPosRel=369|YPosRel=195}}&lt;br /&gt;
{{ClickMapEntry|Name=Edandi|Sector=8|XPos=89|YPos=234|XPosRel=270|YPosRel=354}}&lt;br /&gt;
{{ClickMapEntry|Name=Intearbe|Sector=8|XPos=194|YPos=141|XPosRel=586|YPosRel=214}}&lt;br /&gt;
{{ClickMapEntry|Name=Quedbiqu|Sector=8|XPos=147|YPos=42|XPosRel=445|YPosRel=66}}&lt;br /&gt;
{{ClickMapEntry|Name=Orqure|Sector=8|XPos=122|YPos=134|XPosRel=369|YPosRel=204}}&lt;br /&gt;
{{ClickMapEntry|Name=Arqubi|Sector=8|XPos=225|YPos=46|XPosRel=679|YPosRel=72}}&lt;br /&gt;
{{ClickMapEntry|Name=Maisrais|Sector=8|XPos=171|YPos=198|XPosRel=517|YPosRel=300}}&lt;br /&gt;
{{ClickMapEntry|Name=Reonar|Sector=8|XPos=61|YPos=244|XPosRel=186|YPosRel=369}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeceon|Sector=8|XPos=216|YPos=138|XPosRel=652|YPosRel=210}}&lt;br /&gt;
{{ClickMapEntry|Name=Maatxeri|Sector=8|XPos=38|YPos=127|XPosRel=117|YPosRel=193}}&lt;br /&gt;
{{ClickMapEntry|Name=Enbeza|Sector=8|XPos=30|YPos=34|XPosRel=93|YPosRel=54}}&lt;br /&gt;
{{ClickMapEntry|Name=Geen|Sector=8|XPos=234|YPos=132|XPosRel=706|YPosRel=201}}&lt;br /&gt;
{{ClickMapEntry|Name=Soisqu|Sector=8|XPos=213|YPos=224|XPosRel=643|YPosRel=339}}&lt;br /&gt;
{{ClickMapEntry|Name=Veerbidi|Sector=8|XPos=223|YPos=90|XPosRel=673|YPosRel=138}}&lt;br /&gt;
{{ClickMapEntry|Name=Getiusza|Sector=8|XPos=173|YPos=198|XPosRel=523|YPosRel=300}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaatquat|Sector=8|XPos=164|YPos=40|XPosRel=496|YPosRel=63}}&lt;br /&gt;
{{ClickMapEntry|Name=Riarquge|Sector=8|XPos=81|YPos=250|XPosRel=246|YPosRel=378}}&lt;br /&gt;
{{ClickMapEntry|Name=Esusla|Sector=8|XPos=99|YPos=90|XPosRel=300|YPosRel=138}}&lt;br /&gt;
{{ClickMapEntry|Name=Zainat|Sector=8|XPos=134|YPos=245|XPosRel=406|YPosRel=370}}&lt;br /&gt;
{{ClickMapEntry|Name=Onisain|Sector=8|XPos=17|YPos=76|XPosRel=54|YPosRel=117}}&lt;br /&gt;
{{ClickMapEntry|Name=Orlatein|Sector=8|XPos=204|YPos=111|XPosRel=616|YPosRel=169}}&lt;br /&gt;
{{ClickMapEntry|Name=Onusra|Sector=8|XPos=172|YPos=60|XPosRel=520|YPosRel=93}}&lt;br /&gt;
{{ClickMapEntry|Name=Edsoan|Sector=8|XPos=123|YPos=20|XPosRel=372|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Onveat|Sector=8|XPos=123|YPos=123|XPosRel=372|YPosRel=187}}&lt;br /&gt;
{{ClickMapEntry|Name=Rebite|Sector=8|XPos=102|YPos=241|XPosRel=309|YPosRel=364}}&lt;br /&gt;
{{ClickMapEntry|Name=Belebi|Sector=8|XPos=81|YPos=220|XPosRel=246|YPosRel=333}}&lt;br /&gt;
{{ClickMapEntry|Name=Xezaxees|Sector=8|XPos=251|YPos=166|XPosRel=757|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Aanra|Sector=8|XPos=201|YPos=98|XPosRel=607|YPosRel=150}}&lt;br /&gt;
{{ClickMapEntry|Name=Erzara|Sector=8|XPos=224|YPos=84|XPosRel=676|YPosRel=129}}&lt;br /&gt;
{{ClickMapEntry|Name=Gexeala|Sector=8|XPos=137|YPos=52|XPosRel=415|YPosRel=81}}&lt;br /&gt;
{{ClickMapEntry|Name=Usreinxe|Sector=8|XPos=21|YPos=79|XPosRel=66|YPosRel=121}}&lt;br /&gt;
{{ClickMapEntry|Name=Isdidied|Sector=8|XPos=130|YPos=204|XPosRel=394|YPosRel=309}}&lt;br /&gt;
{{ClickMapEntry|Name=Enedge|Sector=8|XPos=152|YPos=141|XPosRel=460|YPosRel=214}}&lt;br /&gt;
{{ClickMapEntry|Name=Artelaan|Sector=8|XPos=46|YPos=99|XPosRel=141|YPosRel=151}}&lt;br /&gt;
{{ClickMapEntry|Name=Inisbi|Sector=8|XPos=123|YPos=213|XPosRel=372|YPosRel=322}}&lt;br /&gt;
{{ClickMapEntry|Name=Ramaa|Sector=8|XPos=208|YPos=166|XPosRel=628|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Aresgeti|Sector=8|XPos=143|YPos=175|XPosRel=433|YPosRel=265}}&lt;br /&gt;
{{ClickMapEntry|Name=Zariorte|Sector=8|XPos=183|YPos=163|XPosRel=553|YPosRel=247}}&lt;br /&gt;
{{ClickMapEntry|Name=Raaran|Sector=8|XPos=124|YPos=25|XPosRel=375|YPosRel=40}}&lt;br /&gt;
{{ClickMapEntry|Name=Laace|Sector=8|XPos=122|YPos=251|XPosRel=369|YPosRel=379}}&lt;br /&gt;
{{ClickMapEntry|Name=Areran|Sector=8|XPos=101|YPos=239|XPosRel=306|YPosRel=361}}&lt;br /&gt;
{{ClickMapEntry|Name=Inorle|Sector=8|XPos=59|YPos=80|XPosRel=180|YPosRel=123}}&lt;br /&gt;
{{ClickMapEntry|Name=Geintiso|Sector=8|XPos=7|YPos=33|XPosRel=24|YPosRel=52}}&lt;br /&gt;
{{ClickMapEntry|Name=Ininlequ|Sector=8|XPos=231|YPos=247|XPosRel=697|YPosRel=373}}&lt;br /&gt;
{{ClickMapEntry|Name=Uszasora|Sector=8|XPos=90|YPos=161|XPosRel=273|YPosRel=244}}&lt;br /&gt;
{{ClickMapEntry|Name=Teat|Sector=8|XPos=116|YPos=231|XPosRel=351|YPosRel=349}}&lt;br /&gt;
{{ClickMapEntry|Name=Teteus|Sector=8|XPos=174|YPos=17|XPosRel=526|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Biered|Sector=8|XPos=33|YPos=232|XPosRel=102|YPosRel=351}}&lt;br /&gt;
{{ClickMapEntry|Name=Tirige|Sector=8|XPos=78|YPos=56|XPosRel=237|YPosRel=87}}&lt;br /&gt;
{{ClickMapEntry|Name=Anedin|Sector=8|XPos=185|YPos=3|XPosRel=559|YPosRel=7}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceenti|Sector=8|XPos=160|YPos=44|XPosRel=484|YPosRel=69}}&lt;br /&gt;
{{ClickMapEntry|Name=Orus|Sector=8|XPos=207|YPos=55|XPosRel=625|YPosRel=85}}&lt;br /&gt;
{{ClickMapEntry|Name=Arlale|Sector=8|XPos=193|YPos=72|XPosRel=583|YPosRel=111}}&lt;br /&gt;
{{ClickMapEntry|Name=Edtetiin|Sector=8|XPos=1|YPos=97|XPosRel=6|YPosRel=148}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceened|Sector=8|XPos=172|YPos=215|XPosRel=520|YPosRel=325}}&lt;br /&gt;
{{ClickMapEntry|Name=Ertebira|Sector=8|XPos=56|YPos=114|XPosRel=171|YPosRel=174}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiatisbi|Sector=8|XPos=212|YPos=134|XPosRel=640|YPosRel=204}}&lt;br /&gt;
{{ClickMapEntry|Name=Laorlaza|Sector=8|XPos=230|YPos=221|XPosRel=694|YPosRel=334}}&lt;br /&gt;
{{ClickMapEntry|Name=Bedice|Sector=8|XPos=68|YPos=149|XPosRel=207|YPosRel=226}}&lt;br /&gt;
{{ClickMapEntry|Name=Orcece|Sector=8|XPos=70|YPos=69|XPosRel=213|YPosRel=106}}&lt;br /&gt;
{{ClickMapEntry|Name=Erteenon|Sector=8|XPos=69|YPos=197|XPosRel=210|YPosRel=298}}&lt;br /&gt;
{{ClickMapEntry|Name=Dirima|Sector=8|XPos=159|YPos=114|XPosRel=481|YPosRel=174}}&lt;br /&gt;
{{ClickMapEntry|Name=Legean|Sector=8|XPos=119|YPos=11|XPosRel=360|YPosRel=19}}&lt;br /&gt;
{{ClickMapEntry|Name=Onanqu|Sector=8|XPos=128|YPos=123|XPosRel=388|YPosRel=187}}&lt;br /&gt;
{{ClickMapEntry|Name=Maantege|Sector=8|XPos=117|YPos=250|XPosRel=354|YPosRel=378}}&lt;br /&gt;
{{ClickMapEntry|Name=Tetete|Sector=8|XPos=3|YPos=60|XPosRel=12|YPosRel=93}}&lt;br /&gt;
{{ClickMapEntry|Name=Diriledi|Sector=8|XPos=244|YPos=252|XPosRel=736|YPosRel=381}}&lt;br /&gt;
{{ClickMapEntry|Name=Reisorza|Sector=8|XPos=13|YPos=1|XPosRel=42|YPosRel=4}}&lt;br /&gt;
{{ClickMapEntry|Name=Aneded|Sector=8|XPos=100|YPos=57|XPosRel=303|YPosRel=88}}&lt;br /&gt;
{{ClickMapEntry|Name=Isxein|Sector=8|XPos=140|YPos=120|XPosRel=424|YPosRel=183}}&lt;br /&gt;
{{ClickMapEntry|Name=Istixeti|Sector=8|XPos=13|YPos=76|XPosRel=42|YPosRel=117}}&lt;br /&gt;
{{ClickMapEntry|Name=Atmala|Sector=8|XPos=183|YPos=226|XPosRel=553|YPosRel=342}}&lt;br /&gt;
{{ClickMapEntry|Name=Beanle|Sector=8|XPos=178|YPos=181|XPosRel=538|YPosRel=274}}&lt;br /&gt;
{{ClickMapEntry|Name=Releleat|Sector=8|XPos=81|YPos=129|XPosRel=246|YPosRel=196}}&lt;br /&gt;
{{ClickMapEntry|Name=Bebima|Sector=8|XPos=177|YPos=1|XPosRel=535|YPosRel=4}}&lt;br /&gt;
{{ClickMapEntry|Name=Vebixe|Sector=8|XPos=229|YPos=75|XPosRel=691|YPosRel=115}}&lt;br /&gt;
{{ClickMapEntry|Name=Esmara|Sector=8|XPos=159|YPos=194|XPosRel=481|YPosRel=294}}&lt;br /&gt;
{{ClickMapEntry|Name=Arustea|Sector=8|XPos=9|YPos=212|XPosRel=30|YPosRel=321}}&lt;br /&gt;
{{ClickMapEntry|Name=Laxesori|Sector=8|XPos=111|YPos=60|XPosRel=336|YPosRel=93}}&lt;br /&gt;
{{ClickMapEntry|Name=Usrelain|Sector=8|XPos=158|YPos=135|XPosRel=478|YPosRel=205}}&lt;br /&gt;
{{ClickMapEntry|Name=Aatdire|Sector=8|XPos=12|YPos=213|XPosRel=39|YPosRel=322}}&lt;br /&gt;
{{ClickMapEntry|Name=Inusge|Sector=8|XPos=14|YPos=13|XPosRel=45|YPosRel=22}}&lt;br /&gt;
{{ClickMapEntry|Name=Bigexein|Sector=8|XPos=121|YPos=67|XPosRel=366|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Enxeleti|Sector=8|XPos=140|YPos=2|XPosRel=424|YPosRel=6}}&lt;br /&gt;
{{ClickMapEntry|Name=Anrasoti|Sector=8|XPos=119|YPos=129|XPosRel=360|YPosRel=196}}&lt;br /&gt;
{{ClickMapEntry|Name=Enerqu|Sector=8|XPos=87|YPos=231|XPosRel=264|YPosRel=349}}&lt;br /&gt;
{{ClickMapEntry|Name=Esxear|Sector=8|XPos=158|YPos=122|XPosRel=478|YPosRel=186}}&lt;br /&gt;
{{ClickMapEntry|Name=Xexean|Sector=8|XPos=246|YPos=74|XPosRel=742|YPosRel=114}}&lt;br /&gt;
{{ClickMapEntry|Name=Isri|Sector=8|XPos=1|YPos=123|XPosRel=6|YPosRel=187}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiatza|Sector=8|XPos=123|YPos=62|XPosRel=372|YPosRel=96}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaveusge|Sector=8|XPos=77|YPos=100|XPosRel=234|YPosRel=153}}&lt;br /&gt;
{{ClickMapEntry|Name=Geatiar|Sector=8|XPos=195|YPos=8|XPosRel=589|YPosRel=15}}&lt;br /&gt;
{{ClickMapEntry|Name=Atbea|Sector=8|XPos=106|YPos=151|XPosRel=321|YPosRel=229}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiqubied|Sector=8|XPos=180|YPos=15|XPosRel=544|YPosRel=25}}&lt;br /&gt;
{{ClickMapEntry|Name=Oredaris|Sector=8|XPos=152|YPos=166|XPosRel=460|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Leesusen|Sector=8|XPos=125|YPos=10|XPosRel=378|YPosRel=18}}&lt;br /&gt;
{{ClickMapEntry|Name=Zarila|Sector=8|XPos=18|YPos=200|XPosRel=57|YPosRel=303}}&lt;br /&gt;
{{ClickMapEntry|Name=Ditegere|Sector=8|XPos=217|YPos=117|XPosRel=655|YPosRel=178}}&lt;br /&gt;
{{ClickMapEntry|Name=Rete|Sector=8|XPos=46|YPos=3|XPosRel=141|YPosRel=7}}&lt;br /&gt;
{{ClickMapEntry|Name=Soaxe|Sector=8|XPos=75|YPos=60|XPosRel=228|YPosRel=93}}&lt;br /&gt;
{{ClickMapEntry|Name=Mausdile|Sector=8|XPos=249|YPos=34|XPosRel=751|YPosRel=54}}&lt;br /&gt;
{{ClickMapEntry|Name=Tibiri|Sector=8|XPos=97|YPos=173|XPosRel=294|YPosRel=262}}&lt;br /&gt;
{{ClickMapEntry|Name=Cecees|Sector=8|XPos=94|YPos=96|XPosRel=285|YPosRel=147}}&lt;br /&gt;
{{ClickMapEntry|Name=Gexequon|Sector=8|XPos=244|YPos=169|XPosRel=736|YPosRel=256}}&lt;br /&gt;
{{ClickMapEntry|Name=Tevebebi|Sector=8|XPos=191|YPos=218|XPosRel=577|YPosRel=330}}&lt;br /&gt;
{{ClickMapEntry|Name=Eres|Sector=8|XPos=102|YPos=19|XPosRel=309|YPosRel=31}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaonrixe|Sector=8|XPos=26|YPos=192|XPosRel=81|YPosRel=291}}&lt;br /&gt;
{{ClickMapEntry|Name=Legece|Sector=8|XPos=226|YPos=126|XPosRel=682|YPosRel=192}}&lt;br /&gt;
{{ClickMapEntry|Name=Arenxeon|Sector=8|XPos=165|YPos=67|XPosRel=499|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Belaus|Sector=8|XPos=159|YPos=34|XPosRel=481|YPosRel=54}}&lt;br /&gt;
{{ClickMapEntry|Name=Resobi|Sector=8|XPos=241|YPos=72|XPosRel=727|YPosRel=111}}&lt;br /&gt;
{{ClickMapEntry|Name=Esinen|Sector=8|XPos=28|YPos=6|XPosRel=87|YPosRel=12}}&lt;br /&gt;
{{ClickMapEntry|Name=Uszave|Sector=8|XPos=137|YPos=210|XPosRel=415|YPosRel=318}}&lt;br /&gt;
{{ClickMapEntry|Name=Riedanen|Sector=8|XPos=99|YPos=118|XPosRel=300|YPosRel=180}}&lt;br /&gt;
{{ClickMapEntry|Name=Birare|Sector=8|XPos=18|YPos=59|XPosRel=57|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Inzaan_2|Sector=8|XPos=73|YPos=174|XPosRel=222|YPosRel=264}}&lt;br /&gt;
{{ClickMapEntry|Name=Inbein|Sector=8|XPos=236|YPos=27|XPosRel=712|YPosRel=43}}&lt;br /&gt;
{{ClickMapEntry|Name=Inceisa|Sector=8|XPos=172|YPos=204|XPosRel=520|YPosRel=309}}&lt;br /&gt;
{{ClickMapEntry|Name=Enonlebe|Sector=8|XPos=79|YPos=253|XPosRel=240|YPosRel=382}}&lt;br /&gt;
{{ClickMapEntry|Name=Raeserre|Sector=8|XPos=179|YPos=1|XPosRel=541|YPosRel=4}}&lt;br /&gt;
{{ClickMapEntry|Name=Ususoner|Sector=8|XPos=238|YPos=208|XPosRel=718|YPosRel=315}}&lt;br /&gt;
{{ClickMapEntry|Name=Oresrati|Sector=8|XPos=16|YPos=255|XPosRel=51|YPosRel=385}}&lt;br /&gt;
{{ClickMapEntry|Name=Rain|Sector=8|XPos=23|YPos=20|XPosRel=72|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Diquus|Sector=8|XPos=65|YPos=172|XPosRel=198|YPosRel=261}}&lt;br /&gt;
{{ClickMapEntry|Name=Enarines|Sector=8|XPos=79|YPos=200|XPosRel=240|YPosRel=303}}&lt;br /&gt;
{{ClickMapEntry|Name=Tile|Sector=8|XPos=201|YPos=12|XPosRel=607|YPosRel=21}}&lt;br /&gt;
{{ClickMapEntry|Name=Endiqu|Sector=8|XPos=121|YPos=33|XPosRel=366|YPosRel=52}}&lt;br /&gt;
{{ClickMapEntry|Name=Xetila|Sector=8|XPos=122|YPos=122|XPosRel=369|YPosRel=186}}&lt;br /&gt;
{{ClickMapEntry|Name=Texeare|Sector=8|XPos=111|YPos=245|XPosRel=336|YPosRel=370}}&lt;br /&gt;
{{ClickMapEntry|Name=Ontear|Sector=8|XPos=174|YPos=15|XPosRel=526|YPosRel=25}}&lt;br /&gt;
{{ClickMapEntry|Name=Aletius|Sector=8|XPos=39|YPos=234|XPosRel=120|YPosRel=354}}&lt;br /&gt;
{{ClickMapEntry|Name=Lelemaa|Sector=8|XPos=136|YPos=87|XPosRel=412|YPosRel=133}}&lt;br /&gt;
{{ClickMapEntry|Name=Tetige|Sector=8|XPos=79|YPos=107|XPosRel=240|YPosRel=163}}&lt;br /&gt;
{{ClickMapEntry|Name=Atmabe|Sector=8|XPos=54|YPos=67|XPosRel=165|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Reenaten|Sector=8|XPos=112|YPos=83|XPosRel=339|YPosRel=127}}&lt;br /&gt;
{{ClickMapEntry|Name=Laedon|Sector=8|XPos=50|YPos=81|XPosRel=153|YPosRel=124}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceenza|Sector=8|XPos=141|YPos=95|XPosRel=427|YPosRel=145}}&lt;br /&gt;
{{ClickMapEntry|Name=Enenonge|Sector=8|XPos=123|YPos=4|XPosRel=372|YPosRel=9}}&lt;br /&gt;
{{ClickMapEntry|Name=Laedat|Sector=8|XPos=67|YPos=95|XPosRel=204|YPosRel=145}}&lt;br /&gt;
{{ClickMapEntry|Name=Arance|Sector=8|XPos=223|YPos=145|XPosRel=673|YPosRel=220}}&lt;br /&gt;
{{ClickMapEntry|Name=Arqua|Sector=8|XPos=106|YPos=37|XPosRel=321|YPosRel=58}}&lt;br /&gt;
{{ClickMapEntry|Name=Islebeen|Sector=8|XPos=52|YPos=207|XPosRel=159|YPosRel=313}}&lt;br /&gt;
{{ClickMapEntry|Name=Biinceor|Sector=8|XPos=50|YPos=51|XPosRel=153|YPosRel=79}}&lt;br /&gt;
{{ClickMapEntry|Name=Maarabi|Sector=8|XPos=153|YPos=101|XPosRel=463|YPosRel=154}}&lt;br /&gt;
{{ClickMapEntry|Name=Letioned|Sector=8|XPos=198|YPos=47|XPosRel=598|YPosRel=73}}&lt;br /&gt;
{{ClickMapEntry|Name=Eresen|Sector=8|XPos=184|YPos=63|XPosRel=556|YPosRel=97}}&lt;br /&gt;
{{ClickMapEntry|Name=Soceorbi|Sector=8|XPos=107|YPos=18|XPosRel=324|YPosRel=30}}&lt;br /&gt;
{{ClickMapEntry|Name=Bibirale|Sector=8|XPos=6|YPos=57|XPosRel=21|YPosRel=88}}&lt;br /&gt;
{{ClickMapEntry|Name=Teenatle|Sector=8|XPos=33|YPos=20|XPosRel=102|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Biorle|Sector=8|XPos=1|YPos=17|XPosRel=6|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Anteed|Sector=8|XPos=192|YPos=97|XPosRel=580|YPosRel=148}}&lt;br /&gt;
{{ClickMapEntry|Name=Biabi|Sector=8|XPos=112|YPos=152|XPosRel=339|YPosRel=231}}&lt;br /&gt;
{{ClickMapEntry|Name=Atbele|Sector=8|XPos=155|YPos=134|XPosRel=469|YPosRel=204}}&lt;br /&gt;
{{ClickMapEntry|Name=Quxege|Sector=8|XPos=166|YPos=33|XPosRel=502|YPosRel=52}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceesari|Sector=8|XPos=160|YPos=163|XPosRel=484|YPosRel=247}}&lt;br /&gt;
{{ClickMapEntry|Name=Vezaorla|Sector=8|XPos=190|YPos=47|XPosRel=574|YPosRel=73}}&lt;br /&gt;
{{ClickMapEntry|Name=Belees|Sector=8|XPos=245|YPos=89|XPosRel=739|YPosRel=136}}&lt;br /&gt;
{{ClickMapEntry|Name=Arbetequ|Sector=8|XPos=222|YPos=105|XPosRel=670|YPosRel=160}}&lt;br /&gt;
{{ClickMapEntry|Name=Mageesti|Sector=8|XPos=26|YPos=124|XPosRel=81|YPosRel=189}}&lt;br /&gt;
{{ClickMapEntry|Name=Zabixedi|Sector=8|XPos=119|YPos=201|XPosRel=360|YPosRel=304}}&lt;br /&gt;
{{ClickMapEntry|Name=Laceus|Sector=8|XPos=141|YPos=130|XPosRel=427|YPosRel=198}}&lt;br /&gt;
{{ClickMapEntry|Name=Atisen|Sector=8|XPos=131|YPos=8|XPosRel=397|YPosRel=15}}&lt;br /&gt;
{{ClickMapEntry|Name=Axebe|Sector=8|XPos=224|YPos=178|XPosRel=676|YPosRel=270}}&lt;br /&gt;
{{ClickMapEntry|Name=Anrara|Sector=8|XPos=197|YPos=83|XPosRel=595|YPosRel=127}}&lt;br /&gt;
{{ClickMapEntry|Name=Dibiedin|Sector=8|XPos=100|YPos=20|XPosRel=303|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Maabile|Sector=8|XPos=12|YPos=56|XPosRel=39|YPosRel=87}}&lt;br /&gt;
{{ClickMapEntry|Name=Tioned|Sector=8|XPos=65|YPos=38|XPosRel=198|YPosRel=60}}&lt;br /&gt;
{{ClickMapEntry|Name=Sorezaqu|Sector=8|XPos=111|YPos=216|XPosRel=336|YPosRel=327}}&lt;br /&gt;
{{ClickMapEntry|Name=Didilaer|Sector=8|XPos=26|YPos=68|XPosRel=81|YPosRel=105}}&lt;br /&gt;
{{ClickMapEntry|Name=Bequri|Sector=8|XPos=144|YPos=85|XPosRel=436|YPosRel=130}}&lt;br /&gt;
{{ClickMapEntry|Name=Biatzate|Sector=8|XPos=44|YPos=222|XPosRel=135|YPosRel=336}}&lt;br /&gt;
{{ClickMapEntry|Name=Belabia|Sector=8|XPos=220|YPos=132|XPosRel=664|YPosRel=201}}&lt;br /&gt;
{{ClickMapEntry|Name=Maletees|Sector=8|XPos=239|YPos=102|XPosRel=721|YPosRel=156}}&lt;br /&gt;
{{ClickMapEntry|Name=Sodiri|Sector=8|XPos=201|YPos=220|XPosRel=607|YPosRel=333}}&lt;br /&gt;
{{ClickMapEntry|Name=Onatce|Sector=8|XPos=51|YPos=254|XPosRel=156|YPosRel=384}}&lt;br /&gt;
{{ClickMapEntry|Name=Diesdi|Sector=8|XPos=22|YPos=165|XPosRel=69|YPosRel=250}}&lt;br /&gt;
{{ClickMapEntry|Name=Qumaus|Sector=8|XPos=195|YPos=237|XPosRel=589|YPosRel=358}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeoresce|Sector=8|XPos=14|YPos=104|XPosRel=45|YPosRel=159}}&lt;br /&gt;
{{ClickMapEntry|Name=Ustiza|Sector=8|XPos=133|YPos=201|XPosRel=403|YPosRel=304}}&lt;br /&gt;
{{ClickMapEntry|Name=Esdi|Sector=8|XPos=196|YPos=164|XPosRel=592|YPosRel=249}}&lt;br /&gt;
{{ClickMapEntry|Name=Dienve|Sector=8|XPos=22|YPos=109|XPosRel=69|YPosRel=166}}&lt;br /&gt;
{{ClickMapEntry|Name=Ondizaat|Sector=8|XPos=86|YPos=182|XPosRel=261|YPosRel=276}}&lt;br /&gt;
{{ClickMapEntry|Name=Gequadi|Sector=8|XPos=241|YPos=164|XPosRel=727|YPosRel=249}}&lt;br /&gt;
{{ClickMapEntry|Name=Tilaanes|Sector=8|XPos=45|YPos=15|XPosRel=138|YPosRel=25}}&lt;br /&gt;
{{ClickMapEntry|Name=Qurixean|Sector=8|XPos=9|YPos=155|XPosRel=30|YPosRel=235}}&lt;br /&gt;
{{ClickMapEntry|Name=Tequenes|Sector=8|XPos=59|YPos=162|XPosRel=180|YPosRel=246}}&lt;br /&gt;
{{ClickMapEntry|Name=Veenen|Sector=8|XPos=233|YPos=18|XPosRel=703|YPosRel=30}}&lt;br /&gt;
{{ClickMapEntry|Name=Rear|Sector=8|XPos=59|YPos=146|XPosRel=180|YPosRel=222}}&lt;br /&gt;
{{ClickMapEntry|Name=Beorsora|Sector=8|XPos=90|YPos=74|XPosRel=273|YPosRel=114}}&lt;br /&gt;
{{ClickMapEntry|Name=Raaed|Sector=8|XPos=244|YPos=39|XPosRel=736|YPosRel=61}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaeded|Sector=8|XPos=124|YPos=184|XPosRel=375|YPosRel=279}}&lt;br /&gt;
{{ClickMapEntry|Name=Biraa|Sector=8|XPos=117|YPos=248|XPosRel=354|YPosRel=375}}&lt;br /&gt;
{{ClickMapEntry|Name=Reusleed|Sector=8|XPos=106|YPos=111|XPosRel=321|YPosRel=169}}&lt;br /&gt;
{{ClickMapEntry|Name=Geisor|Sector=8|XPos=88|YPos=97|XPosRel=267|YPosRel=148}}&lt;br /&gt;
{{ClickMapEntry|Name=Ergerexe|Sector=8|XPos=89|YPos=89|XPosRel=270|YPosRel=136}}&lt;br /&gt;
{{ClickMapEntry|Name=Labirior|Sector=8|XPos=2|YPos=46|XPosRel=9|YPosRel=72}}&lt;br /&gt;
{{ClickMapEntry|Name=Riladi|Sector=8|XPos=57|YPos=30|XPosRel=174|YPosRel=48}}&lt;br /&gt;
{{ClickMapEntry|Name=Zabeor|Sector=8|XPos=225|YPos=141|XPosRel=679|YPosRel=214}}&lt;br /&gt;
{{ClickMapEntry|Name=Inonin|Sector=8|XPos=210|YPos=217|XPosRel=634|YPosRel=328}}&lt;br /&gt;
{{ClickMapEntry|Name=Edzaar|Sector=8|XPos=172|YPos=63|XPosRel=520|YPosRel=97}}&lt;br /&gt;
{{ClickMapEntry|Name=Veusbi|Sector=8|XPos=103|YPos=138|XPosRel=312|YPosRel=210}}&lt;br /&gt;
{{ClickMapEntry|Name=Laxerive|Sector=8|XPos=166|YPos=6|XPosRel=502|YPosRel=12}}&lt;br /&gt;
{{ClickMapEntry|Name=Vemaed|Sector=8|XPos=214|YPos=62|XPosRel=646|YPosRel=96}}&lt;br /&gt;
{{ClickMapEntry|Name=Isaso|Sector=8|XPos=218|YPos=88|XPosRel=658|YPosRel=135}}&lt;br /&gt;
{{ClickMapEntry|Name=Inuses|Sector=8|XPos=52|YPos=7|XPosRel=159|YPosRel=13}}&lt;br /&gt;
{{ClickMapEntry|Name=Atoresra|Sector=8|XPos=94|YPos=73|XPosRel=285|YPosRel=112}}&lt;br /&gt;
{{ClickMapEntry|Name=Edtizabe|Sector=8|XPos=244|YPos=169|XPosRel=736|YPosRel=256}}&lt;br /&gt;
{{ClickMapEntry|Name=Asoarle|Sector=8|XPos=147|YPos=196|XPosRel=445|YPosRel=297}}&lt;br /&gt;
{{ClickMapEntry|Name=Enrienge|Sector=8|XPos=129|YPos=10|XPosRel=391|YPosRel=18}}&lt;br /&gt;
{{ClickMapEntry|Name=Bees|Sector=8|XPos=99|YPos=242|XPosRel=300|YPosRel=366}}&lt;br /&gt;
{{ClickMapEntry|Name=Esusale|Sector=8|XPos=94|YPos=96|XPosRel=285|YPosRel=147}}&lt;br /&gt;
{{ClickMapEntry|Name=Ormabiin|Sector=8|XPos=129|YPos=239|XPosRel=391|YPosRel=361}}&lt;br /&gt;
{{ClickMapEntry|Name=Riattein|Sector=8|XPos=204|YPos=38|XPosRel=616|YPosRel=60}}&lt;br /&gt;
{{ClickMapEntry|Name=Orleso|Sector=8|XPos=172|YPos=188|XPosRel=520|YPosRel=285}}&lt;br /&gt;
{{ClickMapEntry|Name=Intiso|Sector=8|XPos=227|YPos=199|XPosRel=685|YPosRel=301}}&lt;br /&gt;
{{ClickMapFooter}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- This /div should be part of ClickMapFooter, but the MediaWiki 1.9.3 is too old. --&amp;gt;&lt;br /&gt;
== Systems in Galaxy Sector 8 ==&lt;br /&gt;
*A [[Sector8/Aanra|Aanra]] [[Sector8/Aarzari|Aarzari]] [[Sector8/Aatdire|Aatdire]] [[Sector8/Aditira|Aditira]] [[Sector8/Aedis|Aedis]] [[Sector8/Aletius|Aletius]] [[Sector8/Aneded|Aneded]] [[Sector8/Anedin|Anedin]] [[Sector8/Anesbi|Anesbi]] [[Sector8/Anrara|Anrara]] [[Sector8/Anrasoti|Anrasoti]] [[Sector8/Anri|Anri]] [[Sector8/Anteed|Anteed]] [[Sector8/Arance|Arance]] [[Sector8/Arbetequ|Arbetequ]] [[Sector8/Arenxeon|Arenxeon]] [[Sector8/Areran|Areran]] [[Sector8/Aresgeti|Aresgeti]] [[Sector8/Arlale|Arlale]] [[Sector8/Arqua|Arqua]] [[Sector8/Arqubi|Arqubi]] [[Sector8/Artelaan|Artelaan]] [[Sector8/Arustea|Arustea]] [[Sector8/Asoarle|Asoarle]] [[Sector8/Atanon|Atanon]] [[Sector8/Atbea|Atbea]] [[Sector8/Atbele|Atbele]] [[Sector8/Atisen|Atisen]] [[Sector8/Atmabe|Atmabe]] [[Sector8/Atmala|Atmala]] [[Sector8/Atoresra|Atoresra]] [[Sector8/Axebe|Axebe]]&lt;br /&gt;
*B [[Sector8/Beanle|Beanle]] [[Sector8/Bebima|Bebima]] [[Sector8/Bedice|Bedice]] [[Sector8/Bees|Bees]] [[Sector8/Belabia|Belabia]] [[Sector8/Belaus|Belaus]] [[Sector8/Belebi|Belebi]] [[Sector8/Belees|Belees]] [[Sector8/Beorsora|Beorsora]] [[Sector8/Bequri|Bequri]] [[Sector8/Biabi|Biabi]] [[Sector8/Bianbies|Bianbies]] [[Sector8/Biatge|Biatge]] [[Sector8/Biatzate|Biatzate]] [[Sector8/Bibirale|Bibirale]] [[Sector8/Biered|Biered]] [[Sector8/Bigexein|Bigexein]] [[Sector8/Biinceor|Biinceor]] [[Sector8/Biis|Biis]] [[Sector8/Biorle|Biorle]] [[Sector8/Biraa|Biraa]] [[Sector8/Birare|Birare]]&lt;br /&gt;
*C [[Sector8/Ceanquan|Ceanquan]] [[Sector8/Ceanve|Ceanve]] [[Sector8/Cecees|Cecees]] [[Sector8/Ceened|Ceened]] [[Sector8/Ceenti|Ceenti]] [[Sector8/Ceenza|Ceenza]] [[Sector8/Ceesari|Ceesari]] [[Sector8/Ceraerar|Ceraerar]] [[Sector8/Cetiat|Cetiat]]&lt;br /&gt;
*D [[Sector8/Dibiedin|Dibiedin]] [[Sector8/Didilaer|Didilaer]] [[Sector8/Dienve|Dienve]] [[Sector8/Dieranor|Dieranor]] [[Sector8/Diesdi|Diesdi]] [[Sector8/Diquus|Diquus]] [[Sector8/Diriledi|Diriledi]] [[Sector8/Dirima|Dirima]] [[Sector8/Ditegere|Ditegere]]&lt;br /&gt;
*E [[Sector8/Edandi|Edandi]] [[Sector8/Edsoan|Edsoan]] [[Sector8/Edtetiin|Edtetiin]] [[Sector8/Edtizabe|Edtizabe]] [[Sector8/Edzaar|Edzaar]] [[Sector8/Enarines|Enarines]] [[Sector8/Enbeza|Enbeza]] [[Sector8/Endiqu|Endiqu]] [[Sector8/Enedge|Enedge]] [[Sector8/Enenonge|Enenonge]] [[Sector8/Enerqu|Enerqu]] [[Sector8/Enonlebe|Enonlebe]] [[Sector8/Enrienge|Enrienge]] [[Sector8/Enustien|Enustien]] [[Sector8/Enxeleti|Enxeleti]] [[Sector8/Ererso|Ererso]] [[Sector8/Eres|Eres]] [[Sector8/Eresen|Eresen]] [[Sector8/Eresorbe|Eresorbe]] [[Sector8/Ergerexe|Ergerexe]] [[Sector8/Erlabeor|Erlabeor]] [[Sector8/Ertebira|Ertebira]] [[Sector8/Erteenon|Erteenon]] [[Sector8/Erzara|Erzara]] [[Sector8/Esdi|Esdi]] [[Sector8/Esinen|Esinen]] [[Sector8/Esmara|Esmara]] [[Sector8/Esusale|Esusale]] [[Sector8/Esusge|Esusge]] [[Sector8/Esusla|Esusla]] [[Sector8/Esveti|Esveti]] [[Sector8/Esxear|Esxear]]&lt;br /&gt;
*G [[Sector8/Geale|Geale]] [[Sector8/Geatiar|Geatiar]] [[Sector8/Geen|Geen]] [[Sector8/Geintiso|Geintiso]] [[Sector8/Geisor|Geisor]] [[Sector8/Gequadi|Gequadi]] [[Sector8/Getiusza|Getiusza]] [[Sector8/Gexeala|Gexeala]] [[Sector8/Gexequon|Gexequon]]&lt;br /&gt;
*I [[Sector8/Inbein|Inbein]] [[Sector8/Inceisa|Inceisa]] [[Sector8/Ininlequ|Ininlequ]] [[Sector8/Inisbi|Inisbi]] [[Sector8/Inonin|Inonin]] [[Sector8/Inorle|Inorle]] [[Sector8/Intearbe|Intearbe]] [[Sector8/Intiso|Intiso]] [[Sector8/Inuses|Inuses]] [[Sector8/Inusge|Inusge]] [[Sector8/Inzaan_1|Inzaan]] [[Sector8/Inzaan_2|Inzaan]] [[Sector8/Isaso|Isaso]] [[Sector8/Isdidied|Isdidied]] [[Sector8/Iseror|Iseror]] [[Sector8/Islebeen|Islebeen]] [[Sector8/Isri|Isri]] [[Sector8/Istixeti|Istixeti]] [[Sector8/Isxein|Isxein]]&lt;br /&gt;
*L [[Sector8/Laace|Laace]] [[Sector8/Labirior|Labirior]] [[Sector8/Laceus|Laceus]] [[Sector8/Laedat|Laedat]] [[Sector8/Laedon|Laedon]] [[Sector8/Laorlaza|Laorlaza]] [[Sector8/Laxerive|Laxerive]] [[Sector8/Laxesori|Laxesori]] [[Sector8/Leatanre|Leatanre]] [[Sector8/Leater|Leater]] [[Sector8/Leesusen|Leesusen]] [[Sector8/Legean|Legean]] [[Sector8/Legece|Legece]] [[Sector8/Lelemaa|Lelemaa]] [[Sector8/Lequatdi|Lequatdi]] [[Sector8/Letioned|Letioned]]&lt;br /&gt;
*M [[Sector8/Maabile|Maabile]] [[Sector8/Maana|Maana]] [[Sector8/Maantege|Maantege]] [[Sector8/Maarabi|Maarabi]] [[Sector8/Maatxeri|Maatxeri]] [[Sector8/Maenes|Maenes]] [[Sector8/Mageesti|Mageesti]] [[Sector8/Maisrais|Maisrais]] [[Sector8/Maletees|Maletees]] [[Sector8/Mausdile|Mausdile]]&lt;br /&gt;
*O [[Sector8/Onanqu|Onanqu]] [[Sector8/Onatce|Onatce]] [[Sector8/Ondizaat|Ondizaat]] [[Sector8/Onisain|Onisain]] [[Sector8/Ontear|Ontear]] [[Sector8/Onusra|Onusra]] [[Sector8/Onveat|Onveat]] [[Sector8/Orbira|Orbira]] [[Sector8/Orcece|Orcece]] [[Sector8/Oredaris|Oredaris]] [[Sector8/Oredrier|Oredrier]] [[Sector8/Oresrati|Oresrati]] [[Sector8/Oresreat|Oresreat]] [[Sector8/Orlaaror|Orlaaror]] [[Sector8/Orlatein|Orlatein]] [[Sector8/Orleso|Orleso]] [[Sector8/Ormabiin|Ormabiin]] [[Sector8/Orqure|Orqure]] [[Sector8/Orus|Orus]]&lt;br /&gt;
*Q [[Sector8/Quedbiqu|Quedbiqu]] [[Sector8/Querbeis|Querbeis]] [[Sector8/Qumaus|Qumaus]] [[Sector8/Qurixean|Qurixean]] [[Sector8/Quxege|Quxege]]&lt;br /&gt;
*R [[Sector8/Raaed|Raaed]] [[Sector8/Raaran|Raaran]] [[Sector8/Raeserre|Raeserre]] [[Sector8/Rain|Rain]] [[Sector8/Ramaa|Ramaa]] [[Sector8/Rear|Rear]] [[Sector8/Rebite|Rebite]] [[Sector8/Reenaten|Reenaten]] [[Sector8/Reisorza|Reisorza]] [[Sector8/Releleat|Releleat]] [[Sector8/Reonar|Reonar]] [[Sector8/Resobi|Resobi]] [[Sector8/Rete|Rete]] [[Sector8/Reusleed|Reusleed]] [[Sector8/Revequ|Revequ]] [[Sector8/Riarquge|Riarquge]] [[Sector8/Riattein|Riattein]] [[Sector8/Riedanen|Riedanen]] [[Sector8/Riladi|Riladi]]&lt;br /&gt;
*S [[Sector8/Soaxe|Soaxe]] [[Sector8/Soceorbi|Soceorbi]] [[Sector8/Sodiri|Sodiri]] [[Sector8/Soisqu|Soisqu]] [[Sector8/Soladiar|Soladiar]] [[Sector8/Sorezaqu|Sorezaqu]]&lt;br /&gt;
*T [[Sector8/Teat|Teat]] [[Sector8/Tebienla|Tebienla]] [[Sector8/Teenatle|Teenatle]] [[Sector8/Teescear|Teescear]] [[Sector8/Tequenes|Tequenes]] [[Sector8/Tetete|Tetete]] [[Sector8/Teteus|Teteus]] [[Sector8/Tetige|Tetige]] [[Sector8/Tevebebi|Tevebebi]] [[Sector8/Texeare|Texeare]] [[Sector8/Tiatisbi|Tiatisbi]] [[Sector8/Tiatza|Tiatza]] [[Sector8/Tibiri|Tibiri]] [[Sector8/Tilaanes|Tilaanes]] [[Sector8/Tile|Tile]] [[Sector8/Tioned|Tioned]] [[Sector8/Tiqubied|Tiqubied]] [[Sector8/Tirige|Tirige]] [[Sector8/Titiridi|Titiridi]]&lt;br /&gt;
*U [[Sector8/Usmaedin|Usmaedin]] [[Sector8/Usreinxe|Usreinxe]] [[Sector8/Usrelain|Usrelain]] [[Sector8/Ustiza|Ustiza]] [[Sector8/Ususoner|Ususoner]] [[Sector8/Uszasora|Uszasora]] [[Sector8/Uszave|Uszave]]&lt;br /&gt;
*V [[Sector8/Vebixe|Vebixe]] [[Sector8/Veenen|Veenen]] [[Sector8/Veerbidi|Veerbidi]] [[Sector8/Vegedius|Vegedius]] [[Sector8/Vemaed|Vemaed]] [[Sector8/Veusbi|Veusbi]] [[Sector8/Vezaorla|Vezaorla]]&lt;br /&gt;
*X [[Sector8/Xebeis|Xebeis]] [[Sector8/Xeceon|Xeceon]] [[Sector8/Xeerin|Xeerin]] [[Sector8/Xeoresce|Xeoresce]] [[Sector8/Xetila|Xetila]] [[Sector8/Xexean|Xexean]] [[Sector8/Xezaxees|Xezaxees]]&lt;br /&gt;
*Z [[Sector8/Zaatquat|Zaatquat]] [[Sector8/Zabeor|Zabeor]] [[Sector8/Zabixedi|Zabixedi]] [[Sector8/Zaeded|Zaeded]] [[Sector8/Zainat|Zainat]] [[Sector8/Zaonrixe|Zaonrixe]] [[Sector8/Zarila|Zarila]] [[Sector8/Zariorte|Zariorte]] [[Sector8/Zaveusge|Zaveusge]]&lt;br /&gt;
&lt;br /&gt;
See [[Sector8/Systems in Galaxy Sector 8|Systems in Galaxy Sector 8]] for a detailed list.&lt;br /&gt;
&lt;br /&gt;
== OXPs ==&lt;br /&gt;
* The [[Galactic Navy]] has fourteen Sector Command Stations in Galaxy Sector 8: [[Sector8/Titiridi|Titiridi]] ([[Sector8/Navy Command Station 1|SecCom 1]]), [[Sector8/Xeoresce|Xeoresce]] ([[Sector8/Navy Command Station 2|SecCom 2]]), [[Sector8/Leater|Leater]] ([[Sector8/Navy Command Station 3|SecCom 3]]), [[Sector8/Atmabe|Atmabe]] ([[Sector8/Navy Command Station 4|SecCom 4]]), [[Sector8/Inzaan|Inzaan]] ([[Sector8/Navy Command Station 5|SecCom 5]]), [[Sector8/Esusale|Esusale]] ([[Sector8/Navy Command Station 6|SecCom 6]]), [[Sector8/Inisbi|Inisbi]] ([[Sector8/Navy Command Station 7|SecCom 7]]), [[Sector8/Leesusen|Leesusen]] ([[Sector8/Navy Command Station 8|SecCom 8]]), [[Sector8/Maarabi|Maarabi]] ([[Sector8/Navy Command Station 9|SecCom 9]]), [[Sector8/Teteus|Teteus]] ([[Sector8/Navy Command Station 10|SecCom 10]]), [[Sector8/Belabia|Belabia]] ([[Sector8/Navy Command Station 11|SecCom 11]]), [[Sector8/Vebixe|Vebixe]] ([[Sector8/Navy Command Station 12|SecCom 12]]), [[Sector8/Laorlaza|Laorlaza]] ([[Sector8/Navy Command Station 13|SecCom 13]]) and [[Sector8/Getiusza|Getiusza]] ([[Sector8/Navy Command Station 14|SecCom 14]]).&lt;br /&gt;
* DGill's (4 OXP suite) version of the [[Feudal States]] adds '''The Royal Houses of Xrata''', a group of twelve feudal systems across Galaxy Sector 8.&lt;br /&gt;
* [[Black Monk Monastery|Bank of the Black Monks]]: Deal with the loan sharks. Begins when docked at any Black Monk Monastary.&lt;br /&gt;
* [[Escort Contracts OXP|Escort Contracts OXP]]: Allow players to enter into short-term escort contracts with NPC lone wolf traders.&lt;br /&gt;
* [[Galactic Navy OXP|Galactic Navy]]: The Galactic Navy needs you. Begins when docked at any SecCom Station.&lt;br /&gt;
* [[Illegal Goods Tweak OXP|Illegal Goods Tweak OXP]]: Short reward missions offered by rescued ex-slaves.&lt;br /&gt;
* [[Iron Raven|Iron Raven]]: Multi-stage mission to investigate a dangerous conspiracy on behalf of GalCop High Command.&lt;br /&gt;
* [[Military Fiasco]]: A mission for the Navy available to a Commander with more than 1000 kills.&lt;br /&gt;
* [[Oo-Haul|Oo-haul Escort Missions]]: Escort a hauler safely to its destination. Must be docked at a Constore. [[Your Ad Here!]] required.&lt;br /&gt;
* [[Random Hits OXP|Random Hits]]: Get contracts for bounty hunting at any Seedy Space Bar. Special Missions for successful hunters.&lt;br /&gt;
* [[RRS_Group|Rescue Stations]]: Rescue and recovery missions for contract pilots.&lt;br /&gt;
* [[Thargoid Wars|Thargoid Wars]]: War with the Thargoids intensifies featuring new attack and defense missions.&lt;br /&gt;
* [[UPS Courier|UPS Courier Company]]: Take goods or documents from system to system and be awarded with combat missions.&lt;br /&gt;
* [[Vector OXP|Vector]]: Special feature - 'Richmans World' - a unusual mission type. [[Snoopers|Snoopers]] required.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fiction ==&lt;br /&gt;
[[File:Map G8 (ClymAngus).png|thumb|right|800px|ClymAngus's Vector Map of G8 (Xrata)]]&lt;br /&gt;
=== The Vector Maps ===&lt;br /&gt;
This excellent piece of digital art adds routes and regions to every Galaxy Sector. [http://www.crimsonforge.co.uk/cloister/OOmap_G8.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G8.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G8.pdf US Mirror]&lt;br /&gt;
&lt;br /&gt;
The Crystaline Desolation's New Genesis War is referenced here: &amp;quot;a gene-menace defeated through the unlikely unification of celltec and nano-mechanics&amp;quot; by [[Udian Shulth]].&lt;br /&gt;
&lt;br /&gt;
=== Routes and Regions ===&lt;br /&gt;
In Sector 8, there are 5 major Spaceways:&lt;br /&gt;
* The [[Sector8/Spaceway L1 &amp;quot;The Nemorican Arc&amp;quot; (Route)|Spaceway L1 &amp;quot;The Nemorican Arc&amp;quot;]] runs from [[Sector8/Releleat|Releleat]] to [[Sector8/Ceanquan|Ceanquan]]&lt;br /&gt;
* The [[Sector8/Spaceway L2 (Route)|Spaceway L2]] runs from [[Sector8/Onatce|Onatce]] to [[Sector8/Getiusza|Getiusza]]&lt;br /&gt;
* The [[Sector8/Centreward Flight (Route)|Centreward Flight]] runs from [[Sector8/Enerqu|Enerqu]] to [[Sector8/Ormabiin|Ormabiin]]&lt;br /&gt;
* [[Sector8/The Hitachi Trade Annex (Route)|The Hitachi Trade Annex]] runs from [[Sector8/Inisbi|Inisbi]] to [[Sector8/Esmara|Esmara]]&lt;br /&gt;
* The [[Sector8/Rimward Decamp (Route)|Rimward Decamp]] runs from [[Sector8/Bianbies|Bianbies]] to [[Sector8/Esmara|Esmara]]&lt;br /&gt;
&lt;br /&gt;
There are also 6 established regions in Sector 8:&lt;br /&gt;
* [[Sector8/Beggars' Loop (Region)|Beggars' Loop]]&lt;br /&gt;
* [[Sector8/The Ladle (Region)|The Ladle]]&lt;br /&gt;
* [[Sector8/The Far Arm Star Cluster (Region)|The Far Arm Star Cluster]]&lt;br /&gt;
* [[Sector8/The Riven Hitachi Senate (Region)|The Riven Hitachi Senate]]&lt;br /&gt;
* [[Sector8/Galcenter G8 (Region)|Galcenter G8]]&lt;br /&gt;
* [[Sector8/The Unified Tech-Core (Region)|The Unified Tech-Core]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[The Eight]] for a disquisition on the 8 galaxies&lt;br /&gt;
*See [[Sector8/Systems in Galaxy Sector 8|Systems in Galaxy Sector 8]] for a more detailed list.&lt;br /&gt;
*See [[Oolite planet list/Galaxy 8]] for charts mapping government type against Tech Level, economy &amp;amp; number of systems within 7ly.&lt;br /&gt;
*[[Maps]] for a detailed list of these&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Sector7/Index&amp;diff=90123</id>
		<title>Sector7/Index</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Sector7/Index&amp;diff=90123"/>
		<updated>2026-08-07T11:44:15Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added Feudal States OXP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GalaxyGuide/IndexList}}&lt;br /&gt;
&lt;br /&gt;
== Overview over Galaxy Sector 7 ==&lt;br /&gt;
&amp;lt;!-- This div should be part of ClickMapHeader, but the MediaWiki 1.9.3 is too old. --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;{{ClickMapHeader|Sector=7|Image=Sector7_OverViewMap.png}}&lt;br /&gt;
{{ClickMapEntry|Name=Dizaen|Sector=7|XPos=128|YPos=150|XPosRel=388|YPosRel=228}}&lt;br /&gt;
{{ClickMapEntry|Name=Anenen|Sector=7|XPos=100|YPos=114|XPosRel=303|YPosRel=174}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceor|Sector=7|XPos=128|YPos=242|XPosRel=388|YPosRel=366}}&lt;br /&gt;
{{ClickMapEntry|Name=Ededer|Sector=7|XPos=255|YPos=64|XPosRel=769|YPosRel=99}}&lt;br /&gt;
{{ClickMapEntry|Name=Artesore|Sector=7|XPos=225|YPos=240|XPosRel=679|YPosRel=363}}&lt;br /&gt;
{{ClickMapEntry|Name=Enususge|Sector=7|XPos=46|YPos=135|XPosRel=141|YPosRel=205}}&lt;br /&gt;
{{ClickMapEntry|Name=Raedre|Sector=7|XPos=99|YPos=200|XPosRel=300|YPosRel=303}}&lt;br /&gt;
{{ClickMapEntry|Name=Sorezaan|Sector=7|XPos=14|YPos=56|XPosRel=45|YPosRel=87}}&lt;br /&gt;
{{ClickMapEntry|Name=Aaored|Sector=7|XPos=187|YPos=228|XPosRel=565|YPosRel=345}}&lt;br /&gt;
{{ClickMapEntry|Name=Lebedixe|Sector=7|XPos=184|YPos=185|XPosRel=556|YPosRel=280}}&lt;br /&gt;
{{ClickMapEntry|Name=Gebequat|Sector=7|XPos=162|YPos=173|XPosRel=490|YPosRel=262}}&lt;br /&gt;
{{ClickMapEntry|Name=Onaran|Sector=7|XPos=81|YPos=250|XPosRel=246|YPosRel=378}}&lt;br /&gt;
{{ClickMapEntry|Name=Inre|Sector=7|XPos=101|YPos=219|XPosRel=306|YPosRel=331}}&lt;br /&gt;
{{ClickMapEntry|Name=Eszausve|Sector=7|XPos=154|YPos=0|XPosRel=466|YPosRel=3}}&lt;br /&gt;
{{ClickMapEntry|Name=Gexean|Sector=7|XPos=246|YPos=72|XPosRel=742|YPosRel=111}}&lt;br /&gt;
{{ClickMapEntry|Name=Onteised|Sector=7|XPos=1|YPos=251|XPosRel=6|YPosRel=379}}&lt;br /&gt;
{{ClickMapEntry|Name=Enusbe|Sector=7|XPos=120|YPos=61|XPosRel=363|YPosRel=94}}&lt;br /&gt;
{{ClickMapEntry|Name=Esarxeve|Sector=7|XPos=45|YPos=211|XPosRel=138|YPosRel=319}}&lt;br /&gt;
{{ClickMapEntry|Name=Geteve|Sector=7|XPos=86|YPos=66|XPosRel=261|YPosRel=102}}&lt;br /&gt;
{{ClickMapEntry|Name=Sobeer|Sector=7|XPos=21|YPos=54|XPosRel=66|YPosRel=84}}&lt;br /&gt;
{{ClickMapEntry|Name=Erdiares|Sector=7|XPos=204|YPos=112|XPosRel=616|YPosRel=171}}&lt;br /&gt;
{{ClickMapEntry|Name=Xevexean|Sector=7|XPos=137|YPos=42|XPosRel=415|YPosRel=66}}&lt;br /&gt;
{{ClickMapEntry|Name=Raatbi|Sector=7|XPos=251|YPos=66|XPosRel=757|YPosRel=102}}&lt;br /&gt;
{{ClickMapEntry|Name=Edoned|Sector=7|XPos=70|YPos=32|XPosRel=213|YPosRel=51}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiarice|Sector=7|XPos=120|YPos=223|XPosRel=363|YPosRel=337}}&lt;br /&gt;
{{ClickMapEntry|Name=Betierte|Sector=7|XPos=133|YPos=126|XPosRel=403|YPosRel=192}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceenrama|Sector=7|XPos=92|YPos=240|XPosRel=279|YPosRel=363}}&lt;br /&gt;
{{ClickMapEntry|Name=Enener|Sector=7|XPos=11|YPos=180|XPosRel=36|YPosRel=273}}&lt;br /&gt;
{{ClickMapEntry|Name=Veanso|Sector=7|XPos=212|YPos=240|XPosRel=640|YPosRel=363}}&lt;br /&gt;
{{ClickMapEntry|Name=Isriveen|Sector=7|XPos=186|YPos=199|XPosRel=562|YPosRel=301}}&lt;br /&gt;
{{ClickMapEntry|Name=Bireso|Sector=7|XPos=50|YPos=246|XPosRel=153|YPosRel=372}}&lt;br /&gt;
{{ClickMapEntry|Name=Raormaor|Sector=7|XPos=157|YPos=103|XPosRel=475|YPosRel=157}}&lt;br /&gt;
{{ClickMapEntry|Name=Rigete|Sector=7|XPos=121|YPos=11|XPosRel=366|YPosRel=19}}&lt;br /&gt;
{{ClickMapEntry|Name=Onanorra|Sector=7|XPos=127|YPos=124|XPosRel=384|YPosRel=189}}&lt;br /&gt;
{{ClickMapEntry|Name=Usvera|Sector=7|XPos=116|YPos=249|XPosRel=351|YPosRel=376}}&lt;br /&gt;
{{ClickMapEntry|Name=Ribior|Sector=7|XPos=243|YPos=52|XPosRel=733|YPosRel=81}}&lt;br /&gt;
{{ClickMapEntry|Name=Ontilain|Sector=7|XPos=63|YPos=153|XPosRel=192|YPosRel=232}}&lt;br /&gt;
{{ClickMapEntry|Name=Qutegequ|Sector=7|XPos=236|YPos=149|XPosRel=712|YPosRel=226}}&lt;br /&gt;
{{ClickMapEntry|Name=Anquerbi|Sector=7|XPos=90|YPos=163|XPosRel=273|YPosRel=247}}&lt;br /&gt;
{{ClickMapEntry|Name=Ateslete|Sector=7|XPos=198|YPos=144|XPosRel=598|YPosRel=219}}&lt;br /&gt;
{{ClickMapEntry|Name=Usbimaqu|Sector=7|XPos=60|YPos=1|XPosRel=183|YPosRel=4}}&lt;br /&gt;
{{ClickMapEntry|Name=Dirateri|Sector=7|XPos=218|YPos=139|XPosRel=658|YPosRel=211}}&lt;br /&gt;
{{ClickMapEntry|Name=Reesvere|Sector=7|XPos=94|YPos=156|XPosRel=285|YPosRel=237}}&lt;br /&gt;
{{ClickMapEntry|Name=Diatin|Sector=7|XPos=142|YPos=118|XPosRel=430|YPosRel=180}}&lt;br /&gt;
{{ClickMapEntry|Name=Esleve|Sector=7|XPos=203|YPos=172|XPosRel=613|YPosRel=261}}&lt;br /&gt;
{{ClickMapEntry|Name=Orermala|Sector=7|XPos=225|YPos=86|XPosRel=679|YPosRel=132}}&lt;br /&gt;
{{ClickMapEntry|Name=Enbean|Sector=7|XPos=53|YPos=139|XPosRel=162|YPosRel=211}}&lt;br /&gt;
{{ClickMapEntry|Name=Atrexexe|Sector=7|XPos=129|YPos=91|XPosRel=391|YPosRel=139}}&lt;br /&gt;
{{ClickMapEntry|Name=Betidi|Sector=7|XPos=130|YPos=2|XPosRel=394|YPosRel=6}}&lt;br /&gt;
{{ClickMapEntry|Name=Isgeoror|Sector=7|XPos=88|YPos=109|XPosRel=267|YPosRel=166}}&lt;br /&gt;
{{ClickMapEntry|Name=Veesqu|Sector=7|XPos=217|YPos=25|XPosRel=655|YPosRel=40}}&lt;br /&gt;
{{ClickMapEntry|Name=Isenes|Sector=7|XPos=154|YPos=58|XPosRel=466|YPosRel=90}}&lt;br /&gt;
{{ClickMapEntry|Name=Laorusti|Sector=7|XPos=57|YPos=105|XPosRel=174|YPosRel=160}}&lt;br /&gt;
{{ClickMapEntry|Name=Quandixe|Sector=7|XPos=87|YPos=200|XPosRel=264|YPosRel=303}}&lt;br /&gt;
{{ClickMapEntry|Name=Maanusre|Sector=7|XPos=130|YPos=237|XPosRel=394|YPosRel=358}}&lt;br /&gt;
{{ClickMapEntry|Name=Enarines|Sector=7|XPos=142|YPos=136|XPosRel=430|YPosRel=207}}&lt;br /&gt;
{{ClickMapEntry|Name=Veed|Sector=7|XPos=9|YPos=76|XPosRel=30|YPosRel=117}}&lt;br /&gt;
{{ClickMapEntry|Name=Ausaso|Sector=7|XPos=184|YPos=224|XPosRel=556|YPosRel=339}}&lt;br /&gt;
{{ClickMapEntry|Name=Eded|Sector=7|XPos=167|YPos=175|XPosRel=505|YPosRel=265}}&lt;br /&gt;
{{ClickMapEntry|Name=Erusat|Sector=7|XPos=216|YPos=64|XPosRel=652|YPosRel=99}}&lt;br /&gt;
{{ClickMapEntry|Name=Geondi|Sector=7|XPos=74|YPos=17|XPosRel=225|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Isanesle|Sector=7|XPos=16|YPos=173|XPosRel=51|YPosRel=262}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceerti|Sector=7|XPos=1|YPos=9|XPosRel=6|YPosRel=16}}&lt;br /&gt;
{{ClickMapEntry|Name=Vetebe|Sector=7|XPos=174|YPos=215|XPosRel=526|YPosRel=325}}&lt;br /&gt;
{{ClickMapEntry|Name=Agebi|Sector=7|XPos=147|YPos=32|XPosRel=445|YPosRel=51}}&lt;br /&gt;
{{ClickMapEntry|Name=Gegeso|Sector=7|XPos=185|YPos=166|XPosRel=559|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Maraus|Sector=7|XPos=135|YPos=160|XPosRel=409|YPosRel=243}}&lt;br /&gt;
{{ClickMapEntry|Name=Zalaxe|Sector=7|XPos=8|YPos=72|XPosRel=27|YPosRel=111}}&lt;br /&gt;
{{ClickMapEntry|Name=Rabegema|Sector=7|XPos=188|YPos=226|XPosRel=568|YPosRel=342}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeatrien|Sector=7|XPos=203|YPos=195|XPosRel=613|YPosRel=295}}&lt;br /&gt;
{{ClickMapEntry|Name=Xebeuson|Sector=7|XPos=114|YPos=30|XPosRel=345|YPosRel=48}}&lt;br /&gt;
{{ClickMapEntry|Name=Angeriri|Sector=7|XPos=159|YPos=8|XPosRel=481|YPosRel=15}}&lt;br /&gt;
{{ClickMapEntry|Name=Leriisis|Sector=7|XPos=222|YPos=190|XPosRel=670|YPosRel=288}}&lt;br /&gt;
{{ClickMapEntry|Name=Orramaor|Sector=7|XPos=29|YPos=125|XPosRel=90|YPosRel=190}}&lt;br /&gt;
{{ClickMapEntry|Name=Orrienar|Sector=7|XPos=57|YPos=43|XPosRel=174|YPosRel=67}}&lt;br /&gt;
{{ClickMapEntry|Name=Antiis|Sector=7|XPos=234|YPos=18|XPosRel=706|YPosRel=30}}&lt;br /&gt;
{{ClickMapEntry|Name=Bilain|Sector=7|XPos=80|YPos=29|XPosRel=243|YPosRel=46}}&lt;br /&gt;
{{ClickMapEntry|Name=Esisrela|Sector=7|XPos=71|YPos=204|XPosRel=216|YPosRel=309}}&lt;br /&gt;
{{ClickMapEntry|Name=Lecean|Sector=7|XPos=149|YPos=110|XPosRel=451|YPosRel=168}}&lt;br /&gt;
{{ClickMapEntry|Name=Gelesoma|Sector=7|XPos=34|YPos=219|XPosRel=105|YPosRel=331}}&lt;br /&gt;
{{ClickMapEntry|Name=Rasoso|Sector=7|XPos=171|YPos=103|XPosRel=517|YPosRel=157}}&lt;br /&gt;
{{ClickMapEntry|Name=Ataneris|Sector=7|XPos=162|YPos=39|XPosRel=490|YPosRel=61}}&lt;br /&gt;
{{ClickMapEntry|Name=Estiri|Sector=7|XPos=125|YPos=144|XPosRel=378|YPosRel=219}}&lt;br /&gt;
{{ClickMapEntry|Name=Beerxe|Sector=7|XPos=62|YPos=94|XPosRel=189|YPosRel=144}}&lt;br /&gt;
{{ClickMapEntry|Name=Quzabibi|Sector=7|XPos=199|YPos=2|XPosRel=601|YPosRel=6}}&lt;br /&gt;
{{ClickMapEntry|Name=Enonedar|Sector=7|XPos=70|YPos=134|XPosRel=213|YPosRel=204}}&lt;br /&gt;
{{ClickMapEntry|Name=Xezaerti|Sector=7|XPos=42|YPos=56|XPosRel=129|YPosRel=87}}&lt;br /&gt;
{{ClickMapEntry|Name=Inlaoran|Sector=7|XPos=247|YPos=16|XPosRel=745|YPosRel=27}}&lt;br /&gt;
{{ClickMapEntry|Name=Esrixear|Sector=7|XPos=187|YPos=89|XPosRel=565|YPosRel=136}}&lt;br /&gt;
{{ClickMapEntry|Name=Maedrebe|Sector=7|XPos=10|YPos=98|XPosRel=33|YPosRel=150}}&lt;br /&gt;
{{ClickMapEntry|Name=Anisinza|Sector=7|XPos=19|YPos=14|XPosRel=60|YPosRel=24}}&lt;br /&gt;
{{ClickMapEntry|Name=Reonen|Sector=7|XPos=196|YPos=236|XPosRel=592|YPosRel=357}}&lt;br /&gt;
{{ClickMapEntry|Name=Erxebe|Sector=7|XPos=223|YPos=210|XPosRel=673|YPosRel=318}}&lt;br /&gt;
{{ClickMapEntry|Name=Istiteat|Sector=7|XPos=135|YPos=179|XPosRel=409|YPosRel=271}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaatso|Sector=7|XPos=241|YPos=188|XPosRel=727|YPosRel=285}}&lt;br /&gt;
{{ClickMapEntry|Name=Edrilain|Sector=7|XPos=222|YPos=103|XPosRel=670|YPosRel=157}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeer|Sector=7|XPos=204|YPos=213|XPosRel=616|YPosRel=322}}&lt;br /&gt;
{{ClickMapEntry|Name=Soinsoan|Sector=7|XPos=20|YPos=240|XPosRel=63|YPosRel=363}}&lt;br /&gt;
{{ClickMapEntry|Name=Reatte|Sector=7|XPos=187|YPos=231|XPosRel=565|YPosRel=349}}&lt;br /&gt;
{{ClickMapEntry|Name=Argema|Sector=7|XPos=60|YPos=124|XPosRel=183|YPosRel=189}}&lt;br /&gt;
{{ClickMapEntry|Name=Esreates|Sector=7|XPos=90|YPos=203|XPosRel=273|YPosRel=307}}&lt;br /&gt;
{{ClickMapEntry|Name=Arceores|Sector=7|XPos=201|YPos=17|XPosRel=607|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Esditi|Sector=7|XPos=169|YPos=57|XPosRel=511|YPosRel=88}}&lt;br /&gt;
{{ClickMapEntry|Name=Cerianon|Sector=7|XPos=151|YPos=160|XPosRel=457|YPosRel=243}}&lt;br /&gt;
{{ClickMapEntry|Name=Qulaaon|Sector=7|XPos=159|YPos=27|XPosRel=481|YPosRel=43}}&lt;br /&gt;
{{ClickMapEntry|Name=Celaqula|Sector=7|XPos=127|YPos=143|XPosRel=384|YPosRel=217}}&lt;br /&gt;
{{ClickMapEntry|Name=Zarareso|Sector=7|XPos=53|YPos=90|XPosRel=162|YPosRel=138}}&lt;br /&gt;
{{ClickMapEntry|Name=Esrire|Sector=7|XPos=103|YPos=206|XPosRel=312|YPosRel=312}}&lt;br /&gt;
{{ClickMapEntry|Name=Geusxe|Sector=7|XPos=246|YPos=46|XPosRel=742|YPosRel=72}}&lt;br /&gt;
{{ClickMapEntry|Name=Oresatra|Sector=7|XPos=206|YPos=98|XPosRel=622|YPosRel=150}}&lt;br /&gt;
{{ClickMapEntry|Name=Ervean|Sector=7|XPos=20|YPos=241|XPosRel=63|YPosRel=364}}&lt;br /&gt;
{{ClickMapEntry|Name=Labeinla|Sector=7|XPos=226|YPos=123|XPosRel=682|YPosRel=187}}&lt;br /&gt;
{{ClickMapEntry|Name=Lavele|Sector=7|XPos=245|YPos=108|XPosRel=739|YPosRel=165}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceraso|Sector=7|XPos=13|YPos=1|XPosRel=42|YPosRel=4}}&lt;br /&gt;
{{ClickMapEntry|Name=Tezaxe|Sector=7|XPos=64|YPos=167|XPosRel=195|YPosRel=253}}&lt;br /&gt;
{{ClickMapEntry|Name=Esaan|Sector=7|XPos=3|YPos=162|XPosRel=12|YPosRel=246}}&lt;br /&gt;
{{ClickMapEntry|Name=Onerzara|Sector=7|XPos=116|YPos=59|XPosRel=351|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Arzageat|Sector=7|XPos=84|YPos=100|XPosRel=255|YPosRel=153}}&lt;br /&gt;
{{ClickMapEntry|Name=Orreedon|Sector=7|XPos=241|YPos=35|XPosRel=727|YPosRel=55}}&lt;br /&gt;
{{ClickMapEntry|Name=Bionbiin|Sector=7|XPos=127|YPos=184|XPosRel=384|YPosRel=279}}&lt;br /&gt;
{{ClickMapEntry|Name=Encezais|Sector=7|XPos=140|YPos=6|XPosRel=424|YPosRel=12}}&lt;br /&gt;
{{ClickMapEntry|Name=Soesdiri|Sector=7|XPos=125|YPos=4|XPosRel=378|YPosRel=9}}&lt;br /&gt;
{{ClickMapEntry|Name=Vegeedat|Sector=7|XPos=158|YPos=13|XPosRel=478|YPosRel=22}}&lt;br /&gt;
{{ClickMapEntry|Name=Inlabe|Sector=7|XPos=209|YPos=184|XPosRel=631|YPosRel=279}}&lt;br /&gt;
{{ClickMapEntry|Name=Isbior|Sector=7|XPos=149|YPos=51|XPosRel=451|YPosRel=79}}&lt;br /&gt;
{{ClickMapEntry|Name=Israa|Sector=7|XPos=29|YPos=217|XPosRel=90|YPosRel=328}}&lt;br /&gt;
{{ClickMapEntry|Name=Gebeti|Sector=7|XPos=0|YPos=15|XPosRel=3|YPosRel=25}}&lt;br /&gt;
{{ClickMapEntry|Name=Qulearbi|Sector=7|XPos=47|YPos=23|XPosRel=144|YPosRel=37}}&lt;br /&gt;
{{ClickMapEntry|Name=Atxequ|Sector=7|XPos=38|YPos=42|XPosRel=117|YPosRel=66}}&lt;br /&gt;
{{ClickMapEntry|Name=Mararere|Sector=7|XPos=142|YPos=90|XPosRel=430|YPosRel=138}}&lt;br /&gt;
{{ClickMapEntry|Name=Ataer|Sector=7|XPos=14|YPos=206|XPosRel=45|YPosRel=312}}&lt;br /&gt;
{{ClickMapEntry|Name=Erenra|Sector=7|XPos=145|YPos=208|XPosRel=439|YPosRel=315}}&lt;br /&gt;
{{ClickMapEntry|Name=Riaronus|Sector=7|XPos=23|YPos=84|XPosRel=72|YPosRel=129}}&lt;br /&gt;
{{ClickMapEntry|Name=Enqurale|Sector=7|XPos=232|YPos=127|XPosRel=700|YPosRel=193}}&lt;br /&gt;
{{ClickMapEntry|Name=Erbieder|Sector=7|XPos=1|YPos=244|XPosRel=6|YPosRel=369}}&lt;br /&gt;
{{ClickMapEntry|Name=Aededle|Sector=7|XPos=176|YPos=88|XPosRel=532|YPosRel=135}}&lt;br /&gt;
{{ClickMapEntry|Name=Bedilexe|Sector=7|XPos=129|YPos=24|XPosRel=391|YPosRel=39}}&lt;br /&gt;
{{ClickMapEntry|Name=Atlaeser|Sector=7|XPos=2|YPos=193|XPosRel=9|YPosRel=292}}&lt;br /&gt;
{{ClickMapEntry|Name=Aesarge|Sector=7|XPos=80|YPos=41|XPosRel=243|YPosRel=64}}&lt;br /&gt;
{{ClickMapEntry|Name=Tizaon|Sector=7|XPos=3|YPos=170|XPosRel=12|YPosRel=258}}&lt;br /&gt;
{{ClickMapEntry|Name=Teed|Sector=7|XPos=187|YPos=223|XPosRel=565|YPosRel=337}}&lt;br /&gt;
{{ClickMapEntry|Name=Esverara|Sector=7|XPos=116|YPos=24|XPosRel=351|YPosRel=39}}&lt;br /&gt;
{{ClickMapEntry|Name=Onusan|Sector=7|XPos=180|YPos=20|XPosRel=544|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Sobiatri|Sector=7|XPos=195|YPos=59|XPosRel=589|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Vebian|Sector=7|XPos=94|YPos=17|XPosRel=285|YPosRel=28}}&lt;br /&gt;
{{ClickMapEntry|Name=Orinriza|Sector=7|XPos=151|YPos=251|XPosRel=457|YPosRel=379}}&lt;br /&gt;
{{ClickMapEntry|Name=Aenbi|Sector=7|XPos=36|YPos=94|XPosRel=111|YPosRel=144}}&lt;br /&gt;
{{ClickMapEntry|Name=Ondira|Sector=7|XPos=231|YPos=6|XPosRel=697|YPosRel=12}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaanxege|Sector=7|XPos=66|YPos=20|XPosRel=201|YPosRel=33}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeusreor|Sector=7|XPos=131|YPos=98|XPosRel=397|YPosRel=150}}&lt;br /&gt;
{{ClickMapEntry|Name=Ertius|Sector=7|XPos=217|YPos=174|XPosRel=655|YPosRel=264}}&lt;br /&gt;
{{ClickMapEntry|Name=Arberi|Sector=7|XPos=40|YPos=128|XPosRel=123|YPosRel=195}}&lt;br /&gt;
{{ClickMapEntry|Name=Andibia|Sector=7|XPos=126|YPos=83|XPosRel=381|YPosRel=127}}&lt;br /&gt;
{{ClickMapEntry|Name=Georinar|Sector=7|XPos=15|YPos=198|XPosRel=48|YPosRel=300}}&lt;br /&gt;
{{ClickMapEntry|Name=Atuszais|Sector=7|XPos=74|YPos=172|XPosRel=225|YPosRel=261}}&lt;br /&gt;
{{ClickMapEntry|Name=Arinra|Sector=7|XPos=253|YPos=164|XPosRel=763|YPosRel=249}}&lt;br /&gt;
{{ClickMapEntry|Name=Areson|Sector=7|XPos=106|YPos=52|XPosRel=321|YPosRel=81}}&lt;br /&gt;
{{ClickMapEntry|Name=Iserxeer|Sector=7|XPos=212|YPos=31|XPosRel=640|YPosRel=49}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeraso|Sector=7|XPos=48|YPos=2|XPosRel=147|YPosRel=6}}&lt;br /&gt;
{{ClickMapEntry|Name=Tegeonon|Sector=7|XPos=159|YPos=231|XPosRel=481|YPosRel=349}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeleza|Sector=7|XPos=159|YPos=31|XPosRel=481|YPosRel=49}}&lt;br /&gt;
{{ClickMapEntry|Name=Aislaxe|Sector=7|XPos=41|YPos=228|XPosRel=126|YPosRel=345}}&lt;br /&gt;
{{ClickMapEntry|Name=Rainza|Sector=7|XPos=130|YPos=85|XPosRel=394|YPosRel=130}}&lt;br /&gt;
{{ClickMapEntry|Name=Veis|Sector=7|XPos=5|YPos=68|XPosRel=18|YPosRel=105}}&lt;br /&gt;
{{ClickMapEntry|Name=Becedibi|Sector=7|XPos=245|YPos=125|XPosRel=739|YPosRel=190}}&lt;br /&gt;
{{ClickMapEntry|Name=Qureaed|Sector=7|XPos=38|YPos=13|XPosRel=117|YPosRel=22}}&lt;br /&gt;
{{ClickMapEntry|Name=Tierus|Sector=7|XPos=120|YPos=79|XPosRel=363|YPosRel=121}}&lt;br /&gt;
{{ClickMapEntry|Name=Orbelaxe|Sector=7|XPos=232|YPos=48|XPosRel=700|YPosRel=75}}&lt;br /&gt;
{{ClickMapEntry|Name=Inzabeza|Sector=7|XPos=130|YPos=181|XPosRel=394|YPosRel=274}}&lt;br /&gt;
{{ClickMapEntry|Name=Isveedin|Sector=7|XPos=164|YPos=19|XPosRel=496|YPosRel=31}}&lt;br /&gt;
{{ClickMapEntry|Name=Quonbi|Sector=7|XPos=140|YPos=152|XPosRel=424|YPosRel=231}}&lt;br /&gt;
{{ClickMapEntry|Name=Cemaer|Sector=7|XPos=192|YPos=166|XPosRel=580|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Isare|Sector=7|XPos=161|YPos=48|XPosRel=487|YPosRel=75}}&lt;br /&gt;
{{ClickMapEntry|Name=Orxetibe|Sector=7|XPos=59|YPos=238|XPosRel=180|YPosRel=360}}&lt;br /&gt;
{{ClickMapEntry|Name=Reoran|Sector=7|XPos=115|YPos=215|XPosRel=348|YPosRel=325}}&lt;br /&gt;
{{ClickMapEntry|Name=Oredveus|Sector=7|XPos=195|YPos=27|XPosRel=589|YPosRel=43}}&lt;br /&gt;
{{ClickMapEntry|Name=Tilala|Sector=7|XPos=232|YPos=86|XPosRel=700|YPosRel=132}}&lt;br /&gt;
{{ClickMapEntry|Name=Dicelaso|Sector=7|XPos=66|YPos=21|XPosRel=201|YPosRel=34}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeonar|Sector=7|XPos=39|YPos=181|XPosRel=120|YPosRel=274}}&lt;br /&gt;
{{ClickMapEntry|Name=Laindi|Sector=7|XPos=236|YPos=138|XPosRel=712|YPosRel=210}}&lt;br /&gt;
{{ClickMapEntry|Name=Essoat|Sector=7|XPos=47|YPos=141|XPosRel=144|YPosRel=214}}&lt;br /&gt;
{{ClickMapEntry|Name=Qudior|Sector=7|XPos=209|YPos=128|XPosRel=631|YPosRel=195}}&lt;br /&gt;
{{ClickMapEntry|Name=Soleuser|Sector=7|XPos=224|YPos=217|XPosRel=676|YPosRel=328}}&lt;br /&gt;
{{ClickMapEntry|Name=Quraa|Sector=7|XPos=240|YPos=104|XPosRel=724|YPosRel=159}}&lt;br /&gt;
{{ClickMapEntry|Name=Zarausxe|Sector=7|XPos=143|YPos=64|XPosRel=433|YPosRel=99}}&lt;br /&gt;
{{ClickMapEntry|Name=Onarmala|Sector=7|XPos=194|YPos=168|XPosRel=586|YPosRel=255}}&lt;br /&gt;
{{ClickMapEntry|Name=Inreerar|Sector=7|XPos=21|YPos=235|XPosRel=66|YPosRel=355}}&lt;br /&gt;
{{ClickMapEntry|Name=Usxela|Sector=7|XPos=74|YPos=176|XPosRel=225|YPosRel=267}}&lt;br /&gt;
{{ClickMapEntry|Name=Tidice|Sector=7|XPos=96|YPos=213|XPosRel=291|YPosRel=322}}&lt;br /&gt;
{{ClickMapEntry|Name=Isdilaon|Sector=7|XPos=170|YPos=133|XPosRel=514|YPosRel=202}}&lt;br /&gt;
{{ClickMapEntry|Name=Leveti|Sector=7|XPos=127|YPos=149|XPosRel=384|YPosRel=226}}&lt;br /&gt;
{{ClickMapEntry|Name=Ribiraor|Sector=7|XPos=48|YPos=215|XPosRel=147|YPosRel=325}}&lt;br /&gt;
{{ClickMapEntry|Name=Belere|Sector=7|XPos=57|YPos=180|XPosRel=174|YPosRel=273}}&lt;br /&gt;
{{ClickMapEntry|Name=Becetela|Sector=7|XPos=227|YPos=142|XPosRel=685|YPosRel=216}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiared|Sector=7|XPos=21|YPos=124|XPosRel=66|YPosRel=189}}&lt;br /&gt;
{{ClickMapEntry|Name=Teabi|Sector=7|XPos=154|YPos=216|XPosRel=466|YPosRel=327}}&lt;br /&gt;
{{ClickMapEntry|Name=Usleance|Sector=7|XPos=242|YPos=70|XPosRel=730|YPosRel=108}}&lt;br /&gt;
{{ClickMapEntry|Name=Xegearer|Sector=7|XPos=133|YPos=187|XPosRel=403|YPosRel=283}}&lt;br /&gt;
{{ClickMapEntry|Name=Riorusle|Sector=7|XPos=16|YPos=74|XPosRel=51|YPosRel=114}}&lt;br /&gt;
{{ClickMapEntry|Name=Gedienza|Sector=7|XPos=65|YPos=40|XPosRel=198|YPosRel=63}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceteceso|Sector=7|XPos=164|YPos=242|XPosRel=496|YPosRel=366}}&lt;br /&gt;
{{ClickMapEntry|Name=Esvesoso|Sector=7|XPos=103|YPos=133|XPosRel=312|YPosRel=202}}&lt;br /&gt;
{{ClickMapEntry|Name=Ceraxete|Sector=7|XPos=231|YPos=167|XPosRel=697|YPosRel=253}}&lt;br /&gt;
{{ClickMapEntry|Name=Beatle|Sector=7|XPos=156|YPos=194|XPosRel=472|YPosRel=294}}&lt;br /&gt;
{{ClickMapEntry|Name=Qugeza|Sector=7|XPos=166|YPos=33|XPosRel=502|YPosRel=52}}&lt;br /&gt;
{{ClickMapEntry|Name=Esaqube|Sector=7|XPos=33|YPos=228|XPosRel=102|YPosRel=345}}&lt;br /&gt;
{{ClickMapEntry|Name=Ismaan|Sector=7|XPos=83|YPos=58|XPosRel=252|YPosRel=90}}&lt;br /&gt;
{{ClickMapEntry|Name=Mamaanat|Sector=7|XPos=228|YPos=27|XPosRel=688|YPosRel=43}}&lt;br /&gt;
{{ClickMapEntry|Name=Edcea|Sector=7|XPos=145|YPos=59|XPosRel=439|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Leisinma|Sector=7|XPos=12|YPos=79|XPosRel=39|YPosRel=121}}&lt;br /&gt;
{{ClickMapEntry|Name=Ladire|Sector=7|XPos=75|YPos=172|XPosRel=228|YPosRel=261}}&lt;br /&gt;
{{ClickMapEntry|Name=Maarbi|Sector=7|XPos=16|YPos=46|XPosRel=51|YPosRel=72}}&lt;br /&gt;
{{ClickMapEntry|Name=Reenri|Sector=7|XPos=61|YPos=166|XPosRel=186|YPosRel=252}}&lt;br /&gt;
{{ClickMapEntry|Name=Enatzaus|Sector=7|XPos=64|YPos=190|XPosRel=195|YPosRel=288}}&lt;br /&gt;
{{ClickMapEntry|Name=Riareror|Sector=7|XPos=8|YPos=164|XPosRel=27|YPosRel=249}}&lt;br /&gt;
{{ClickMapEntry|Name=Raondile|Sector=7|XPos=217|YPos=112|XPosRel=655|YPosRel=171}}&lt;br /&gt;
{{ClickMapEntry|Name=Ditearra|Sector=7|XPos=193|YPos=205|XPosRel=583|YPosRel=310}}&lt;br /&gt;
{{ClickMapEntry|Name=Anquarle|Sector=7|XPos=148|YPos=170|XPosRel=448|YPosRel=258}}&lt;br /&gt;
{{ClickMapEntry|Name=Sobeteve|Sector=7|XPos=1|YPos=202|XPosRel=6|YPosRel=306}}&lt;br /&gt;
{{ClickMapEntry|Name=Biorve|Sector=7|XPos=182|YPos=220|XPosRel=550|YPosRel=333}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaerma|Sector=7|XPos=117|YPos=22|XPosRel=354|YPosRel=36}}&lt;br /&gt;
{{ClickMapEntry|Name=Isesusa|Sector=7|XPos=161|YPos=11|XPosRel=487|YPosRel=19}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiso|Sector=7|XPos=239|YPos=200|XPosRel=721|YPosRel=303}}&lt;br /&gt;
{{ClickMapEntry|Name=Usesen|Sector=7|XPos=224|YPos=231|XPosRel=676|YPosRel=349}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaed|Sector=7|XPos=242|YPos=233|XPosRel=730|YPosRel=352}}&lt;br /&gt;
{{ClickMapEntry|Name=Tiregees|Sector=7|XPos=190|YPos=88|XPosRel=574|YPosRel=135}}&lt;br /&gt;
{{ClickMapEntry|Name=Qusoin|Sector=7|XPos=201|YPos=67|XPosRel=607|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeisa|Sector=7|XPos=78|YPos=140|XPosRel=237|YPosRel=213}}&lt;br /&gt;
{{ClickMapEntry|Name=Isteesge|Sector=7|XPos=16|YPos=175|XPosRel=51|YPosRel=265}}&lt;br /&gt;
{{ClickMapEntry|Name=Articeso|Sector=7|XPos=3|YPos=137|XPosRel=12|YPosRel=208}}&lt;br /&gt;
{{ClickMapEntry|Name=Cebeor|Sector=7|XPos=199|YPos=229|XPosRel=601|YPosRel=346}}&lt;br /&gt;
{{ClickMapEntry|Name=Diusace|Sector=7|XPos=185|YPos=64|XPosRel=559|YPosRel=99}}&lt;br /&gt;
{{ClickMapEntry|Name=Ribeties|Sector=7|XPos=229|YPos=207|XPosRel=691|YPosRel=313}}&lt;br /&gt;
{{ClickMapEntry|Name=Lativege|Sector=7|XPos=73|YPos=23|XPosRel=222|YPosRel=37}}&lt;br /&gt;
{{ClickMapEntry|Name=Erarrior|Sector=7|XPos=99|YPos=86|XPosRel=300|YPosRel=132}}&lt;br /&gt;
{{ClickMapEntry|Name=Leeden|Sector=7|XPos=153|YPos=254|XPosRel=463|YPosRel=384}}&lt;br /&gt;
{{ClickMapEntry|Name=Tivequ|Sector=7|XPos=204|YPos=178|XPosRel=616|YPosRel=270}}&lt;br /&gt;
{{ClickMapEntry|Name=Oranisen|Sector=7|XPos=40|YPos=250|XPosRel=123|YPosRel=378}}&lt;br /&gt;
{{ClickMapEntry|Name=Intean|Sector=7|XPos=82|YPos=61|XPosRel=249|YPosRel=94}}&lt;br /&gt;
{{ClickMapEntry|Name=Isisan|Sector=7|XPos=36|YPos=59|XPosRel=111|YPosRel=91}}&lt;br /&gt;
{{ClickMapEntry|Name=Orraes|Sector=7|XPos=91|YPos=192|XPosRel=276|YPosRel=291}}&lt;br /&gt;
{{ClickMapEntry|Name=Lavegere|Sector=7|XPos=247|YPos=169|XPosRel=745|YPosRel=256}}&lt;br /&gt;
{{ClickMapEntry|Name=Usquen|Sector=7|XPos=142|YPos=67|XPosRel=430|YPosRel=103}}&lt;br /&gt;
{{ClickMapEntry|Name=Leeson|Sector=7|XPos=85|YPos=242|XPosRel=258|YPosRel=366}}&lt;br /&gt;
{{ClickMapEntry|Name=Beritere|Sector=7|XPos=106|YPos=95|XPosRel=321|YPosRel=145}}&lt;br /&gt;
{{ClickMapEntry|Name=Arveaa|Sector=7|XPos=206|YPos=28|XPosRel=622|YPosRel=45}}&lt;br /&gt;
{{ClickMapEntry|Name=Laraedle|Sector=7|XPos=79|YPos=15|XPosRel=240|YPosRel=25}}&lt;br /&gt;
{{ClickMapEntry|Name=Reesquen|Sector=7|XPos=225|YPos=152|XPosRel=679|YPosRel=231}}&lt;br /&gt;
{{ClickMapEntry|Name=Vegeinso|Sector=7|XPos=18|YPos=250|XPosRel=57|YPosRel=378}}&lt;br /&gt;
{{ClickMapEntry|Name=Timaesin|Sector=7|XPos=135|YPos=204|XPosRel=409|YPosRel=309}}&lt;br /&gt;
{{ClickMapEntry|Name=Xeorusge|Sector=7|XPos=12|YPos=73|XPosRel=39|YPosRel=112}}&lt;br /&gt;
{{ClickMapEntry|Name=Zaati|Sector=7|XPos=67|YPos=40|XPosRel=204|YPosRel=63}}&lt;br /&gt;
{{ClickMapEntry|Name=Atraat|Sector=7|XPos=171|YPos=247|XPosRel=517|YPosRel=373}}&lt;br /&gt;
{{ClickMapEntry|Name=Isbianri|Sector=7|XPos=183|YPos=177|XPosRel=553|YPosRel=268}}&lt;br /&gt;
{{ClickMapEntry|Name=Onorti|Sector=7|XPos=126|YPos=155|XPosRel=381|YPosRel=235}}&lt;br /&gt;
{{ClickMapEntry|Name=Xemariin|Sector=7|XPos=177|YPos=23|XPosRel=535|YPosRel=37}}&lt;br /&gt;
{{ClickMapFooter}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- This /div should be part of ClickMapFooter, but the MediaWiki 1.9.3 is too old. --&amp;gt;&lt;br /&gt;
== Systems in Galaxy Sector 7 ==&lt;br /&gt;
*A [[Sector7/Aaored|Aaored]] [[Sector7/Aededle|Aededle]] [[Sector7/Aenbi|Aenbi]] [[Sector7/Aesarge|Aesarge]] [[Sector7/Agebi|Agebi]] [[Sector7/Aislaxe|Aislaxe]] [[Sector7/Andibia|Andibia]] [[Sector7/Anenen|Anenen]] [[Sector7/Angeriri|Angeriri]] [[Sector7/Anisinza|Anisinza]] [[Sector7/Anquarle|Anquarle]] [[Sector7/Anquerbi|Anquerbi]] [[Sector7/Antiis|Antiis]] [[Sector7/Arberi|Arberi]] [[Sector7/Arceores|Arceores]] [[Sector7/Areson|Areson]] [[Sector7/Argema|Argema]] [[Sector7/Arinra|Arinra]] [[Sector7/Artesore|Artesore]] [[Sector7/Articeso|Articeso]] [[Sector7/Arveaa|Arveaa]] [[Sector7/Arzageat|Arzageat]] [[Sector7/Ataer|Ataer]] [[Sector7/Ataneris|Ataneris]] [[Sector7/Ateslete|Ateslete]] [[Sector7/Atlaeser|Atlaeser]] [[Sector7/Atraat|Atraat]] [[Sector7/Atrexexe|Atrexexe]] [[Sector7/Atuszais|Atuszais]] [[Sector7/Atxequ|Atxequ]] [[Sector7/Ausaso|Ausaso]]&lt;br /&gt;
*B [[Sector7/Beatle|Beatle]] [[Sector7/Becedibi|Becedibi]] [[Sector7/Becetela|Becetela]] [[Sector7/Bedilexe|Bedilexe]] [[Sector7/Beerxe|Beerxe]] [[Sector7/Belere|Belere]] [[Sector7/Beritere|Beritere]] [[Sector7/Betidi|Betidi]] [[Sector7/Betierte|Betierte]] [[Sector7/Bilain|Bilain]] [[Sector7/Bionbiin|Bionbiin]] [[Sector7/Biorve|Biorve]] [[Sector7/Bireso|Bireso]]&lt;br /&gt;
*C [[Sector7/Cebeor|Cebeor]] [[Sector7/Ceenrama|Ceenrama]] [[Sector7/Ceerti|Ceerti]] [[Sector7/Celaqula|Celaqula]] [[Sector7/Cemaer|Cemaer]] [[Sector7/Ceor|Ceor]] [[Sector7/Ceraso|Ceraso]] [[Sector7/Ceraxete|Ceraxete]] [[Sector7/Cerianon|Cerianon]] [[Sector7/Ceteceso|Ceteceso]]&lt;br /&gt;
*D [[Sector7/Diatin|Diatin]] [[Sector7/Dicelaso|Dicelaso]] [[Sector7/Dirateri|Dirateri]] [[Sector7/Ditearra|Ditearra]] [[Sector7/Diusace|Diusace]] [[Sector7/Dizaen|Dizaen]]&lt;br /&gt;
*E [[Sector7/Edcea|Edcea]] [[Sector7/Eded|Eded]] [[Sector7/Ededer|Ededer]] [[Sector7/Edoned|Edoned]] [[Sector7/Edrilain|Edrilain]] [[Sector7/Enarines|Enarines]] [[Sector7/Enatzaus|Enatzaus]] [[Sector7/Enbean|Enbean]] [[Sector7/Encezais|Encezais]] [[Sector7/Enener|Enener]] [[Sector7/Enonedar|Enonedar]] [[Sector7/Enqurale|Enqurale]] [[Sector7/Enusbe|Enusbe]] [[Sector7/Enususge|Enususge]] [[Sector7/Erarrior|Erarrior]] [[Sector7/Erbieder|Erbieder]] [[Sector7/Erdiares|Erdiares]] [[Sector7/Erenra|Erenra]] [[Sector7/Ertius|Ertius]] [[Sector7/Erusat|Erusat]] [[Sector7/Ervean|Ervean]] [[Sector7/Erxebe|Erxebe]] [[Sector7/Esaan|Esaan]] [[Sector7/Esaqube|Esaqube]] [[Sector7/Esarxeve|Esarxeve]] [[Sector7/Esditi|Esditi]] [[Sector7/Esisrela|Esisrela]] [[Sector7/Esleve|Esleve]] [[Sector7/Esreates|Esreates]] [[Sector7/Esrire|Esrire]] [[Sector7/Esrixear|Esrixear]] [[Sector7/Essoat|Essoat]] [[Sector7/Estiri|Estiri]] [[Sector7/Esverara|Esverara]] [[Sector7/Esvesoso|Esvesoso]] [[Sector7/Eszausve|Eszausve]]&lt;br /&gt;
*G [[Sector7/Gebequat|Gebequat]] [[Sector7/Gebeti|Gebeti]] [[Sector7/Gedienza|Gedienza]] [[Sector7/Gegeso|Gegeso]] [[Sector7/Gelesoma|Gelesoma]] [[Sector7/Geondi|Geondi]] [[Sector7/Georinar|Georinar]] [[Sector7/Geteve|Geteve]] [[Sector7/Geusxe|Geusxe]] [[Sector7/Gexean|Gexean]]&lt;br /&gt;
*I [[Sector7/Inlabe|Inlabe]] [[Sector7/Inlaoran|Inlaoran]] [[Sector7/Inre|Inre]] [[Sector7/Inreerar|Inreerar]] [[Sector7/Intean|Intean]] [[Sector7/Inzabeza|Inzabeza]] [[Sector7/Isanesle|Isanesle]] [[Sector7/Isare|Isare]] [[Sector7/Isbianri|Isbianri]] [[Sector7/Isbior|Isbior]] [[Sector7/Isdilaon|Isdilaon]] [[Sector7/Isenes|Isenes]] [[Sector7/Iserxeer|Iserxeer]] [[Sector7/Isesusa|Isesusa]] [[Sector7/Isgeoror|Isgeoror]] [[Sector7/Isisan|Isisan]] [[Sector7/Ismaan|Ismaan]] [[Sector7/Israa|Israa]] [[Sector7/Isriveen|Isriveen]] [[Sector7/Isteesge|Isteesge]] [[Sector7/Istiteat|Istiteat]] [[Sector7/Isveedin|Isveedin]]&lt;br /&gt;
*L [[Sector7/Labeinla|Labeinla]] [[Sector7/Ladire|Ladire]] [[Sector7/Laindi|Laindi]] [[Sector7/Laorusti|Laorusti]] [[Sector7/Laraedle|Laraedle]] [[Sector7/Lativege|Lativege]] [[Sector7/Lavegere|Lavegere]] [[Sector7/Lavele|Lavele]] [[Sector7/Lebedixe|Lebedixe]] [[Sector7/Lecean|Lecean]] [[Sector7/Leeden|Leeden]] [[Sector7/Leeson|Leeson]] [[Sector7/Leisinma|Leisinma]] [[Sector7/Leriisis|Leriisis]] [[Sector7/Leveti|Leveti]]&lt;br /&gt;
*M [[Sector7/Maanusre|Maanusre]] [[Sector7/Maarbi|Maarbi]] [[Sector7/Maedrebe|Maedrebe]] [[Sector7/Mamaanat|Mamaanat]] [[Sector7/Mararere|Mararere]] [[Sector7/Maraus|Maraus]]&lt;br /&gt;
*O [[Sector7/Onanorra|Onanorra]] [[Sector7/Onaran|Onaran]] [[Sector7/Onarmala|Onarmala]] [[Sector7/Ondira|Ondira]] [[Sector7/Onerzara|Onerzara]] [[Sector7/Onorti|Onorti]] [[Sector7/Onteised|Onteised]] [[Sector7/Ontilain|Ontilain]] [[Sector7/Onusan|Onusan]] [[Sector7/Oranisen|Oranisen]] [[Sector7/Orbelaxe|Orbelaxe]] [[Sector7/Oredveus|Oredveus]] [[Sector7/Orermala|Orermala]] [[Sector7/Oresatra|Oresatra]] [[Sector7/Orinriza|Orinriza]] [[Sector7/Orraes|Orraes]] [[Sector7/Orramaor|Orramaor]] [[Sector7/Orreedon|Orreedon]] [[Sector7/Orrienar|Orrienar]] [[Sector7/Orxetibe|Orxetibe]]&lt;br /&gt;
*Q [[Sector7/Quandixe|Quandixe]] [[Sector7/Qudior|Qudior]] [[Sector7/Qugeza|Qugeza]] [[Sector7/Qulaaon|Qulaaon]] [[Sector7/Qulearbi|Qulearbi]] [[Sector7/Quonbi|Quonbi]] [[Sector7/Quraa|Quraa]] [[Sector7/Qureaed|Qureaed]] [[Sector7/Qusoin|Qusoin]] [[Sector7/Qutegequ|Qutegequ]] [[Sector7/Quzabibi|Quzabibi]]&lt;br /&gt;
*R [[Sector7/Raatbi|Raatbi]] [[Sector7/Rabegema|Rabegema]] [[Sector7/Raedre|Raedre]] [[Sector7/Rainza|Rainza]] [[Sector7/Raondile|Raondile]] [[Sector7/Raormaor|Raormaor]] [[Sector7/Rasoso|Rasoso]] [[Sector7/Reatte|Reatte]] [[Sector7/Reenri|Reenri]] [[Sector7/Reesquen|Reesquen]] [[Sector7/Reesvere|Reesvere]] [[Sector7/Reonen|Reonen]] [[Sector7/Reoran|Reoran]] [[Sector7/Riareror|Riareror]] [[Sector7/Riaronus|Riaronus]] [[Sector7/Ribeties|Ribeties]] [[Sector7/Ribior|Ribior]] [[Sector7/Ribiraor|Ribiraor]] [[Sector7/Rigete|Rigete]] [[Sector7/Riorusle|Riorusle]]&lt;br /&gt;
*S [[Sector7/Sobeer|Sobeer]] [[Sector7/Sobeteve|Sobeteve]] [[Sector7/Sobiatri|Sobiatri]] [[Sector7/Soesdiri|Soesdiri]] [[Sector7/Soinsoan|Soinsoan]] [[Sector7/Soleuser|Soleuser]] [[Sector7/Sorezaan|Sorezaan]]&lt;br /&gt;
*T [[Sector7/Teabi|Teabi]] [[Sector7/Teed|Teed]] [[Sector7/Tegeonon|Tegeonon]] [[Sector7/Tezaxe|Tezaxe]] [[Sector7/Tiared|Tiared]] [[Sector7/Tiarice|Tiarice]] [[Sector7/Tidice|Tidice]] [[Sector7/Tierus|Tierus]] [[Sector7/Tilala|Tilala]] [[Sector7/Timaesin|Timaesin]] [[Sector7/Tiregees|Tiregees]] [[Sector7/Tiso|Tiso]] [[Sector7/Tivequ|Tivequ]] [[Sector7/Tizaon|Tizaon]]&lt;br /&gt;
*U [[Sector7/Usbimaqu|Usbimaqu]] [[Sector7/Usesen|Usesen]] [[Sector7/Usleance|Usleance]] [[Sector7/Usquen|Usquen]] [[Sector7/Usvera|Usvera]] [[Sector7/Usxela|Usxela]]&lt;br /&gt;
*V [[Sector7/Veanso|Veanso]] [[Sector7/Vebian|Vebian]] [[Sector7/Veed|Veed]] [[Sector7/Veesqu|Veesqu]] [[Sector7/Vegeedat|Vegeedat]] [[Sector7/Vegeinso|Vegeinso]] [[Sector7/Veis|Veis]] [[Sector7/Vetebe|Vetebe]]&lt;br /&gt;
*X [[Sector7/Xeatrien|Xeatrien]] [[Sector7/Xebeuson|Xebeuson]] [[Sector7/Xeer|Xeer]] [[Sector7/Xegearer|Xegearer]] [[Sector7/Xeisa|Xeisa]] [[Sector7/Xeleza|Xeleza]] [[Sector7/Xemariin|Xemariin]] [[Sector7/Xeonar|Xeonar]] [[Sector7/Xeorusge|Xeorusge]] [[Sector7/Xeraso|Xeraso]] [[Sector7/Xeusreor|Xeusreor]] [[Sector7/Xevexean|Xevexean]] [[Sector7/Xezaerti|Xezaerti]]&lt;br /&gt;
*Z [[Sector7/Zaanxege|Zaanxege]] [[Sector7/Zaati|Zaati]] [[Sector7/Zaatso|Zaatso]] [[Sector7/Zaed|Zaed]] [[Sector7/Zaerma|Zaerma]] [[Sector7/Zalaxe|Zalaxe]] [[Sector7/Zarareso|Zarareso]] [[Sector7/Zarausxe|Zarausxe]]&lt;br /&gt;
&lt;br /&gt;
See [[Sector7/Systems in Galaxy Sector 7|Systems in Galaxy Sector 7]] for a detailed list.&lt;br /&gt;
&lt;br /&gt;
== OXPs ==&lt;br /&gt;
* The [[Galactic Navy]] has fourteen Sector Command Stations in Galaxy Sector 7: [[Sector7/Riareror|Riareror]] ([[Sector7/Navy Command Station 1|SecCom 1]]), [[Sector7/Aislaxe|Aislaxe]] ([[Sector7/Navy Command Station 2|SecCom 2]]), [[Sector7/Xeorusge|Xeorusge]] ([[Sector7/Navy Command Station 3|SecCom 3]]), [[Sector7/Qulearbi|Qulearbi]] ([[Sector7/Navy Command Station 4|SecCom 4]]), [[Sector7/Edoned|Edoned]] ([[Sector7/Navy Command Station 5|SecCom 5]]), [[Sector7/Atuszais|Atuszais]] ([[Sector7/Navy Command Station 6|SecCom 6]]), [[Sector7/Erarrior|Erarrior]] ([[Sector7/Navy Command Station 7|SecCom 7]]), [[Sector7/Tiarice|Tiarice]] ([[Sector7/Navy Command Station 8|SecCom 8]]), [[Sector7/Enarines|Enarines]] ([[Sector7/Navy Command Station 9|SecCom 9]]), [[Sector7/Agebi|Agebi]] ([[Sector7/Navy Command Station 10|SecCom 10]]), [[Sector7/Diusace|Diusace]] ([[Sector7/Navy Command Station 11|SecCom 11]]), [[Sector7/Teed|Teed]] ([[Sector7/Navy Command Station 12|SecCom 12]]), [[Sector7/Ceraxete|Ceraxete]] ([[Sector7/Navy Command Station 13|SecCom 13]]) and [[Sector7/Ribior|Ribior]] ([[Sector7/Navy Command Station 14|SecCom 14]]).&lt;br /&gt;
* [[The Assassins Guild OXP|Assassins Guild]]: 21 missions involving murder to order. Progress depends on your Elite and Guild Ratings. Also see [[Victim 11]]&lt;br /&gt;
* The [[Feudal States]] OXP adds [[Sector7/The Royal Houses of Jaftra|The Royal Houses of Jaftra]], a group of eight feudal systems across Galaxy Sector 7.&lt;br /&gt;
* [[Black Monk Monastery|Bank of the Black Monks]]: Deal with the loan sharks. Begins when docked at any Black Monk Monastary.&lt;br /&gt;
* [[Escort Contracts OXP|Escort Contracts OXP]]: Allow players to enter into short-term escort contracts with NPC lone wolf traders.&lt;br /&gt;
* [[Galactic Navy OXP|Galactic Navy]]: The Galactic Navy needs you. Begins when docked at any SecCom Station.&lt;br /&gt;
* [[Illegal Goods Tweak OXP|Illegal Goods Tweak OXP]]: Short reward missions offered by rescued ex-slaves.&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9135&amp;amp;hilit=linkg7 LinkG7]: Find a way across the great rift.&lt;br /&gt;
* [[Military Fiasco]]: A mission for the Navy available to a Commander with more than 1000 kills.&lt;br /&gt;
* [[Oo-Haul|Oo-haul Escort Missions]]: Escort a hauler safely to its destination. Must be docked at a Constore. [[Your Ad Here!]] required.&lt;br /&gt;
* [[Random Hits OXP|Random Hits]]: Get contracts for bounty hunting at any Seedy Space Bar. Special Missions for successful hunters.&lt;br /&gt;
* [[RRS_Group|Rescue Stations]]: Rescue and recovery missions for contract pilots.&lt;br /&gt;
* [[Thargoid Wars|Thargoid Wars]]: War with the Thargoids intensifies featuring new attack and defense missions.&lt;br /&gt;
* [[TAU Rockhopper]] - manufacture is based at Tiared&lt;br /&gt;
* [[UPS Courier|UPS Courier Company]]: Take goods or documents from system to system and be awarded with combat missions.&lt;br /&gt;
* [[Vector OXP|Vector]]: Special feature - 'Richmans World' - a unusual mission type. [[Snoopers|Snoopers]] required.&lt;br /&gt;
* [[Victim 11]]: A follow-up mission to [[The Assassins Guild OXP|Assassins Guild]] that picks up some loose ends.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fiction ==&lt;br /&gt;
* [[An Ideal Victim]] by [[User:Cody|Cody]] is based around the [[Great Rift]]&lt;br /&gt;
&lt;br /&gt;
[[File:Map G7 (ClymAngus).png|thumb|right|800px|ClymAngus's Vector Map of G7 (Jaftra)]]&lt;br /&gt;
=== The Vector Maps ===&lt;br /&gt;
This excellent piece of digital art adds routes and regions to every Galaxy Sector. [http://www.crimsonforge.co.uk/cloister/OOmap_G7.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G7.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G7.pdf US Mirror]&lt;br /&gt;
&lt;br /&gt;
=== Routes and Regions ===&lt;br /&gt;
In Sector 7, there are 5 major Spaceways:&lt;br /&gt;
* The [[Sector7/Spaceway L1 (Route)|Spaceway L1]] runs from [[Sector7/Cerianon|Cerianon]] to [[Sector7/Oresatra|Oresatra]]&lt;br /&gt;
* [[Sector7/The Road (Route)|The Road]] runs from [[Sector7/Tiared|Tiared]] to [[Sector7/Zarausxe|Zarausxe]]&lt;br /&gt;
* The [[Sector7/Far Rift Reach (Route)|Far Rift Reach]] runs from [[Sector7/Sobeteve|Sobeteve]] to [[Sector7/Xeonar|Xeonar]]&lt;br /&gt;
* [[Sector7/The Isisian Detour (Route)|The Isisian Detour]] runs from [[Sector7/Maarbi|Maarbi]] to [[Sector7/Isisan|Isisan]]&lt;br /&gt;
* [[Sector7/The Quandixe Connection (Route)|The Quandixe Connection]] runs from [[Sector7/Enbean|Enbean]] to [[Sector7/Reoran|Reoran]]&lt;br /&gt;
&lt;br /&gt;
There are also 7 established regions in Sector 7:&lt;br /&gt;
* [[Sector7/GALCOP Central Intelligence Sector (Region)|GALCOP Central Intelligence Sector]]&lt;br /&gt;
* [[Sector7/The Isare Pact (Region)|The Isare Pact]]&lt;br /&gt;
* [[Sector7/Galcenter G7 (Region)|Galcenter G7]]&lt;br /&gt;
* [[Sector7/The Kleptocratic Swathe (Region)|The Kleptocratic Swathe]]&lt;br /&gt;
* [[Sector7/The Rubicon Crossroad (Region)|The Rubicon Crossroad]]&lt;br /&gt;
* [[Sector7/The Five Point Trade Barrier (Region)|The Five Point Trade Barrier]]&lt;br /&gt;
* [[Sector7/The Lizard's Claw (Region)|The Lizard's Claw]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[The Eight]] for a disquisition on the 8 galaxies&lt;br /&gt;
*See [[Sector7/Systems in Galaxy Sector 7|Systems in Galaxy Sector 7]] for a more detailed list.&lt;br /&gt;
*See [[Oolite planet list/Galaxy 7]] for charts mapping government type against Tech Level, economy &amp;amp; number of systems within 7ly.&lt;br /&gt;
*[[Maps]] for a detailed list of these&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90122</id>
		<title>Feudal States</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90122"/>
		<updated>2026-08-07T11:37:33Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox OXP| title = Feudal States OXP&lt;br /&gt;
|image = [[Image:Titleeagle.jpg|200px]]&lt;br /&gt;
|download = [https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc Latest (2021)]&lt;br /&gt;
|version = 2.1&lt;br /&gt;
|story = N/A&lt;br /&gt;
|stations = [[Feudal States#Ships and Stations|Stations]]&lt;br /&gt;
|ships = [[Feudal States#Ships and Stations|Ships]]&lt;br /&gt;
|mission = [[Feudal States#Elements|Elements]]&lt;br /&gt;
|equipment = N/A&lt;br /&gt;
|alternativeHUD = None&lt;br /&gt;
|soundSet = Some Music&lt;br /&gt;
|category = Systems OXPs&lt;br /&gt;
|author = [[User:Ramirez|Ramirez]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview  ==&lt;br /&gt;
&lt;br /&gt;
The Feudal States is a flavour OXP that adds various new elements to the ''leading'' feudal systems in Oolite galaxies.  The current version covers Galaxies 1, 2, 3, 5, 6 and (incompletely) 7.&lt;br /&gt;
&lt;br /&gt;
== Elements ==&lt;br /&gt;
&lt;br /&gt;
The OXP contains four basic elements:&lt;br /&gt;
&lt;br /&gt;
'''Challenges'''&lt;br /&gt;
&lt;br /&gt;
Pilots can visit [[Royal Hunting Lodge]]s where they are able to challenge nobles in ship-to-ship contact.  Bets can be placed on the outcome, giving you an alternative way of making quick money. Use the '''F8''' interface while docked at the Lodge to accept a challenge and bet on it.&lt;br /&gt;
&lt;br /&gt;
'''Missions'''&lt;br /&gt;
&lt;br /&gt;
Good pilots are in high demand amongst the Feudal States.  Visit the Royal Court where you can take on missions, ranging from simple deliveries to the capture and ransom of senior nobles. Use the '''F8''' interface for the Royal Court after landing on the planet.&lt;br /&gt;
&lt;br /&gt;
'''Promotions'''&lt;br /&gt;
&lt;br /&gt;
As your standing with the Feudal States increases, you can join their ranks as a knight of one of the royal houses.  Further success will see you elevated to the peerage, with the chance of becoming one of the leading members of royal society.&lt;br /&gt;
&lt;br /&gt;
'''Tournaments'''&lt;br /&gt;
&lt;br /&gt;
The Feudal States hold regular tournaments where nobles gather to test their skills in combat.  All pilots with noble rank are eligible to take part, with the winner taking home a major cash prize as well as increasing their prestige.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More detailed information on the OXP is available in the PDF readme (see below).&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
The sections immediately beneath are taken from Ramirez's included .pdf:&lt;br /&gt;
[[File:Feudal inter Digebiti.png|thumb|right|500px|[[Sector1/Digebiti|Digebiti]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibecea.png|thumb|right|500px|[[Sector1/Tibecea|Tibecea]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibedied.png|thumb|right|500px|[[Sector1/Tibedied|Tibedied]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
=== History ===&lt;br /&gt;
The Feudal States were formed in the decades following the first wave of the galaxy’s human colonisation. While the Corporations and Democracies had great success in securing new territory and resources, many individuals found themselves disenfranchised from power, lacking either the political skill or the business acumen to have a real say in the governing of their own affairs. In many systems, breakaway movements soon sprung up, with miners, engineers and farmers agreeing to pool their resources and seek a better life elsewhere.&lt;br /&gt;
The risks were great. Much of the galaxy’s unclaimed territory had by this time become a lawless hunting ground for pirates, cruising from system to system preying on unfortunate merchants and passenger liners. With no defence fleet of their own, and little money to pay for mercenary protection, the colonists turned their back on the complex systems of government that had oppressed them, and instead sought to build their strength through the ancient principles of feudalism. The idea was simple: anyone willing to provide military service to the movement would be rewarded with substantial territories in the new systems, with all the wealth and privilege associated with it.&lt;br /&gt;
&lt;br /&gt;
Despite its rather old-fashioned nature, this offer of service was readily accepted by thousands of highly-rated combat pilots, many of whom had also lost out in the galactic land-grab and were having to scrape a living as itinerant freelancers. For them, serving as a knight in one of the Feudal States was an opportunity to further their careers in a more stable environment and finally earn the respect they felt was their due.&lt;br /&gt;
&lt;br /&gt;
Many Feudal States were established in this way, each system forming its own set of houses, ranks, titles and styles based loosely upon those of Old Earth. For several years, the different states supported each other, eager to present a united front to other governments. But as the ranks of knights swelled, the Feudal States became ever more aggressive in character and friendly rivalry often led to war. Unable to challenge the military authority of the more established governments, the Feudal States turned upon each other in a bid to achieve supremacy.&lt;br /&gt;
&lt;br /&gt;
The Feudal Wars, as the conflicts became known, were small, localised affairs and had little impact on the galaxy as a whole, although many dealers in other systems made their fortune by supplying arms and equipment to the belligerent states. Only when fighting spilled over into a nearby Democratic system, resulting in the accidental destruction of a passing freighter convoy, did the Galactic Cooperation act to put an end to the conflict. A ceasefire was enforced, the terms of which included a general embargo on the supply of offensive weapons by members of the Cooperation to any of the Feudal States.&lt;br /&gt;
&lt;br /&gt;
The ceasefire remains in force today, however it is an uneasy truce and hostilities have recently resumed, with the feudal houses mounting frequent raids against each other’s trade convoys and even capturing high-ranking nobles for ransom. So long as any violence is contained within Feudal borders and does not endanger the lives of visitors, [[GalCop]] has tended to turn a blind eye to most inter-house conflict and police patrols do not venture far from the main space stations.&lt;br /&gt;
&lt;br /&gt;
=== Economy ===&lt;br /&gt;
The Feudal States operate a range of economic models from industrial to agricultural, but they are all hampered by a lack of valuable raw resources; the systems with the most potential having been colonised long ago. Some states have managed to exploit indigenous flora and fauna with moderate success, but the majority have turned to tourism to boost their income. Particularly popular are the [[Royal Hunting Lodge]]s, small stations set away from the main space lanes where knights and nobles gather to test their combat skills and take part in large inter-house tournaments. For those living in societies where conflict is increasingly frowned upon, and the presence of GalCop is never far away, a visit to the Feudal States offers the chance to experience the life of a warrior, living according to the ancient laws of [[Royal Hunting Lodge|chivalry]].&lt;br /&gt;
&lt;br /&gt;
=== Ships and Equipment ===&lt;br /&gt;
The trade embargo enforced by GalCop has left the Feudal States heavily self-sufficient in terms of equipment. Due to their lack of skill in high-tech engineering, the states favour simple but sturdy ships for military service rather than the more complex, high-maintenance models used by other governments. In recent times, most ships have been provided through a special contract with Beckmann-Fleisig AG, an independent shipbuilder with similar views on function over form.&lt;br /&gt;
&lt;br /&gt;
A significant consequence of the Feudal States’ low-tech approach is that pilots are less reliant on the complex missile and defence systems that have become popular on many ship models. As a result, pilots in feudal service are known to be exceptionally good shots and many hold high combat ratings with the Elite Federation. Typically, each Feudal House operates three basic ship classes: the Jäger, Korvette and Zerstörer.&lt;br /&gt;
&lt;br /&gt;
=== From Cim's Ship's Manual ===&lt;br /&gt;
''Tucked away inside his [[Ship's Library OXP]]:''&lt;br /&gt;
&lt;br /&gt;
A Feudal System is defined as “a system where the exercise of power is hierarchical in nature”. In practice, since that is virtually tautologous, this status is reserved for those systems which have been unable to come to a satisfactory agreement with the Cooperative over at least one of the terms in the treaties. They may make a few goodwill payments to fund a basic station and patrols, or the Cooperative may provide them from surplus funding elsewhere, but there is no formal agreement.&lt;br /&gt;
&lt;br /&gt;
[[Sector7/Atlaeser|Atlaeser]] in Chart 7 actually follows a traditional feudal model in its government, with the Grand Mover ruling with an inner court of Flock Leaders, and an outer court of Path and Skein Leaders (the planet still uses the traditional avian titles of nobility, from pre-spaceflight migrations). The system has relatively high living standards even for the serf classes, thanks to a well-balanced economy, and excellent natural resources.&lt;br /&gt;
&lt;br /&gt;
At the other end of the scale, [[Sector3/Sovere|Sovere]] in Chart 3 has virtually no natural resources, and even its water is contaminated with hallucinogenic compounds. The corporate government would like to sell the water to other systems, as there is some demand for it, but under Cooperative law it is classified as a Narcotic, and the government's refusal to accept this classification is the crux of the dispute with the Cooperative.&lt;br /&gt;
&lt;br /&gt;
[[Sector8/Cetiat|Cetiat]] in Chart 8 is the sort of system where the Cooperative practice of restricting the supply of technology to Feudal systems makes a lot of sense. The system refuses to sign up to either the non-aggression or mutual defence clauses of the Cooperative treaties, although fortunately its lack of industrial resources means that the nearby systems are not in any great danger from its pitiful navy. The dictatorship's territorial ambitions, while extremely unlikely to get anywhere, are long-standing.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' that cim's account is at loggerheads with that of Ramirez just above it. One presumes that this is motivated by an uneasiness with the concept of popular feudalism so far in the future. As adumbrated in the musings section beneath, with the collapse of the Golden Age due to Thargoid invasions and the rise of piracy, Feudalism is a perfectly reasonable response.&lt;br /&gt;
&lt;br /&gt;
== Ships and Stations ==&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; text-align=&amp;quot;center&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Jäger.png |link= Jäger |100px|]]&amp;lt;br&amp;gt;[[Jäger]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Korvette.png |link= Korvette |100px|]]&amp;lt;br&amp;gt;[[Korvette]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Zerstörer.png |link= Zerstörer |100px|]]&amp;lt;br&amp;gt;[[Zerstörer]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Lodge.png |link= Royal Hunting Lodge |100px|]]&amp;lt;br&amp;gt;[[Royal Hunting Lodge]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Difficulty ==&lt;br /&gt;
&lt;br /&gt;
Taking part in missions, challenges and tournaments is entirely optional.  Missions and tournament events increase in difficulty as you progress, while challenges vary in difficulty depending on the skill and rank of your opponent.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Note that the ship models use shaders to help with identification, though the OXP will run with shader options turned off.&lt;br /&gt;
&lt;br /&gt;
[[File:IconPF2.png|right|link=Planetfall2 OXP|PlanetFall2 adds feudal landing sites]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Requires [[Planetfall_OXP|Planetfall OXP]] (either the 2013 PF1 version ''or'' the 2024 PF2 version).&lt;br /&gt;
&lt;br /&gt;
== Download  ==&lt;br /&gt;
*v.2.1 Downloadable from [https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc here]&lt;br /&gt;
*[[Media:Feudal_States_1.16.3.oxz|Feudal_States_1.16.3.oxz]] (downloaded {{#downloads:Feudal_States_1.16.3.oxz}} times) or through the in-game [[Expansions Manager]].&lt;br /&gt;
*The Feudal States OXP is available for download at [http://www.arcadia-digital.net/steve/Oolite/Oolite.html Ramirez' Oolite Pages]&lt;br /&gt;
*[[Media:Feudal_States_1.16.2.oxz|Feudal_States_1.16.2.oxz]] for Oolite 1.79 or later (downloaded {{#downloads:Feudal_States_1.16.2.oxz}} times).&lt;br /&gt;
&lt;br /&gt;
[[Image:IconGNN.png|right|48px|link=GNN|DGill's version uses GNN]]&lt;br /&gt;
[[Image:IconLib.png|right|48px|link=Library OXP|DGill's version uses Library's PAD]]&lt;br /&gt;
[[Image:IconPF2.png|right|48px|link=Planetfall2|DGill's version uses Planetfall2]]&lt;br /&gt;
=== DGill's Feudal Suite ===&lt;br /&gt;
DGill's Feudal States oxp suite (in Beta, for playtesting) - these 4 OXPs replace Ramirez's original, above. [[File:New.gif]]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1lqj6brYWwgR555AcewXgvKpZak7sswTx?usp=sharing Feudal States Extended]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1O1_Wpcl2OW-e8dWPTDkq-5py1W2dOyRQ?usp=sharing Feudal States Tibecea]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1FeBS8o85YsSRHIpNtmwxI91bXA-Qq5DL?usp=sharing Feudal States Ships]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1l8eW-8q27q2bKlanl3-nD7XmtbwTtBVW?usp=sharing Feudal States Images]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Tibecea&amp;quot; both adds estate management to the game (once one is of high-enough feudal rank) ''and'' flavours the SE corner of G1 (Santaari) around [[Tibecea (Rough Guide)|Tibecea]].&lt;br /&gt;
&lt;br /&gt;
The feudal suite adds in more activities and dovetails beautifully with [[Planetfall2 OXP]], building on the possibilities which Planetfall2 introduces to Oolite. At the time of writing, it is the only OXP which does this. It ''also'' works with the older Planetfall.&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
G8 is missing from this OXP (there are 32 feudal states there). It would also be nice to add in some more nationalities (Norwegian? Hungarian? Finnish? Brazilian? Scottish? ''etc''). And maybe one or two of the other species - the batrachians of G8 Rear or the felines of G8 Aanra? &lt;br /&gt;
&lt;br /&gt;
The escutcheons for G7 are likewise missing.&lt;br /&gt;
&lt;br /&gt;
''This is all fixed in DGill's four-piece Feudal States suite''&lt;br /&gt;
&lt;br /&gt;
=== Historic context ===&lt;br /&gt;
Feudalism developed in Europe as a response to the downfall of the Roman Empire (≅ GalCop) and the incursions of the barbarians (≅ Thargoids &amp;amp; pirates). As matters in The Eight worsen and presuming that GalCop proves incapable of supporting local regimes, one might well expect more states to take up a feudal system of government as people cry out for protection against the invaders!&lt;br /&gt;
&lt;br /&gt;
== Tweaks ==&lt;br /&gt;
OXP's being modifiable, this one, also, can be changed at whim if you have the skills. See the screen shots of DGill's version [https://bb.oolite.space/viewtopic.php?p=278048#p278048 here], with larger hunting lodges, a feudal HUD (!) and a greater variety of different missions.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
Tucked away inside this oxp is one of [[User:Ramirez|Ramirez]]'s famous .pdf's stashed full of information (15 pages!). &lt;br /&gt;
&lt;br /&gt;
To extract it, try here: [[File:The Feudal States.pdf.zip]]&lt;br /&gt;
&lt;br /&gt;
''Or'' you can use the [[Expansions Manager]], or just expand it with your computer's software unzipper and peek into the folder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*You can find the Feudal States discussion thread on the Oolite Bulletin Boards [https://bb.oolite.space/viewtopic.php?t=5511 here].&lt;br /&gt;
*See the Royal Houses box at the bottom of this page&lt;br /&gt;
*An earlier Feudal OXP was written by Caracal [https://bb.oolite.space/viewtopic.php?t=4860 Teaser OXP for Feudals: Target Practice] (2008 - download link broken)&lt;br /&gt;
&lt;br /&gt;
This has proved a very popular OXP - together with the main thread there are many others dealing with problems people found. These two are a little different:&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=13140 Land ownership as reward for missions for Feudal lords?] (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=18710 How do you imagine Feudal Systems?] (2017)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FeudalStatesRoyalHouses}}&lt;br /&gt;
&lt;br /&gt;
{{station-OXP}}{{ship-OXP}}{{mission-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:The Feudal States| ]] [[Category:Fictional organisations]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90121</id>
		<title>Feudal States</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Feudal_States&amp;diff=90121"/>
		<updated>2026-08-07T11:20:22Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* DGill's Feudal Suite */ Updated links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox OXP| title = Feudal States OXP&lt;br /&gt;
|image = [[Image:Titleeagle.jpg|200px]]&lt;br /&gt;
|download = [https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc Latest (2021)]&lt;br /&gt;
|version = 2.1&lt;br /&gt;
|story = N/A&lt;br /&gt;
|stations = [[Feudal States#Ships and Stations|Stations]]&lt;br /&gt;
|ships = [[Feudal States#Ships and Stations|Ships]]&lt;br /&gt;
|mission = [[Feudal States#Elements|Elements]]&lt;br /&gt;
|equipment = N/A&lt;br /&gt;
|alternativeHUD = None&lt;br /&gt;
|soundSet = Some Music&lt;br /&gt;
|category = Systems OXPs&lt;br /&gt;
|author = [[User:Ramirez|Ramirez]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview  ==&lt;br /&gt;
&lt;br /&gt;
The Feudal States is a flavour OXP that adds various new elements to the ''leading'' feudal systems in Oolite galaxies.  The current version covers Galaxies 1, 2, 3, 5, 6 and (incompletely) 7.&lt;br /&gt;
&lt;br /&gt;
== Elements ==&lt;br /&gt;
&lt;br /&gt;
The OXP contains four basic elements:&lt;br /&gt;
&lt;br /&gt;
'''Challenges'''&lt;br /&gt;
&lt;br /&gt;
Pilots can visit [[Royal Hunting Lodge]]s where they are able to challenge nobles in ship-to-ship contact.  Bets can be placed on the outcome, giving you an alternative way of making quick money. Use the '''F8''' interface while docked at the Lodge to accept a challenge and bet on it.&lt;br /&gt;
&lt;br /&gt;
'''Missions'''&lt;br /&gt;
&lt;br /&gt;
Good pilots are in high demand amongst the Feudal States.  Visit the Royal Court where you can take on missions, ranging from simple deliveries to the capture and ransom of senior nobles. Use the '''F8''' interface for the Royal Court after landing on the planet.&lt;br /&gt;
&lt;br /&gt;
'''Promotions'''&lt;br /&gt;
&lt;br /&gt;
As your standing with the Feudal States increases, you can join their ranks as a knight of one of the royal houses.  Further success will see you elevated to the peerage, with the chance of becoming one of the leading members of royal society.&lt;br /&gt;
&lt;br /&gt;
'''Tournaments'''&lt;br /&gt;
&lt;br /&gt;
The Feudal States hold regular tournaments where nobles gather to test their skills in combat.  All pilots with noble rank are eligible to take part, with the winner taking home a major cash prize as well as increasing their prestige.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More detailed information on the OXP is available in the PDF readme (see below).&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
The sections immediately beneath are taken from Ramirez's included .pdf:&lt;br /&gt;
[[File:Feudal inter Digebiti.png|thumb|right|500px|[[Sector1/Digebiti|Digebiti]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibecea.png|thumb|right|500px|[[Sector1/Tibecea|Tibecea]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
[[File:Feudal inter Tibedied.png|thumb|right|500px|[[Sector1/Tibedied|Tibedied]] (From DGill's Feudal States Images OXP)]]&lt;br /&gt;
=== History ===&lt;br /&gt;
The Feudal States were formed in the decades following the first wave of the galaxy’s human colonisation. While the Corporations and Democracies had great success in securing new territory and resources, many individuals found themselves disenfranchised from power, lacking either the political skill or the business acumen to have a real say in the governing of their own affairs. In many systems, breakaway movements soon sprung up, with miners, engineers and farmers agreeing to pool their resources and seek a better life elsewhere.&lt;br /&gt;
The risks were great. Much of the galaxy’s unclaimed territory had by this time become a lawless hunting ground for pirates, cruising from system to system preying on unfortunate merchants and passenger liners. With no defence fleet of their own, and little money to pay for mercenary protection, the colonists turned their back on the complex systems of government that had oppressed them, and instead sought to build their strength through the ancient principles of feudalism. The idea was simple: anyone willing to provide military service to the movement would be rewarded with substantial territories in the new systems, with all the wealth and privilege associated with it.&lt;br /&gt;
&lt;br /&gt;
Despite its rather old-fashioned nature, this offer of service was readily accepted by thousands of highly-rated combat pilots, many of whom had also lost out in the galactic land-grab and were having to scrape a living as itinerant freelancers. For them, serving as a knight in one of the Feudal States was an opportunity to further their careers in a more stable environment and finally earn the respect they felt was their due.&lt;br /&gt;
&lt;br /&gt;
Many Feudal States were established in this way, each system forming its own set of houses, ranks, titles and styles based loosely upon those of Old Earth. For several years, the different states supported each other, eager to present a united front to other governments. But as the ranks of knights swelled, the Feudal States became ever more aggressive in character and friendly rivalry often led to war. Unable to challenge the military authority of the more established governments, the Feudal States turned upon each other in a bid to achieve supremacy.&lt;br /&gt;
&lt;br /&gt;
The Feudal Wars, as the conflicts became known, were small, localised affairs and had little impact on the galaxy as a whole, although many dealers in other systems made their fortune by supplying arms and equipment to the belligerent states. Only when fighting spilled over into a nearby Democratic system, resulting in the accidental destruction of a passing freighter convoy, did the Galactic Cooperation act to put an end to the conflict. A ceasefire was enforced, the terms of which included a general embargo on the supply of offensive weapons by members of the Cooperation to any of the Feudal States.&lt;br /&gt;
&lt;br /&gt;
The ceasefire remains in force today, however it is an uneasy truce and hostilities have recently resumed, with the feudal houses mounting frequent raids against each other’s trade convoys and even capturing high-ranking nobles for ransom. So long as any violence is contained within Feudal borders and does not endanger the lives of visitors, [[GalCop]] has tended to turn a blind eye to most inter-house conflict and police patrols do not venture far from the main space stations.&lt;br /&gt;
&lt;br /&gt;
=== Economy ===&lt;br /&gt;
The Feudal States operate a range of economic models from industrial to agricultural, but they are all hampered by a lack of valuable raw resources; the systems with the most potential having been colonised long ago. Some states have managed to exploit indigenous flora and fauna with moderate success, but the majority have turned to tourism to boost their income. Particularly popular are the [[Royal Hunting Lodge]]s, small stations set away from the main space lanes where knights and nobles gather to test their combat skills and take part in large inter-house tournaments. For those living in societies where conflict is increasingly frowned upon, and the presence of GalCop is never far away, a visit to the Feudal States offers the chance to experience the life of a warrior, living according to the ancient laws of [[Royal Hunting Lodge|chivalry]].&lt;br /&gt;
&lt;br /&gt;
=== Ships and Equipment ===&lt;br /&gt;
The trade embargo enforced by GalCop has left the Feudal States heavily self-sufficient in terms of equipment. Due to their lack of skill in high-tech engineering, the states favour simple but sturdy ships for military service rather than the more complex, high-maintenance models used by other governments. In recent times, most ships have been provided through a special contract with Beckmann-Fleisig AG, an independent shipbuilder with similar views on function over form.&lt;br /&gt;
&lt;br /&gt;
A significant consequence of the Feudal States’ low-tech approach is that pilots are less reliant on the complex missile and defence systems that have become popular on many ship models. As a result, pilots in feudal service are known to be exceptionally good shots and many hold high combat ratings with the Elite Federation. Typically, each Feudal House operates three basic ship classes: the Jäger, Korvette and Zerstörer.&lt;br /&gt;
&lt;br /&gt;
=== From Cim's Ship's Manual ===&lt;br /&gt;
''Tucked away inside his [[Ship's Library OXP]]:''&lt;br /&gt;
&lt;br /&gt;
A Feudal System is defined as “a system where the exercise of power is hierarchical in nature”. In practice, since that is virtually tautologous, this status is reserved for those systems which have been unable to come to a satisfactory agreement with the Cooperative over at least one of the terms in the treaties. They may make a few goodwill payments to fund a basic station and patrols, or the Cooperative may provide them from surplus funding elsewhere, but there is no formal agreement.&lt;br /&gt;
&lt;br /&gt;
[[Sector7/Atlaeser|Atlaeser]] in Chart 7 actually follows a traditional feudal model in its government, with the Grand Mover ruling with an inner court of Flock Leaders, and an outer court of Path and Skein Leaders (the planet still uses the traditional avian titles of nobility, from pre-spaceflight migrations). The system has relatively high living standards even for the serf classes, thanks to a well-balanced economy, and excellent natural resources.&lt;br /&gt;
&lt;br /&gt;
At the other end of the scale, [[Sector3/Sovere|Sovere]] in Chart 3 has virtually no natural resources, and even its water is contaminated with hallucinogenic compounds. The corporate government would like to sell the water to other systems, as there is some demand for it, but under Cooperative law it is classified as a Narcotic, and the government's refusal to accept this classification is the crux of the dispute with the Cooperative.&lt;br /&gt;
&lt;br /&gt;
[[Sector8/Cetiat|Cetiat]] in Chart 8 is the sort of system where the Cooperative practice of restricting the supply of technology to Feudal systems makes a lot of sense. The system refuses to sign up to either the non-aggression or mutual defence clauses of the Cooperative treaties, although fortunately its lack of industrial resources means that the nearby systems are not in any great danger from its pitiful navy. The dictatorship's territorial ambitions, while extremely unlikely to get anywhere, are long-standing.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' that cim's account is at loggerheads with that of Ramirez just above it. One presumes that this is motivated by an uneasiness with the concept of popular feudalism so far in the future. As adumbrated in the musings section beneath, with the collapse of the Golden Age due to Thargoid invasions and the rise of piracy, Feudalism is a perfectly reasonable response.&lt;br /&gt;
&lt;br /&gt;
== Ships and Stations ==&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; text-align=&amp;quot;center&amp;quot;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Jäger.png |link= Jäger |100px|]]&amp;lt;br&amp;gt;[[Jäger]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Korvette.png |link= Korvette |100px|]]&amp;lt;br&amp;gt;[[Korvette]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Zerstörer.png |link= Zerstörer |100px|]]&amp;lt;br&amp;gt;[[Zerstörer]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;175&amp;quot;|[[Image:Lodge.png |link= Royal Hunting Lodge |100px|]]&amp;lt;br&amp;gt;[[Royal Hunting Lodge]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Difficulty ==&lt;br /&gt;
&lt;br /&gt;
Taking part in missions, challenges and tournaments is entirely optional.  Missions and tournament events increase in difficulty as you progress, while challenges vary in difficulty depending on the skill and rank of your opponent.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Note that the ship models use shaders to help with identification, though the OXP will run with shader options turned off.&lt;br /&gt;
&lt;br /&gt;
[[File:IconPF2.png|right|link=Planetfall2 OXP|PlanetFall2 adds feudal landing sites]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Requires [[Planetfall_OXP|Planetfall OXP]] (either the 2013 PF1 version ''or'' the 2024 PF2 version).&lt;br /&gt;
&lt;br /&gt;
== Download  ==&lt;br /&gt;
&lt;br /&gt;
*v.2.1 Downloadable from [[https://app.box.com/s/n82zni541uj4bazmb7cp43x2lk6wu4sc here]]&lt;br /&gt;
*[[Media:Feudal_States_1.16.3.oxz|Feudal_States_1.16.3.oxz]] (downloaded {{#downloads:Feudal_States_1.16.3.oxz}} times) or through the in-game [[Expansions Manager]].&lt;br /&gt;
*The Feudal States OXP is available for download at [http://www.arcadia-digital.net/steve/Oolite/Oolite.html Ramirez' Oolite Pages]&lt;br /&gt;
*[[Media:Feudal_States_1.16.2.oxz|Feudal_States_1.16.2.oxz]] for Oolite 1.79 or later (downloaded {{#downloads:Feudal_States_1.16.2.oxz}} times).&lt;br /&gt;
&lt;br /&gt;
[[Image:IconGNN.png|right|48px|link=GNN|DGill's version uses GNN]]&lt;br /&gt;
[[Image:IconLib.png|right|48px|link=Library OXP|DGill's version uses Library's PAD]]&lt;br /&gt;
[[Image:IconPF2.png|right|48px|link=Planetfall2|DGill's version uses Planetfall2]]&lt;br /&gt;
=== DGill's Feudal Suite ===&lt;br /&gt;
DGill's Feudal States oxp suite (in Beta, for playtesting) - these 4 OXPs replace Ramirez's original, above. [[File:New.gif]]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1lqj6brYWwgR555AcewXgvKpZak7sswTx?usp=sharing Feudal States Extended]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1O1_Wpcl2OW-e8dWPTDkq-5py1W2dOyRQ?usp=sharing Feudal States Tibecea]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1FeBS8o85YsSRHIpNtmwxI91bXA-Qq5DL?usp=sharing Feudal States Ships]&lt;br /&gt;
*[https://drive.google.com/drive/folders/1l8eW-8q27q2bKlanl3-nD7XmtbwTtBVW?usp=sharing Feudal States Images]&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
G8 is missing from this OXP (there are 32 feudal states there). It would also be nice to add in some more nationalities (Norwegian? Hungarian? Finnish? Brazilian? Scottish? ''etc''). And maybe one or two of the other species - the batrachians of G8 Rear or the felines of G8 Aanra? &lt;br /&gt;
&lt;br /&gt;
The escutcheons for G7 are likewise missing.&lt;br /&gt;
&lt;br /&gt;
=== Historic context ===&lt;br /&gt;
Feudalism developed in Europe as a response to the downfall of the Roman Empire (≅ GalCop) and the incursions of the barbarians (≅ Thargoids &amp;amp; pirates). As matters in The Eight worsen and presuming that GalCop proves incapable of supporting local regimes, one might well expect more states to take up a feudal system of government as people cry out for protection against the invaders!&lt;br /&gt;
&lt;br /&gt;
== Tweaks ==&lt;br /&gt;
OXP's being modifiable, this one, also, can be changed at whim if you have the skills. See the screen shots of DGill's version [https://bb.oolite.space/viewtopic.php?p=278048#p278048 here], with larger hunting lodges, a feudal HUD (!) and a greater variety of different missions.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
Tucked away inside this oxp is one of [[User:Ramirez|Ramirez]]'s famous .pdf's stashed full of information (15 pages!). &lt;br /&gt;
&lt;br /&gt;
To extract it, try here: [[File:The Feudal States.pdf.zip]]&lt;br /&gt;
&lt;br /&gt;
''Or'' you can use the [[Expansions Manager]], or just expand it with your computer's software unzipper and peek into the folder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*You can find the Feudal States discussion thread on the Oolite Bulletin Boards [https://bb.oolite.space/viewtopic.php?t=5511 here].&lt;br /&gt;
*See the Royal Houses box at the bottom of this page&lt;br /&gt;
*An earlier Feudal OXP was written by Caracal [https://bb.oolite.space/viewtopic.php?t=4860 Teaser OXP for Feudals: Target Practice] (2008 - download link broken)&lt;br /&gt;
&lt;br /&gt;
This has proved a very popular OXP - together with the main thread there are many others dealing with problems people found. These two are a little different:&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=13140 Land ownership as reward for missions for Feudal lords?] (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=18710 How do you imagine Feudal Systems?] (2017)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FeudalStatesRoyalHouses}}&lt;br /&gt;
&lt;br /&gt;
{{station-OXP}}{{ship-OXP}}{{mission-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:The Feudal States| ]] [[Category:Fictional organisations]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90113</id>
		<title>Materials in Oolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90113"/>
		<updated>2026-08-04T06:59:55Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since v.1.87 (August 2018), more advanced options have become available. See [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018), the attached update of Oct 2018 and the clarifications of May 2021. Oolite now supports the basic PBR (Physically Based Rendering) materials, using the new Oolite shaders system. The requirements are light energy conservation, a microfacet surface model and a physically based Bidirectional Reflective Distribution Function (BRDF) &lt;br /&gt;
&lt;br /&gt;
[[File:Viper Griff Specgloss.png|thumb|right|640px|Griff's PBR &amp;quot;SpecGloss Viper&amp;quot;]]&lt;br /&gt;
== PBR (Physically Based Rendering) materials: links ==&lt;br /&gt;
[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018)&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=285081#p285081 Specular Maps Alpha channel]: more by a_c_ (2022)&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 griff SpecGloss ships]: some q's &amp;amp; a's about colour corrections (2022)&lt;br /&gt;
:Also contains &lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=293033#p293033 Is there a (shipdata) variable with which I can reduce the amount of influence an emission or illumination map has?] (2023) Answers involve using the varieties of &amp;quot;_modulate_color&amp;quot; listed above - and shows an example of what happens.&lt;br /&gt;
=== 2018 New Materials OXPs ===&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 griff SpecGloss ships]: Griff's SpecGloss models of the Cobra Mk.1, Mk.3, Gecko, Mamba, Sidewinder &amp;amp; Viper&lt;br /&gt;
* [[Normal and Specular+Gloss Maps for Oolite v1.88+]] - a_c's update of Griff's 2013 vanilla game set (ships, stations, asteroids etc.).&lt;br /&gt;
: This is now incorporated into Oolive v.1.92 as the new vanilla game set&lt;br /&gt;
=== Tools ===&lt;br /&gt;
* [[Material Test Suite OXP]] — demonstrates most material properties.&lt;br /&gt;
* [[Library OXP]] also has a couple of add-on tools ([[MatFinder]] &amp;amp; DevTools) which enable you to play around with all this and see the effects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OXPNote|The rest of this page was last properly edited in 2013, well after the introduction of shaders but before [[User:Another commander|Another commander]]'s work on Oolite described just above}}&lt;br /&gt;
&lt;br /&gt;
Traditionally, the surface appearance of ships in Oolite has been defined entirely by textures specified in the ship’s model file and the ''[[#smooth|smooth]]'' attribute. Test release 1.67 added support for [[Shaders in Oolite|shaders]], and test release 1.69 expanded this to a more flexible '''material model'''. Under the new model, the texture file names in model files have been repurposed as '''material keys'''. A material key specifies an entry in the ship’s '''material dictionary''', specified in the ship’s ''[[shipdata.plist]]'' entry. For backwards compatibility, if no material of a given name is found, a material is generated using the material key as a diffuse texture name – providing the same functionality as previous versions of Oolite.&lt;br /&gt;
&lt;br /&gt;
This page documents the old material model as of Oolite test release 1.74 (2010), and applies to stable release 1.76 (2011) and later.&lt;br /&gt;
__TOC__&lt;br /&gt;
== Important concepts ==&lt;br /&gt;
The following concepts are important in understanding how materials work and how they interact with lights.&lt;br /&gt;
* '''Colour''': Oolite uses a basic low dynamic range lighting model. Colours are considered to be lists of three values, representing red, green and blue colours, each ranging from 0 to 1. These are often encoded as integers ranging from 0 to 255 for technical reasons, but 0 to 1 is the true range of values. There may also be an associated ''alpha channel'', which is traditionally used for blending effects. In shaders, any colour channel can be used for any purpose, and textures often encode values that are not treated as colours.&lt;br /&gt;
* '''Fragment''': roughty speaking, an on-screen pixel. When objects are rendered, their geometry is used to generate a fragments, which are then coloured based on lighting and materials.&lt;br /&gt;
* '''Modulation''': multiplying two colours together, by channel. For instance, if the calculated light colour for a given fragment is pale yellow – [1, 1, 0.8] – and the corresponding part of the diffuse map is turquoise – [0.2, 0.8, 0.8] – the ''diffuse contribution'' is [0.2, 0.8, 0.64] (a greenish tint). In graphics programs, this blending mode is usually called ''Multiply''.&lt;br /&gt;
* '''Additive blending''': adding two colours together, by channel. In Oolite’s low dynamic range lighting model, the result is always clipped to the range 0..1. In graphics programs, this blending mode is usually called ''Lighten''.&lt;br /&gt;
* '''Normals''': All lighting calculations require a concept of the orientation of a surface relative to a light and, for reflections, relative to the camera. A surface oriented towards the light will be lighter than a surface oriented away from it. The ''normal'' for any given point on a surface is a vector pointing straight out, which for our purposes ''defines'' the concept of “straight out”.&amp;lt;br /&amp;gt;By default, Oolite models have constant normals across each face. By setting the &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; attribute in [[shipdata.plist]], normals are instead interpolated across each face, with each vertex having a normal that is a weighted average of surounding faces’ normals, and each point on a surface getting a weighted average of the normals at the corners of the face. Using ''smooth groups'', a model can be divided into regions which are smoothed but have sharp boundaries between them. As of Oolite 1.74, models can also include explicit per-vertex normals instead of having Oolite calculate them – most 3D modellers export this information.&amp;lt;br /&amp;gt;When using smoothing, it is important to understand that Oolite does not add any geometry,and will result in each vertex being lit as if it is locally flat. This is generally inappropriate for any sharp corner. If you set &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; on a basic cube, the result will be badly lit.&lt;br /&gt;
* '''Diffuse reflection''': light that is reflected evenly in all directions. A “dull” surface primarily reflects diffusely. Because the light is reflected evenly in all directions, the diffuse term is independent of the camera position; it is a function of the light and the surface normal. The standard diffuse reflection term is the cosine of the angle between the direction to the light and the normal, or zero if this is negative – this is known as the [http://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian reflectance model]. This value is then modulated with the material’s diffuse colour and diffuse map.&lt;br /&gt;
* '''Specular reflection''': light that is reflected in a particular direction, producing a shiny effect. In real life, this is simply a mirror reflection which is generally darkened and blurred, leaving an enlarged, blurry reflection of bright light sources, with other objects being washed out so they aren’t noticeable. In Oolite, a simpler mathematical model called the [http://en.wikipedia.org/wiki/Blinn–Phong_shading_model Blinn-Phong shading model] is used.&amp;lt;br /&amp;gt;[http://www.youtube.com/watch?v=76jvMmV1ih0 This video] demonstrates the effects of specular lighting and specular mapping on the built-in scarred alloy model.&lt;br /&gt;
&lt;br /&gt;
== The material dictionary ==&lt;br /&gt;
The '''material dictionary''' is actually specified as two separate dictionaries in the ''shipdata.plist'' entry. The first is called ''materials'', the second ''shaders''. If [[Shaders in Oolite|shader support]] is available and enabled, the entries in ''shaders'' are used in preference to those in ''materials''. Otherwise, ''shaders'' is ignored. The entries in the two dictionaries take exactly the same form, however; it is possible to specify a shader in the ''materials'' dictionary, and it will simply be ignored if shader support is not available. The ''materials'' and ''shaders'' dictionaries, merged together, are known as a ''material dictionary''.&lt;br /&gt;
&lt;br /&gt;
=== Material specifiers ===&lt;br /&gt;
The material dictionary is a [[property list]] dictionary whose keys are ''material keys'' as defined below, and whose values are '''material specifiers''', which are either dictionaries or strings. When a string is used as a material specifier, it is equivalent to a dictionary with that string as the value for '''diffuse_map''', and no other properties. Currently-supported material specifier keys are listed here; “texture specifier” and similar are defined below.&lt;br /&gt;
&lt;br /&gt;
Most of these keys have no effect when a custom shader is in effect.&lt;br /&gt;
&lt;br /&gt;
When shaders are disabled or not available, emission and illumination maps are supported only if reduced detail is disabled and the graphics hardware supports multi-texturing. If '''emission_modulate_color''', '''illumination_map''', or '''emission_and_illumination_map''' are used, Oolite must combine them into a single emission map. It is generally preferable to do this in advance (by modulating the illumination map with the diffuse map and blending it additively with the emission map, after applying any colouring). This is more efficient when using shaders, too.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ General material attribues&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''ambient_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The ambient colour of the entity, that is, the colour reflected evenly in all directions by starlight. If there is a '''diffuse_map''', the '''ambient_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || Overall diffuse colour of the entity; that is, the colour reflected in a “non-shiny” way on the sunlit side of the entity. If there is a '''diffuse_map''', the '''diffuse_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the basic colour of the material. This is a “normal” texture, the same as you get without a material dictionary. If not specified, the material key will be used. To specify no texture, use an empty string for '''diffuse_map'''. Ignored when using shaders.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The emitted (glow) colour of the material. This is ignored when '''emission_map''' is in use (but see also: '''emission_modulate_color'''). Default: black (0.0, 0.0, 0.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying emission (glow) colours. This is blended additively with all other colour terms. If '''emission_modulate_color''' is specified, the emission map is modulated by the modulate colour. Emission maps are used when shaders are active, and without shaders on supported hardware.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''emission_map'''. If the emission map is in full colour, it is best to apply the colouring in advance using a graphics program. However, if the emission map is a single colour, using a greyscale emission map and a modulate colour will reduce memory usage by a factor of four when shaders are in use. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_and_illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture whose RGB channels act like '''emission_map''', and whose alpha channel acts like '''illumination_map''' (and can be coloured with '''illumination_modulate_color'''). This uses less memory (on systems with shaders) than using separate shaders, although blending the emission and illumination maps into a single emission map, as described above, is still preferable.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying local illumination colour, which is added to incoming light. It differs from an emission map in that it is modulated with the diffuse colour before being added to the final colour. See example below.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''illumination_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture modifying [[#Important concepts|normals]]. The red, green and blue channels are the x, y and z coordinates of normals relative to the underlying normal (“[http://en.wikipedia.org/wiki/Normal_mapping tangent-space normal mapping]”), and the alpha channel is ingored. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_and_parallax_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || Like '''normal_map''', except that the alpha channel is includes a depth value used to add [http://en.wikipedia.org/wiki/Parallax_mapping simulated perspective]. If specified, '''normal_map''' is ignored.&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_bias''' || number || A value added to the parallax component of '''normal_and_parallax_map''', after multiplying by '''parallax_scale''' (default: 0).&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_scale''' || number || A scale factor for the parallax component of '''normal_and_parallax_map''' (default: 0.01). This value is the depth of the parallax map relative to the size of the texture. For instance, a value of 0.01 on a texture 100 metres wide will produce a maximum indentation of 1 metre. High parallax_scale values tend to lead to unacceptable texture distortion and “creeping” artefacts.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The colour to use for specular reflection over the entire model when '''specular_map''' is not used. The specular term is added to the diffuse term; for less intense specular highlights, use a darker colour. Default: black (0.0, 0.0, 0.0, 1.0) if '''shininess''' is zero, (0.2, 0.2, 0.2, 1.0) otherwise. &lt;br /&gt;
|-&lt;br /&gt;
| '''specular_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the specular highlight colour in its red, green and blue channels, and '''shininess''' in its alpha channel. 1 (fully opaque) means the value of '''shininess''' is used. 0 means a very low shininess is used. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''specular_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''shininess'''  || integer || The “tightness” of specular reflection, ranging from 0 to 128. 0 means no specular highlight. 128 is maximally shiny. Default: 128 if '''specular_map''' is used, 10 otherwise. '''Limitation:''' to use different shininess values with '''specular_map''' or '''specular_color''', you must either use the default or use different “shaders” and “materials” dictionaries. This should be fixed for 1.75.&lt;br /&gt;
|-&lt;br /&gt;
| '''vertex_shader''' || file&amp;amp;nbsp;name || name of GLSL vertex program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''fragment_shader''' || file&amp;amp;nbsp;name || name of GLSL fragment program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''textures''' || array&amp;amp;nbsp;of&amp;amp;nbsp;[[#Texture specifiers|texture&amp;amp;nbsp;specifier]]s || Textures to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
| '''uniforms''' || dictionary of uniform&amp;amp;nbsp;variable&amp;amp;nbsp;specifiers || uniform variables to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Illumination mapping vs. emission mapping ====&lt;br /&gt;
This image demonstrates the distinction between illumination mapping (top row) and emission mapping (bottom row).&lt;br /&gt;
&lt;br /&gt;
[[Image:Emission-vs-illumination.png]]&lt;br /&gt;
&lt;br /&gt;
=== Colour specifiers ===&lt;br /&gt;
'''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:&lt;br /&gt;
&lt;br /&gt;
==== Named colours ====&lt;br /&gt;
The simplest form of colour specifier is a string containing a colour name. The following names are supported:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Colour names&lt;br /&gt;
! Name !! RGBA value&lt;br /&gt;
|-&lt;br /&gt;
|  blackColor || 0, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| darkGrayColor || 1/3, 1/3, 1/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| lightGrayColor || 2/3, 2/3, 2/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| whiteColor || 1, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| grayColor || 1/2, 1/2, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| redColor || 1, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| greenColor || 0, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| blueColor || 0, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| cyanColor || 0, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| yellowColor || 1, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| magentaColor || 1, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
|  orangeColor || 1, 1/2, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| purpleColor || 1/2, 0, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| brownColor || 0.6, 0.4, 0.2, 1&lt;br /&gt;
|-&lt;br /&gt;
| clearColor || 0, 0, 0, 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGBA tuples ====&lt;br /&gt;
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:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;1 1 0&amp;quot;&amp;lt;/code&amp;gt; — yellow&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;0 128 0 128&amp;quot;&amp;lt;/code&amp;gt; — medium green at 50% opacity&lt;br /&gt;
* &amp;lt;code&amp;gt;(1, 0, 0)&amp;lt;/code&amp;gt; – red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RGBA dictionaries ====&lt;br /&gt;
Just in case you’re unsure of the order the RGB[A] components come in, you can use a dictionary:&lt;br /&gt;
 {&lt;br /&gt;
    blue = 0.8;&lt;br /&gt;
    green = 0.8;&lt;br /&gt;
 }&lt;br /&gt;
Accepted keys are '''red''', '''green''', '''blue''' and '''alpha''' (or '''opacity'''), all optional (default: 0.0 for red, green and blue, 1.0 for alpha).&lt;br /&gt;
&lt;br /&gt;
==== HSBA dictionaries ====&lt;br /&gt;
But wait, there’s more! Colours may also be specified as dictionaries in the [http://en.wikipedia.org/wiki/HSB_colour_space 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.&lt;br /&gt;
 {&lt;br /&gt;
    // Pale magenta&lt;br /&gt;
    hue = 300;&lt;br /&gt;
    saturation = 0.3;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Texture specifiers ===&lt;br /&gt;
'''Texture specifiers''' are used to, er, specify textures. The simplest form of texture specifier is a string: &amp;lt;code&amp;gt;&amp;quot;ahruman-example-texture.png&amp;quot;&amp;lt;/code&amp;gt;. The very simplest texture specifier is the empty string, &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, meaning no texture. More complex texture specifiers are dictionaries, which can be used to specify a number of texture options.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''anisotropy''' || real || The degree of [http://en.wikipedia.org/wiki/Anisotropic_filtering anisotropic filtering] to use. Anisotropic filtering is used to reduce blurriness of MIP mapped textures shown at an angle (and thus only applies to textures whose '''min_filter''' is '''mipmap''' or '''default'''). The '''anisotropy''' setting is multiplied by the maximum anisotropy level specified by the system, and anisotropic filtering is used only if the result is greater than 1. (For example, on a GeForce FX 5200 card, the maximum level is 8, so an anisotropy value of 0.5 means an effective anisotropic filtering strength of 4. The precise meaning of this number is hardware-dependant. Fun, eh?) Anisotropic filtering is disabled in Reduced Detail mode and is not available on all hardware. Default: 0.5.&lt;br /&gt;
|-&lt;br /&gt;
| '''cube_map''' || boolean || If this is true, and the texture file is six times as high as it is wide, the texture will be treated as a cube map. If cube maps are not supported, it will be converted to a latitude/longitude map; if used as a diffuse map or emission/illumination map, you must ensure the model has appropriate texture coordinates. Note that cube maps are always available if shaders are supported, so custom shaders do not need to worry about this.&lt;br /&gt;
&lt;br /&gt;
'''cube_map''' is always true for planet textures. To convert textures to and from cube maps, see [[planettool]].&lt;br /&gt;
|-&lt;br /&gt;
| '''extract_channel''' || string || Indicates that one of the channels of the texture should be extracted into a new greyscale texture. Allowed values: '''r''', '''g''', '''b''' and '''a'''.&lt;br /&gt;
&lt;br /&gt;
This obviously involves extra work for Oolite, which is always a bad thing, but it makes it possible to combine multiple effect maps in a single texture for shaders and then extract channels for use as emission or illumination maps without shipping a redundant texture. If this means nothing to you, you probably don’t want to use '''extract_channel'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''mag_filter''' || string || Specifies how to scale up the texture when it is near the camera. Either of:&lt;br /&gt;
* '''nearest''' (use nearest-neighbour sampling, which produces a pixellated effect)&lt;br /&gt;
* '''linear''' (use linear interpolation, which produces a blurry effect).&lt;br /&gt;
Default: '''linear'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''min_filter''' || string || Specifies how to scale down the texture when it is far from the camera. One of:&lt;br /&gt;
* '''nearest''': nearest-neighbour sampling; generally very ugly, but sometimes useful for shaders using textures for special purposes.&lt;br /&gt;
* '''linear''': efficient, but rather ugly for textures with significant contrast or details.&lt;br /&gt;
* '''mipmap''': use trilinear MIP map filtering to improve scaling quality; generally also fast and least ugly, but uses 1/3 more memory, potentially slowing down systems with limited RAM or video memory.&lt;br /&gt;
* '''default''': '''linear''' in reduced detail mode, otherwise '''mipmap'''.&lt;br /&gt;
Default: '''default'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' || string || The file name of the texture to use. Must be a PNG image, in the Textures folder of Oolite or an OXP. In the specific case of '''diffuse_map''' textures, '''name''' is implicitly the same as the material key; to use no texture, you must specify &amp;lt;code&amp;gt;diffuse_map = &amp;quot;&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| '''no_shrink''' || boolean || Indicates that Oolite should not scale the texture down, except to meet hardware requirements. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_s''' || boolean || Whether Oolite should repeat the texture in the ''s'' (or ''u'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_t''' || boolean || Whether Oolite should repeat the texture in the ''t'' (or ''v'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''texture_LOD_bias''' || real || tweak factor for MIP mapping (which does not apply to other '''min_filter''' modes). MIP mapping involves a trade-off between scaling artefacts and blurriness; the LOD (level of detail) bias affects this. Positive values mean more blur, negative ones mean more artefacts. The default value is −0.25 (mostly so people won’t say “hey, why is everything blurrier in the new Oolite?”). Texture LOD bias is not available on all hardware.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Uniform specifiers ===&lt;br /&gt;
:''Main article: [[Shaders in Oolite: uniforms]]''&lt;br /&gt;
A ''uniform specifier'' is used to specify game information to pass to a [[Shaders in Oolite|shader program]]. As with [[#Texture specifiers|texture specifiers]], the simple case is a string, which is treated as &amp;lt;code&amp;gt;{ binding = &amp;quot;the string&amp;quot; }&amp;lt;/code&amp;gt;. For instance, uHullHeatLevel = hullHeatLevel&amp;lt;/code&amp;gt; will bind a shader’s &amp;lt;code&amp;gt;uHullHeatLevel&amp;lt;/code&amp;gt; uniform to a ship’s &amp;lt;code&amp;gt;hullHeatLevel&amp;lt;/code&amp;gt; property. Additional properties can be specified in a dictionary.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''asMatrix''' || boolean || For a '''binding''' uniform whose bound property is of type ''quaternion'', setting '''asMatrix''' to true causes the value to be converted to a rotation matrix. If '''asMatrix''' is false, the quaternion will be converted to a vector, whose w, x, y and z values match those of the quaternion. For any other type of uniform, '''asMatrix''' is ignored. Default: true.&lt;br /&gt;
|-&lt;br /&gt;
| '''binding''' || string || The entity property to bind to, for a '''binding''' uniform. Ignored for other types of uniform.&lt;br /&gt;
|-&lt;br /&gt;
| '''clamped''' || boolean || For a '''binding''' uniform whose bound property is of type ''float'', setting '''clamped''' to true causes the value to be restricted to the range 0 to 1, inclusive. For a binding of type ''int'', causes the value to be set to either 0 or 1; 1 indicates that the underlying property has any value other than 0. For any other type of uniform, '''clamped''' is ignored. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''normalized''' || boolean || For a '''binding''' uniform whose bound property is of type ''vector'', setting '''normalized''' to true causes the value to be normalized, that is, scaled to a length of 1. For any other type of uniform, '''normalized''' is ignored. The spelling '''normalised''' is also accepted. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''type''' || string || One of:&lt;br /&gt;
* '''binding''': indicates that the '''binding''' property specifies an entity property to be set dynamically each time the shader is used.&lt;br /&gt;
* '''float''' or '''real''': indicates that the '''value''' property is an floating-point number.&lt;br /&gt;
* '''int''' or '''integer''': indicates that the '''value''' property is an integer, or whole number.&lt;br /&gt;
* '''texture''': indicates that the '''value''' property is an integer specifying a texture unit, that is, an index in the '''textures''' array.&lt;br /&gt;
Default: '''float'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''value''' || number || The value to use for a '''float''', '''int''' or '''texture''' uniform. Ignored for '''binding''' uniforms.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Material dictionary example ===&lt;br /&gt;
Here is an example from the [[Material Test Suite OXP]]:&lt;br /&gt;
 materials =&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;cube-face&amp;quot; =&lt;br /&gt;
     {&lt;br /&gt;
         diffuse_map = &amp;quot;oolite_shader_test_suite_7_diffuse.png&amp;quot;;&lt;br /&gt;
         emission_and_illumination_map = &amp;quot;oolite_shader_test_suite_emission_and_illumination.png&amp;quot;;&lt;br /&gt;
         emission_modulate_color = (160, 255, 160);&lt;br /&gt;
         illumination_modulate_color = (180, 180, 200);&lt;br /&gt;
     };&lt;br /&gt;
 };&lt;br /&gt;
Here, the “cube-face” material is assigned the diffuse texture “oolite_shader_test_suite_7_diffuse.png” and a combined emission and illumination map (which is a greyscale+alpha texture). The emission and illumination components are then given coloured tints (slightly green and slightly blue, respectively), producing this:&lt;br /&gt;
&lt;br /&gt;
[[File:Oolite Material Test Suite 7.png|thumb|320px|right|[[Material Test Suite OXP]] ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Oolite]] [[Category:Oolite_scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90112</id>
		<title>Materials in Oolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90112"/>
		<updated>2026-08-04T06:19:53Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* See also */ Added relevant OXPs and structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since v.1.87 (August 2018), more advanced options have become available. See [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018), the attached update of Oct 2018 and the clarifications of May 2021. Oolite now supports the basic PBR (Physically Based Rendering) materials, using the new Oolite shaders system. The requirements are light energy conservation, a microfacet surface model and a physically based Bidirectional Reflective Distribution Function (BRDF) &lt;br /&gt;
&lt;br /&gt;
{{OXPNote|This page was last properly edited in 2013, well after the introduction of shaders but before [[User:Another commander|Another commander]]'s work on Oolite introducing specular &amp;amp; gloss maps, the new Oren-Nayar diffuse light model, high-definition graphic resolution ''etc''}}&lt;br /&gt;
&lt;br /&gt;
Traditionally, the surface appearance of ships in Oolite has been defined entirely by textures specified in the ship’s model file and the ''[[#smooth|smooth]]'' attribute. Test release 1.67 added support for [[Shaders in Oolite|shaders]], and test release 1.69 expanded this to a more flexible '''material model'''. Under the new model, the texture file names in model files have been repurposed as '''material keys'''. A material key specifies an entry in the ship’s '''material dictionary''', specified in the ship’s ''[[shipdata.plist]]'' entry. For backwards compatibility, if no material of a given name is found, a material is generated using the material key as a diffuse texture name – providing the same functionality as previous versions of Oolite.&lt;br /&gt;
&lt;br /&gt;
This page documents the material model as of Oolite test release 1.74 (2010), and applies to stable release 1.76 (2011) and later.&lt;br /&gt;
&lt;br /&gt;
== Important concepts ==&lt;br /&gt;
The following concepts are important in understanding how materials work and how they interact with lights.&lt;br /&gt;
* '''Colour''': Oolite uses a basic low dynamic range lighting model. Colours are considered to be lists of three values, representing red, green and blue colours, each ranging from 0 to 1. These are often encoded as integers ranging from 0 to 255 for technical reasons, but 0 to 1 is the true range of values. There may also be an associated ''alpha channel'', which is traditionally used for blending effects. In shaders, any colour channel can be used for any purpose, and textures often encode values that are not treated as colours.&lt;br /&gt;
* '''Fragment''': roughty speaking, an on-screen pixel. When objects are rendered, their geometry is used to generate a fragments, which are then coloured based on lighting and materials.&lt;br /&gt;
* '''Modulation''': multiplying two colours together, by channel. For instance, if the calculated light colour for a given fragment is pale yellow – [1, 1, 0.8] – and the corresponding part of the diffuse map is turquoise – [0.2, 0.8, 0.8] – the ''diffuse contribution'' is [0.2, 0.8, 0.64] (a greenish tint). In graphics programs, this blending mode is usually called ''Multiply''.&lt;br /&gt;
* '''Additive blending''': adding two colours together, by channel. In Oolite’s low dynamic range lighting model, the result is always clipped to the range 0..1. In graphics programs, this blending mode is usually called ''Lighten''.&lt;br /&gt;
* '''Normals''': All lighting calculations require a concept of the orientation of a surface relative to a light and, for reflections, relative to the camera. A surface oriented towards the light will be lighter than a surface oriented away from it. The ''normal'' for any given point on a surface is a vector pointing straight out, which for our purposes ''defines'' the concept of “straight out”.&amp;lt;br /&amp;gt;By default, Oolite models have constant normals across each face. By setting the &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; attribute in [[shipdata.plist]], normals are instead interpolated across each face, with each vertex having a normal that is a weighted average of surounding faces’ normals, and each point on a surface getting a weighted average of the normals at the corners of the face. Using ''smooth groups'', a model can be divided into regions which are smoothed but have sharp boundaries between them. As of Oolite 1.74, models can also include explicit per-vertex normals instead of having Oolite calculate them – most 3D modellers export this information.&amp;lt;br /&amp;gt;When using smoothing, it is important to understand that Oolite does not add any geometry,and will result in each vertex being lit as if it is locally flat. This is generally inappropriate for any sharp corner. If you set &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; on a basic cube, the result will be badly lit.&lt;br /&gt;
* '''Diffuse reflection''': light that is reflected evenly in all directions. A “dull” surface primarily reflects diffusely. Because the light is reflected evenly in all directions, the diffuse term is independent of the camera position; it is a function of the light and the surface normal. The standard diffuse reflection term is the cosine of the angle between the direction to the light and the normal, or zero if this is negative – this is known as the [http://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian reflectance model]. This value is then modulated with the material’s diffuse colour and diffuse map.&lt;br /&gt;
* '''Specular reflection''': light that is reflected in a particular direction, producing a shiny effect. In real life, this is simply a mirror reflection which is generally darkened and blurred, leaving an enlarged, blurry reflection of bright light sources, with other objects being washed out so they aren’t noticeable. In Oolite, a simpler mathematical model called the [http://en.wikipedia.org/wiki/Blinn–Phong_shading_model Blinn-Phong shading model] is used.&amp;lt;br /&amp;gt;[http://www.youtube.com/watch?v=76jvMmV1ih0 This video] demonstrates the effects of specular lighting and specular mapping on the built-in scarred alloy model.&lt;br /&gt;
&lt;br /&gt;
== The material dictionary ==&lt;br /&gt;
The '''material dictionary''' is actually specified as two separate dictionaries in the ''shipdata.plist'' entry. The first is called ''materials'', the second ''shaders''. If [[Shaders in Oolite|shader support]] is available and enabled, the entries in ''shaders'' are used in preference to those in ''materials''. Otherwise, ''shaders'' is ignored. The entries in the two dictionaries take exactly the same form, however; it is possible to specify a shader in the ''materials'' dictionary, and it will simply be ignored if shader support is not available. The ''materials'' and ''shaders'' dictionaries, merged together, are known as a ''material dictionary''.&lt;br /&gt;
&lt;br /&gt;
=== Material specifiers ===&lt;br /&gt;
The material dictionary is a [[property list]] dictionary whose keys are ''material keys'' as defined below, and whose values are '''material specifiers''', which are either dictionaries or strings. When a string is used as a material specifier, it is equivalent to a dictionary with that string as the value for '''diffuse_map''', and no other properties. Currently-supported material specifier keys are listed here; “texture specifier” and similar are defined below.&lt;br /&gt;
&lt;br /&gt;
Most of these keys have no effect when a custom shader is in effect.&lt;br /&gt;
&lt;br /&gt;
When shaders are disabled or not available, emission and illumination maps are supported only if reduced detail is disabled and the graphics hardware supports multi-texturing. If '''emission_modulate_color''', '''illumination_map''', or '''emission_and_illumination_map''' are used, Oolite must combine them into a single emission map. It is generally preferable to do this in advance (by modulating the illumination map with the diffuse map and blending it additively with the emission map, after applying any colouring). This is more efficient when using shaders, too.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ General material attribues&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''ambient_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The ambient colour of the entity, that is, the colour reflected evenly in all directions by starlight. If there is a '''diffuse_map''', the '''ambient_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || Overall diffuse colour of the entity; that is, the colour reflected in a “non-shiny” way on the sunlit side of the entity. If there is a '''diffuse_map''', the '''diffuse_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the basic colour of the material. This is a “normal” texture, the same as you get without a material dictionary. If not specified, the material key will be used. To specify no texture, use an empty string for '''diffuse_map'''. Ignored when using shaders.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The emitted (glow) colour of the material. This is ignored when '''emission_map''' is in use (but see also: '''emission_modulate_color'''). Default: black (0.0, 0.0, 0.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying emission (glow) colours. This is blended additively with all other colour terms. If '''emission_modulate_color''' is specified, the emission map is modulated by the modulate colour. Emission maps are used when shaders are active, and without shaders on supported hardware.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''emission_map'''. If the emission map is in full colour, it is best to apply the colouring in advance using a graphics program. However, if the emission map is a single colour, using a greyscale emission map and a modulate colour will reduce memory usage by a factor of four when shaders are in use. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_and_illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture whose RGB channels act like '''emission_map''', and whose alpha channel acts like '''illumination_map''' (and can be coloured with '''illumination_modulate_color'''). This uses less memory (on systems with shaders) than using separate shaders, although blending the emission and illumination maps into a single emission map, as described above, is still preferable.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying local illumination colour, which is added to incoming light. It differs from an emission map in that it is modulated with the diffuse colour before being added to the final colour. See example below.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''illumination_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture modifying [[#Important concepts|normals]]. The red, green and blue channels are the x, y and z coordinates of normals relative to the underlying normal (“[http://en.wikipedia.org/wiki/Normal_mapping tangent-space normal mapping]”), and the alpha channel is ingored. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_and_parallax_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || Like '''normal_map''', except that the alpha channel is includes a depth value used to add [http://en.wikipedia.org/wiki/Parallax_mapping simulated perspective]. If specified, '''normal_map''' is ignored.&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_bias''' || number || A value added to the parallax component of '''normal_and_parallax_map''', after multiplying by '''parallax_scale''' (default: 0).&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_scale''' || number || A scale factor for the parallax component of '''normal_and_parallax_map''' (default: 0.01). This value is the depth of the parallax map relative to the size of the texture. For instance, a value of 0.01 on a texture 100 metres wide will produce a maximum indentation of 1 metre. High parallax_scale values tend to lead to unacceptable texture distortion and “creeping” artefacts.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The colour to use for specular reflection over the entire model when '''specular_map''' is not used. The specular term is added to the diffuse term; for less intense specular highlights, use a darker colour. Default: black (0.0, 0.0, 0.0, 1.0) if '''shininess''' is zero, (0.2, 0.2, 0.2, 1.0) otherwise. &lt;br /&gt;
|-&lt;br /&gt;
| '''specular_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the specular highlight colour in its red, green and blue channels, and '''shininess''' in its alpha channel. 1 (fully opaque) means the value of '''shininess''' is used. 0 means a very low shininess is used. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''specular_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''shininess'''  || integer || The “tightness” of specular reflection, ranging from 0 to 128. 0 means no specular highlight. 128 is maximally shiny. Default: 128 if '''specular_map''' is used, 10 otherwise. '''Limitation:''' to use different shininess values with '''specular_map''' or '''specular_color''', you must either use the default or use different “shaders” and “materials” dictionaries. This should be fixed for 1.75.&lt;br /&gt;
|-&lt;br /&gt;
| '''vertex_shader''' || file&amp;amp;nbsp;name || name of GLSL vertex program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''fragment_shader''' || file&amp;amp;nbsp;name || name of GLSL fragment program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''textures''' || array&amp;amp;nbsp;of&amp;amp;nbsp;[[#Texture specifiers|texture&amp;amp;nbsp;specifier]]s || Textures to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
| '''uniforms''' || dictionary of uniform&amp;amp;nbsp;variable&amp;amp;nbsp;specifiers || uniform variables to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Illumination mapping vs. emission mapping ====&lt;br /&gt;
This image demonstrates the distinction between illumination mapping (top row) and emission mapping (bottom row).&lt;br /&gt;
&lt;br /&gt;
[[Image:Emission-vs-illumination.png]]&lt;br /&gt;
&lt;br /&gt;
=== Colour specifiers ===&lt;br /&gt;
'''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:&lt;br /&gt;
&lt;br /&gt;
==== Named colours ====&lt;br /&gt;
The simplest form of colour specifier is a string containing a colour name. The following names are supported:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Colour names&lt;br /&gt;
! Name !! RGBA value&lt;br /&gt;
|-&lt;br /&gt;
|  blackColor || 0, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| darkGrayColor || 1/3, 1/3, 1/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| lightGrayColor || 2/3, 2/3, 2/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| whiteColor || 1, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| grayColor || 1/2, 1/2, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| redColor || 1, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| greenColor || 0, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| blueColor || 0, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| cyanColor || 0, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| yellowColor || 1, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| magentaColor || 1, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
|  orangeColor || 1, 1/2, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| purpleColor || 1/2, 0, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| brownColor || 0.6, 0.4, 0.2, 1&lt;br /&gt;
|-&lt;br /&gt;
| clearColor || 0, 0, 0, 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGBA tuples ====&lt;br /&gt;
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:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;1 1 0&amp;quot;&amp;lt;/code&amp;gt; — yellow&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;0 128 0 128&amp;quot;&amp;lt;/code&amp;gt; — medium green at 50% opacity&lt;br /&gt;
* &amp;lt;code&amp;gt;(1, 0, 0)&amp;lt;/code&amp;gt; – red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RGBA dictionaries ====&lt;br /&gt;
Just in case you’re unsure of the order the RGB[A] components come in, you can use a dictionary:&lt;br /&gt;
 {&lt;br /&gt;
    blue = 0.8;&lt;br /&gt;
    green = 0.8;&lt;br /&gt;
 }&lt;br /&gt;
Accepted keys are '''red''', '''green''', '''blue''' and '''alpha''' (or '''opacity'''), all optional (default: 0.0 for red, green and blue, 1.0 for alpha).&lt;br /&gt;
&lt;br /&gt;
==== HSBA dictionaries ====&lt;br /&gt;
But wait, there’s more! Colours may also be specified as dictionaries in the [http://en.wikipedia.org/wiki/HSB_colour_space 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.&lt;br /&gt;
 {&lt;br /&gt;
    // Pale magenta&lt;br /&gt;
    hue = 300;&lt;br /&gt;
    saturation = 0.3;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Texture specifiers ===&lt;br /&gt;
'''Texture specifiers''' are used to, er, specify textures. The simplest form of texture specifier is a string: &amp;lt;code&amp;gt;&amp;quot;ahruman-example-texture.png&amp;quot;&amp;lt;/code&amp;gt;. The very simplest texture specifier is the empty string, &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, meaning no texture. More complex texture specifiers are dictionaries, which can be used to specify a number of texture options.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''anisotropy''' || real || The degree of [http://en.wikipedia.org/wiki/Anisotropic_filtering anisotropic filtering] to use. Anisotropic filtering is used to reduce blurriness of MIP mapped textures shown at an angle (and thus only applies to textures whose '''min_filter''' is '''mipmap''' or '''default'''). The '''anisotropy''' setting is multiplied by the maximum anisotropy level specified by the system, and anisotropic filtering is used only if the result is greater than 1. (For example, on a GeForce FX 5200 card, the maximum level is 8, so an anisotropy value of 0.5 means an effective anisotropic filtering strength of 4. The precise meaning of this number is hardware-dependant. Fun, eh?) Anisotropic filtering is disabled in Reduced Detail mode and is not available on all hardware. Default: 0.5.&lt;br /&gt;
|-&lt;br /&gt;
| '''cube_map''' || boolean || If this is true, and the texture file is six times as high as it is wide, the texture will be treated as a cube map. If cube maps are not supported, it will be converted to a latitude/longitude map; if used as a diffuse map or emission/illumination map, you must ensure the model has appropriate texture coordinates. Note that cube maps are always available if shaders are supported, so custom shaders do not need to worry about this.&lt;br /&gt;
&lt;br /&gt;
'''cube_map''' is always true for planet textures. To convert textures to and from cube maps, see [[planettool]].&lt;br /&gt;
|-&lt;br /&gt;
| '''extract_channel''' || string || Indicates that one of the channels of the texture should be extracted into a new greyscale texture. Allowed values: '''r''', '''g''', '''b''' and '''a'''.&lt;br /&gt;
&lt;br /&gt;
This obviously involves extra work for Oolite, which is always a bad thing, but it makes it possible to combine multiple effect maps in a single texture for shaders and then extract channels for use as emission or illumination maps without shipping a redundant texture. If this means nothing to you, you probably don’t want to use '''extract_channel'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''mag_filter''' || string || Specifies how to scale up the texture when it is near the camera. Either of:&lt;br /&gt;
* '''nearest''' (use nearest-neighbour sampling, which produces a pixellated effect)&lt;br /&gt;
* '''linear''' (use linear interpolation, which produces a blurry effect).&lt;br /&gt;
Default: '''linear'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''min_filter''' || string || Specifies how to scale down the texture when it is far from the camera. One of:&lt;br /&gt;
* '''nearest''': nearest-neighbour sampling; generally very ugly, but sometimes useful for shaders using textures for special purposes.&lt;br /&gt;
* '''linear''': efficient, but rather ugly for textures with significant contrast or details.&lt;br /&gt;
* '''mipmap''': use trilinear MIP map filtering to improve scaling quality; generally also fast and least ugly, but uses 1/3 more memory, potentially slowing down systems with limited RAM or video memory.&lt;br /&gt;
* '''default''': '''linear''' in reduced detail mode, otherwise '''mipmap'''.&lt;br /&gt;
Default: '''default'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' || string || The file name of the texture to use. Must be a PNG image, in the Textures folder of Oolite or an OXP. In the specific case of '''diffuse_map''' textures, '''name''' is implicitly the same as the material key; to use no texture, you must specify &amp;lt;code&amp;gt;diffuse_map = &amp;quot;&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| '''no_shrink''' || boolean || Indicates that Oolite should not scale the texture down, except to meet hardware requirements. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_s''' || boolean || Whether Oolite should repeat the texture in the ''s'' (or ''u'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_t''' || boolean || Whether Oolite should repeat the texture in the ''t'' (or ''v'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''texture_LOD_bias''' || real || tweak factor for MIP mapping (which does not apply to other '''min_filter''' modes). MIP mapping involves a trade-off between scaling artefacts and blurriness; the LOD (level of detail) bias affects this. Positive values mean more blur, negative ones mean more artefacts. The default value is −0.25 (mostly so people won’t say “hey, why is everything blurrier in the new Oolite?”). Texture LOD bias is not available on all hardware.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Uniform specifiers ===&lt;br /&gt;
:''Main article: [[Shaders in Oolite: uniforms]]''&lt;br /&gt;
A ''uniform specifier'' is used to specify game information to pass to a [[Shaders in Oolite|shader program]]. As with [[#Texture specifiers|texture specifiers]], the simple case is a string, which is treated as &amp;lt;code&amp;gt;{ binding = &amp;quot;the string&amp;quot; }&amp;lt;/code&amp;gt;. For instance, uHullHeatLevel = hullHeatLevel&amp;lt;/code&amp;gt; will bind a shader’s &amp;lt;code&amp;gt;uHullHeatLevel&amp;lt;/code&amp;gt; uniform to a ship’s &amp;lt;code&amp;gt;hullHeatLevel&amp;lt;/code&amp;gt; property. Additional properties can be specified in a dictionary.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''asMatrix''' || boolean || For a '''binding''' uniform whose bound property is of type ''quaternion'', setting '''asMatrix''' to true causes the value to be converted to a rotation matrix. If '''asMatrix''' is false, the quaternion will be converted to a vector, whose w, x, y and z values match those of the quaternion. For any other type of uniform, '''asMatrix''' is ignored. Default: true.&lt;br /&gt;
|-&lt;br /&gt;
| '''binding''' || string || The entity property to bind to, for a '''binding''' uniform. Ignored for other types of uniform.&lt;br /&gt;
|-&lt;br /&gt;
| '''clamped''' || boolean || For a '''binding''' uniform whose bound property is of type ''float'', setting '''clamped''' to true causes the value to be restricted to the range 0 to 1, inclusive. For a binding of type ''int'', causes the value to be set to either 0 or 1; 1 indicates that the underlying property has any value other than 0. For any other type of uniform, '''clamped''' is ignored. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''normalized''' || boolean || For a '''binding''' uniform whose bound property is of type ''vector'', setting '''normalized''' to true causes the value to be normalized, that is, scaled to a length of 1. For any other type of uniform, '''normalized''' is ignored. The spelling '''normalised''' is also accepted. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''type''' || string || One of:&lt;br /&gt;
* '''binding''': indicates that the '''binding''' property specifies an entity property to be set dynamically each time the shader is used.&lt;br /&gt;
* '''float''' or '''real''': indicates that the '''value''' property is an floating-point number.&lt;br /&gt;
* '''int''' or '''integer''': indicates that the '''value''' property is an integer, or whole number.&lt;br /&gt;
* '''texture''': indicates that the '''value''' property is an integer specifying a texture unit, that is, an index in the '''textures''' array.&lt;br /&gt;
Default: '''float'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''value''' || number || The value to use for a '''float''', '''int''' or '''texture''' uniform. Ignored for '''binding''' uniforms.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material dictionary example ===&lt;br /&gt;
Here is an example from the [[Material Test Suite OXP]]:&lt;br /&gt;
 materials =&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;cube-face&amp;quot; =&lt;br /&gt;
     {&lt;br /&gt;
         diffuse_map = &amp;quot;oolite_shader_test_suite_7_diffuse.png&amp;quot;;&lt;br /&gt;
         emission_and_illumination_map = &amp;quot;oolite_shader_test_suite_emission_and_illumination.png&amp;quot;;&lt;br /&gt;
         emission_modulate_color = (160, 255, 160);&lt;br /&gt;
         illumination_modulate_color = (180, 180, 200);&lt;br /&gt;
     };&lt;br /&gt;
 };&lt;br /&gt;
Here, the “cube-face” material is assigned the diffuse texture “oolite_shader_test_suite_7_diffuse.png” and a combined emission and illumination map (which is a greyscale+alpha texture). The emission and illumination components are then given coloured tints (slightly green and slightly blue, respectively), producing this:&lt;br /&gt;
&lt;br /&gt;
[[File:Oolite Material Test Suite 7.png|320px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Viper Griff Specgloss.png|thumb|right|640px|Griff's SpecGloss Viper]]&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=285081#p285081 Specular Maps Alpha channel]: more by a_c_ (2022)&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 griff SpecGloss ships]: some q's &amp;amp; a's about colour corrections (2022)&lt;br /&gt;
:Also contains &lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=293033#p293033 Is there a (shipdata) variable with which I can reduce the amount of influence an emission or illumination map has?] (2023) Answers involve using the varieties of &amp;quot;_modulate_color&amp;quot; listed above - and shows an example of what happens.&lt;br /&gt;
=== 2018 New Materials OXPs ===&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 griff SpecGloss ships]: Griff's SpecGloss models of the Cobra Mk.1, Mk.3, Gecko, Mamba, Sidewinder &amp;amp; Viper&lt;br /&gt;
* [[Normal and Specular+Gloss Maps for Oolite v1.88+]] - a_c's update of Griff's 2013 vanilla game set (ships, stations, asteroids etc.).&lt;br /&gt;
: This is now incorporated into Oolive v.1.92 as the new vanilla game set&lt;br /&gt;
=== Tools ===&lt;br /&gt;
* [[Material Test Suite OXP]] — demonstrates most material properties.&lt;br /&gt;
* [[Library OXP]] also has a couple of add-on tools ([[MatFinder]] &amp;amp; DevTools) which enable you to play around with all this and see the effects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Oolite]] [[Category:Oolite_scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90111</id>
		<title>Materials in Oolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Materials_in_Oolite&amp;diff=90111"/>
		<updated>2026-08-03T22:24:01Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Edited as per a_c's comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since v.1.87 (August 2018), more advanced options have become available. See [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018), the attached update of Oct 2018 and the clarifications of May 2021. Oolite now supports the basic PBR (Physically Based Rendering) materials, using the new Oolite shaders system. The requirements are light energy conservation, a microfacet surface model and a physically based Bidirectional Reflective Distribution Function (BRDF) &lt;br /&gt;
&lt;br /&gt;
{{OXPNote|This page was last properly edited in 2013, well after the introduction of shaders but before [[User:Another commander|Another commander]]'s work on Oolite introducing specular &amp;amp; gloss maps, the new Oren-Nayar diffuse light model, high-definition graphic resolution ''etc''}}&lt;br /&gt;
&lt;br /&gt;
Traditionally, the surface appearance of ships in Oolite has been defined entirely by textures specified in the ship’s model file and the ''[[#smooth|smooth]]'' attribute. Test release 1.67 added support for [[Shaders in Oolite|shaders]], and test release 1.69 expanded this to a more flexible '''material model'''. Under the new model, the texture file names in model files have been repurposed as '''material keys'''. A material key specifies an entry in the ship’s '''material dictionary''', specified in the ship’s ''[[shipdata.plist]]'' entry. For backwards compatibility, if no material of a given name is found, a material is generated using the material key as a diffuse texture name – providing the same functionality as previous versions of Oolite.&lt;br /&gt;
&lt;br /&gt;
This page documents the material model as of Oolite test release 1.74 (2010), and applies to stable release 1.76 (2011) and later.&lt;br /&gt;
&lt;br /&gt;
== Important concepts ==&lt;br /&gt;
The following concepts are important in understanding how materials work and how they interact with lights.&lt;br /&gt;
* '''Colour''': Oolite uses a basic low dynamic range lighting model. Colours are considered to be lists of three values, representing red, green and blue colours, each ranging from 0 to 1. These are often encoded as integers ranging from 0 to 255 for technical reasons, but 0 to 1 is the true range of values. There may also be an associated ''alpha channel'', which is traditionally used for blending effects. In shaders, any colour channel can be used for any purpose, and textures often encode values that are not treated as colours.&lt;br /&gt;
* '''Fragment''': roughty speaking, an on-screen pixel. When objects are rendered, their geometry is used to generate a fragments, which are then coloured based on lighting and materials.&lt;br /&gt;
* '''Modulation''': multiplying two colours together, by channel. For instance, if the calculated light colour for a given fragment is pale yellow – [1, 1, 0.8] – and the corresponding part of the diffuse map is turquoise – [0.2, 0.8, 0.8] – the ''diffuse contribution'' is [0.2, 0.8, 0.64] (a greenish tint). In graphics programs, this blending mode is usually called ''Multiply''.&lt;br /&gt;
* '''Additive blending''': adding two colours together, by channel. In Oolite’s low dynamic range lighting model, the result is always clipped to the range 0..1. In graphics programs, this blending mode is usually called ''Lighten''.&lt;br /&gt;
* '''Normals''': All lighting calculations require a concept of the orientation of a surface relative to a light and, for reflections, relative to the camera. A surface oriented towards the light will be lighter than a surface oriented away from it. The ''normal'' for any given point on a surface is a vector pointing straight out, which for our purposes ''defines'' the concept of “straight out”.&amp;lt;br /&amp;gt;By default, Oolite models have constant normals across each face. By setting the &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; attribute in [[shipdata.plist]], normals are instead interpolated across each face, with each vertex having a normal that is a weighted average of surounding faces’ normals, and each point on a surface getting a weighted average of the normals at the corners of the face. Using ''smooth groups'', a model can be divided into regions which are smoothed but have sharp boundaries between them. As of Oolite 1.74, models can also include explicit per-vertex normals instead of having Oolite calculate them – most 3D modellers export this information.&amp;lt;br /&amp;gt;When using smoothing, it is important to understand that Oolite does not add any geometry,and will result in each vertex being lit as if it is locally flat. This is generally inappropriate for any sharp corner. If you set &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt; on a basic cube, the result will be badly lit.&lt;br /&gt;
* '''Diffuse reflection''': light that is reflected evenly in all directions. A “dull” surface primarily reflects diffusely. Because the light is reflected evenly in all directions, the diffuse term is independent of the camera position; it is a function of the light and the surface normal. The standard diffuse reflection term is the cosine of the angle between the direction to the light and the normal, or zero if this is negative – this is known as the [http://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian reflectance model]. This value is then modulated with the material’s diffuse colour and diffuse map.&lt;br /&gt;
* '''Specular reflection''': light that is reflected in a particular direction, producing a shiny effect. In real life, this is simply a mirror reflection which is generally darkened and blurred, leaving an enlarged, blurry reflection of bright light sources, with other objects being washed out so they aren’t noticeable. In Oolite, a simpler mathematical model called the [http://en.wikipedia.org/wiki/Blinn–Phong_shading_model Blinn-Phong shading model] is used.&amp;lt;br /&amp;gt;[http://www.youtube.com/watch?v=76jvMmV1ih0 This video] demonstrates the effects of specular lighting and specular mapping on the built-in scarred alloy model.&lt;br /&gt;
&lt;br /&gt;
== The material dictionary ==&lt;br /&gt;
The '''material dictionary''' is actually specified as two separate dictionaries in the ''shipdata.plist'' entry. The first is called ''materials'', the second ''shaders''. If [[Shaders in Oolite|shader support]] is available and enabled, the entries in ''shaders'' are used in preference to those in ''materials''. Otherwise, ''shaders'' is ignored. The entries in the two dictionaries take exactly the same form, however; it is possible to specify a shader in the ''materials'' dictionary, and it will simply be ignored if shader support is not available. The ''materials'' and ''shaders'' dictionaries, merged together, are known as a ''material dictionary''.&lt;br /&gt;
&lt;br /&gt;
=== Material specifiers ===&lt;br /&gt;
The material dictionary is a [[property list]] dictionary whose keys are ''material keys'' as defined below, and whose values are '''material specifiers''', which are either dictionaries or strings. When a string is used as a material specifier, it is equivalent to a dictionary with that string as the value for '''diffuse_map''', and no other properties. Currently-supported material specifier keys are listed here; “texture specifier” and similar are defined below.&lt;br /&gt;
&lt;br /&gt;
Most of these keys have no effect when a custom shader is in effect.&lt;br /&gt;
&lt;br /&gt;
When shaders are disabled or not available, emission and illumination maps are supported only if reduced detail is disabled and the graphics hardware supports multi-texturing. If '''emission_modulate_color''', '''illumination_map''', or '''emission_and_illumination_map''' are used, Oolite must combine them into a single emission map. It is generally preferable to do this in advance (by modulating the illumination map with the diffuse map and blending it additively with the emission map, after applying any colouring). This is more efficient when using shaders, too.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ General material attribues&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''ambient_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The ambient colour of the entity, that is, the colour reflected evenly in all directions by starlight. If there is a '''diffuse_map''', the '''ambient_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || Overall diffuse colour of the entity; that is, the colour reflected in a “non-shiny” way on the sunlit side of the entity. If there is a '''diffuse_map''', the '''diffuse_color''' is modulated by the '''diffuse_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''diffuse_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the basic colour of the material. This is a “normal” texture, the same as you get without a material dictionary. If not specified, the material key will be used. To specify no texture, use an empty string for '''diffuse_map'''. Ignored when using shaders.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The emitted (glow) colour of the material. This is ignored when '''emission_map''' is in use (but see also: '''emission_modulate_color'''). Default: black (0.0, 0.0, 0.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying emission (glow) colours. This is blended additively with all other colour terms. If '''emission_modulate_color''' is specified, the emission map is modulated by the modulate colour. Emission maps are used when shaders are active, and without shaders on supported hardware.&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''emission_map'''. If the emission map is in full colour, it is best to apply the colouring in advance using a graphics program. However, if the emission map is a single colour, using a greyscale emission map and a modulate colour will reduce memory usage by a factor of four when shaders are in use. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''emission_and_illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture whose RGB channels act like '''emission_map''', and whose alpha channel acts like '''illumination_map''' (and can be coloured with '''illumination_modulate_color'''). This uses less memory (on systems with shaders) than using separate shaders, although blending the emission and illumination maps into a single emission map, as described above, is still preferable.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying local illumination colour, which is added to incoming light. It differs from an emission map in that it is modulated with the diffuse colour before being added to the final colour. See example below.&lt;br /&gt;
|-&lt;br /&gt;
| '''illumination_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''illumination_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture modifying [[#Important concepts|normals]]. The red, green and blue channels are the x, y and z coordinates of normals relative to the underlying normal (“[http://en.wikipedia.org/wiki/Normal_mapping tangent-space normal mapping]”), and the alpha channel is ingored. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''normal_and_parallax_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || Like '''normal_map''', except that the alpha channel is includes a depth value used to add [http://en.wikipedia.org/wiki/Parallax_mapping simulated perspective]. If specified, '''normal_map''' is ignored.&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_bias''' || number || A value added to the parallax component of '''normal_and_parallax_map''', after multiplying by '''parallax_scale''' (default: 0).&lt;br /&gt;
|-&lt;br /&gt;
| '''parallax_scale''' || number || A scale factor for the parallax component of '''normal_and_parallax_map''' (default: 0.01). This value is the depth of the parallax map relative to the size of the texture. For instance, a value of 0.01 on a texture 100 metres wide will produce a maximum indentation of 1 metre. High parallax_scale values tend to lead to unacceptable texture distortion and “creeping” artefacts.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || The colour to use for specular reflection over the entire model when '''specular_map''' is not used. The specular term is added to the diffuse term; for less intense specular highlights, use a darker colour. Default: black (0.0, 0.0, 0.0, 1.0) if '''shininess''' is zero, (0.2, 0.2, 0.2, 1.0) otherwise. &lt;br /&gt;
|-&lt;br /&gt;
| '''specular_map''' || [[#Texture specifiers|texture&amp;amp;nbsp;specifier]] || A texture specifying the specular highlight colour in its red, green and blue channels, and '''shininess''' in its alpha channel. 1 (fully opaque) means the value of '''shininess''' is used. 0 means a very low shininess is used. This is only used when shaders are active and no custom shader is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''specular_modulate_color''' || [[#Colour specifiers|colour&amp;amp;nbsp;specifier]] || A colour with which to modulate the '''specular_map'''. Default: white (1.0, 1.0, 1.0, 1.0).&lt;br /&gt;
|-&lt;br /&gt;
| '''shininess'''  || integer || The “tightness” of specular reflection, ranging from 0 to 128. 0 means no specular highlight. 128 is maximally shiny. Default: 128 if '''specular_map''' is used, 10 otherwise. '''Limitation:''' to use different shininess values with '''specular_map''' or '''specular_color''', you must either use the default or use different “shaders” and “materials” dictionaries. This should be fixed for 1.75.&lt;br /&gt;
|-&lt;br /&gt;
| '''vertex_shader''' || file&amp;amp;nbsp;name || name of GLSL vertex program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''fragment_shader''' || file&amp;amp;nbsp;name || name of GLSL fragment program to use.&lt;br /&gt;
|-&lt;br /&gt;
| '''textures''' || array&amp;amp;nbsp;of&amp;amp;nbsp;[[#Texture specifiers|texture&amp;amp;nbsp;specifier]]s || Textures to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
| '''uniforms''' || dictionary of uniform&amp;amp;nbsp;variable&amp;amp;nbsp;specifiers || uniform variables to use in shader program.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Illumination mapping vs. emission mapping ====&lt;br /&gt;
This image demonstrates the distinction between illumination mapping (top row) and emission mapping (bottom row).&lt;br /&gt;
&lt;br /&gt;
[[Image:Emission-vs-illumination.png]]&lt;br /&gt;
&lt;br /&gt;
=== Colour specifiers ===&lt;br /&gt;
'''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:&lt;br /&gt;
&lt;br /&gt;
==== Named colours ====&lt;br /&gt;
The simplest form of colour specifier is a string containing a colour name. The following names are supported:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Colour names&lt;br /&gt;
! Name !! RGBA value&lt;br /&gt;
|-&lt;br /&gt;
|  blackColor || 0, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| darkGrayColor || 1/3, 1/3, 1/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| lightGrayColor || 2/3, 2/3, 2/3, 1&lt;br /&gt;
|-&lt;br /&gt;
| whiteColor || 1, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| grayColor || 1/2, 1/2, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| redColor || 1, 0, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| greenColor || 0, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| blueColor || 0, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| cyanColor || 0, 1, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| yellowColor || 1, 1, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| magentaColor || 1, 0, 1, 1&lt;br /&gt;
|-&lt;br /&gt;
|  orangeColor || 1, 1/2, 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| purpleColor || 1/2, 0, 1/2, 1&lt;br /&gt;
|-&lt;br /&gt;
| brownColor || 0.6, 0.4, 0.2, 1&lt;br /&gt;
|-&lt;br /&gt;
| clearColor || 0, 0, 0, 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGBA tuples ====&lt;br /&gt;
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:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;1 1 0&amp;quot;&amp;lt;/code&amp;gt; — yellow&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;0 128 0 128&amp;quot;&amp;lt;/code&amp;gt; — medium green at 50% opacity&lt;br /&gt;
* &amp;lt;code&amp;gt;(1, 0, 0)&amp;lt;/code&amp;gt; – red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RGBA dictionaries ====&lt;br /&gt;
Just in case you’re unsure of the order the RGB[A] components come in, you can use a dictionary:&lt;br /&gt;
 {&lt;br /&gt;
    blue = 0.8;&lt;br /&gt;
    green = 0.8;&lt;br /&gt;
 }&lt;br /&gt;
Accepted keys are '''red''', '''green''', '''blue''' and '''alpha''' (or '''opacity'''), all optional (default: 0.0 for red, green and blue, 1.0 for alpha).&lt;br /&gt;
&lt;br /&gt;
==== HSBA dictionaries ====&lt;br /&gt;
But wait, there’s more! Colours may also be specified as dictionaries in the [http://en.wikipedia.org/wiki/HSB_colour_space 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.&lt;br /&gt;
 {&lt;br /&gt;
    // Pale magenta&lt;br /&gt;
    hue = 300;&lt;br /&gt;
    saturation = 0.3;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Texture specifiers ===&lt;br /&gt;
'''Texture specifiers''' are used to, er, specify textures. The simplest form of texture specifier is a string: &amp;lt;code&amp;gt;&amp;quot;ahruman-example-texture.png&amp;quot;&amp;lt;/code&amp;gt;. The very simplest texture specifier is the empty string, &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, meaning no texture. More complex texture specifiers are dictionaries, which can be used to specify a number of texture options.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''anisotropy''' || real || The degree of [http://en.wikipedia.org/wiki/Anisotropic_filtering anisotropic filtering] to use. Anisotropic filtering is used to reduce blurriness of MIP mapped textures shown at an angle (and thus only applies to textures whose '''min_filter''' is '''mipmap''' or '''default'''). The '''anisotropy''' setting is multiplied by the maximum anisotropy level specified by the system, and anisotropic filtering is used only if the result is greater than 1. (For example, on a GeForce FX 5200 card, the maximum level is 8, so an anisotropy value of 0.5 means an effective anisotropic filtering strength of 4. The precise meaning of this number is hardware-dependant. Fun, eh?) Anisotropic filtering is disabled in Reduced Detail mode and is not available on all hardware. Default: 0.5.&lt;br /&gt;
|-&lt;br /&gt;
| '''cube_map''' || boolean || If this is true, and the texture file is six times as high as it is wide, the texture will be treated as a cube map. If cube maps are not supported, it will be converted to a latitude/longitude map; if used as a diffuse map or emission/illumination map, you must ensure the model has appropriate texture coordinates. Note that cube maps are always available if shaders are supported, so custom shaders do not need to worry about this.&lt;br /&gt;
&lt;br /&gt;
'''cube_map''' is always true for planet textures. To convert textures to and from cube maps, see [[planettool]].&lt;br /&gt;
|-&lt;br /&gt;
| '''extract_channel''' || string || Indicates that one of the channels of the texture should be extracted into a new greyscale texture. Allowed values: '''r''', '''g''', '''b''' and '''a'''.&lt;br /&gt;
&lt;br /&gt;
This obviously involves extra work for Oolite, which is always a bad thing, but it makes it possible to combine multiple effect maps in a single texture for shaders and then extract channels for use as emission or illumination maps without shipping a redundant texture. If this means nothing to you, you probably don’t want to use '''extract_channel'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''mag_filter''' || string || Specifies how to scale up the texture when it is near the camera. Either of:&lt;br /&gt;
* '''nearest''' (use nearest-neighbour sampling, which produces a pixellated effect)&lt;br /&gt;
* '''linear''' (use linear interpolation, which produces a blurry effect).&lt;br /&gt;
Default: '''linear'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''min_filter''' || string || Specifies how to scale down the texture when it is far from the camera. One of:&lt;br /&gt;
* '''nearest''': nearest-neighbour sampling; generally very ugly, but sometimes useful for shaders using textures for special purposes.&lt;br /&gt;
* '''linear''': efficient, but rather ugly for textures with significant contrast or details.&lt;br /&gt;
* '''mipmap''': use trilinear MIP map filtering to improve scaling quality; generally also fast and least ugly, but uses 1/3 more memory, potentially slowing down systems with limited RAM or video memory.&lt;br /&gt;
* '''default''': '''linear''' in reduced detail mode, otherwise '''mipmap'''.&lt;br /&gt;
Default: '''default'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' || string || The file name of the texture to use. Must be a PNG image, in the Textures folder of Oolite or an OXP. In the specific case of '''diffuse_map''' textures, '''name''' is implicitly the same as the material key; to use no texture, you must specify &amp;lt;code&amp;gt;diffuse_map = &amp;quot;&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| '''no_shrink''' || boolean || Indicates that Oolite should not scale the texture down, except to meet hardware requirements. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_s''' || boolean || Whether Oolite should repeat the texture in the ''s'' (or ''u'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''repeat_t''' || boolean || Whether Oolite should repeat the texture in the ''t'' (or ''v'') co-ordinate, rather than clamping it. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''texture_LOD_bias''' || real || tweak factor for MIP mapping (which does not apply to other '''min_filter''' modes). MIP mapping involves a trade-off between scaling artefacts and blurriness; the LOD (level of detail) bias affects this. Positive values mean more blur, negative ones mean more artefacts. The default value is −0.25 (mostly so people won’t say “hey, why is everything blurrier in the new Oolite?”). Texture LOD bias is not available on all hardware.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Uniform specifiers ===&lt;br /&gt;
:''Main article: [[Shaders in Oolite: uniforms]]''&lt;br /&gt;
A ''uniform specifier'' is used to specify game information to pass to a [[Shaders in Oolite|shader program]]. As with [[#Texture specifiers|texture specifiers]], the simple case is a string, which is treated as &amp;lt;code&amp;gt;{ binding = &amp;quot;the string&amp;quot; }&amp;lt;/code&amp;gt;. For instance, uHullHeatLevel = hullHeatLevel&amp;lt;/code&amp;gt; will bind a shader’s &amp;lt;code&amp;gt;uHullHeatLevel&amp;lt;/code&amp;gt; uniform to a ship’s &amp;lt;code&amp;gt;hullHeatLevel&amp;lt;/code&amp;gt; property. Additional properties can be specified in a dictionary.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Texture specifier attributes&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''asMatrix''' || boolean || For a '''binding''' uniform whose bound property is of type ''quaternion'', setting '''asMatrix''' to true causes the value to be converted to a rotation matrix. If '''asMatrix''' is false, the quaternion will be converted to a vector, whose w, x, y and z values match those of the quaternion. For any other type of uniform, '''asMatrix''' is ignored. Default: true.&lt;br /&gt;
|-&lt;br /&gt;
| '''binding''' || string || The entity property to bind to, for a '''binding''' uniform. Ignored for other types of uniform.&lt;br /&gt;
|-&lt;br /&gt;
| '''clamped''' || boolean || For a '''binding''' uniform whose bound property is of type ''float'', setting '''clamped''' to true causes the value to be restricted to the range 0 to 1, inclusive. For a binding of type ''int'', causes the value to be set to either 0 or 1; 1 indicates that the underlying property has any value other than 0. For any other type of uniform, '''clamped''' is ignored. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''normalized''' || boolean || For a '''binding''' uniform whose bound property is of type ''vector'', setting '''normalized''' to true causes the value to be normalized, that is, scaled to a length of 1. For any other type of uniform, '''normalized''' is ignored. The spelling '''normalised''' is also accepted. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| '''type''' || string || One of:&lt;br /&gt;
* '''binding''': indicates that the '''binding''' property specifies an entity property to be set dynamically each time the shader is used.&lt;br /&gt;
* '''float''' or '''real''': indicates that the '''value''' property is an floating-point number.&lt;br /&gt;
* '''int''' or '''integer''': indicates that the '''value''' property is an integer, or whole number.&lt;br /&gt;
* '''texture''': indicates that the '''value''' property is an integer specifying a texture unit, that is, an index in the '''textures''' array.&lt;br /&gt;
Default: '''float'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''value''' || number || The value to use for a '''float''', '''int''' or '''texture''' uniform. Ignored for '''binding''' uniforms.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material dictionary example ===&lt;br /&gt;
Here is an example from the [[Material Test Suite OXP]]:&lt;br /&gt;
 materials =&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;cube-face&amp;quot; =&lt;br /&gt;
     {&lt;br /&gt;
         diffuse_map = &amp;quot;oolite_shader_test_suite_7_diffuse.png&amp;quot;;&lt;br /&gt;
         emission_and_illumination_map = &amp;quot;oolite_shader_test_suite_emission_and_illumination.png&amp;quot;;&lt;br /&gt;
         emission_modulate_color = (160, 255, 160);&lt;br /&gt;
         illumination_modulate_color = (180, 180, 200);&lt;br /&gt;
     };&lt;br /&gt;
 };&lt;br /&gt;
Here, the “cube-face” material is assigned the diffuse texture “oolite_shader_test_suite_7_diffuse.png” and a combined emission and illumination map (which is a greyscale+alpha texture). The emission and illumination components are then given coloured tints (slightly green and slightly blue, respectively), producing this:&lt;br /&gt;
&lt;br /&gt;
[[File:Oolite Material Test Suite 7.png|320px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Viper Griff Specgloss.png|thumb|right|640px|Griff's SpecGloss Viper]]&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Material Test Suite OXP]] — demonstrates most material properties.&lt;br /&gt;
* [[Library OXP]] also has a couple of add-on tools ([[MatFinder]] &amp;amp; DevTools) which enable you to play around with all this and see the effects&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=285081#p285081 Specular Maps Alpha channel]: more by a_c_ (2022)&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 griff SpecGloss ships]: some q's &amp;amp; a's about colour corrections (2022)&lt;br /&gt;
:Also contains Griff's SpecGloss models of the Cobra Mk.1, Gecko, Mamba, Sidewinder &amp;amp; Viper&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?p=293033#p293033 Is there a (shipdata) variable with which I can reduce the amount of influence an emission or illumination map has?] (2023) Answers involve using the varieties of &amp;quot;_modulate_color&amp;quot; listed above - and shows an example of what happens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Oolite]] [[Category:Oolite_scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90110</id>
		<title>Griff Industries</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90110"/>
		<updated>2026-08-03T22:18:49Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Griff's Ship Sets */ Added a_c's suggestions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
Griff produced some fantastic models of ships, using normalmapping and shaders to produce some of the best-looking ships available in Oolite. All vanilla-game ships and stations are supported.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| align=center width=100% style=&amp;quot;background: black;&amp;quot;&lt;br /&gt;
| [[Image:Griff_adder.jpg |link=Adder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_anaconda.jpg |link=Anaconda (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_asp_mk2.jpg |link=Asp (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_missile.jpg |link=Missile |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_asteroid.jpg|link=Asteroid_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boulder.jpg‎ |link=Boulder_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_splinters.jpg‎|link=Splinters_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_alloy.jpg‎ |link=Metal_Fragment_(Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_boa.jpg |link=Griff Boa |200px]]&lt;br /&gt;
| [[Image:Griff_boa_screenshot2.jpg  |link=Boa (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boa_mk2.jpg |link=Boa 2 Class Cruiser |200px]]&lt;br /&gt;
| [[Image:Griff_barrel.jpg |link=Cargo Container (Oolite) |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_cobra_mk1.jpg |link=Cobra Mk.1 (Oolite) |200px]] &lt;br /&gt;
| [[Image:Griff_cobra_mk3.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_cobra_mk3_scuffed.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff cobra mk3 alt.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_constrictor.jpg |link=Constrictor_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_coriolis_alt.jpg |link=Alternative Coriolis station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_ico.jpg  |link=Icosahedron_Station_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_dodo_thumbnail.jpg |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_fer-de-lance_blinged.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_fer-de-lance_scuffed.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko_sharkteeth.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_krait.jpg |link=Krait (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff-krait.jpg |link=Griff Krait |200px]]&lt;br /&gt;
| [[Image:Griff_mamba.jpg |link=Mamba (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_moray.jpg |link=Moray Star Boat (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_python.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_python_alternative.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Rock_Hermit.jpg  |link=Rock Hermit (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_escape_capsule.jpg |link=Escape Pod |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_sidewinder.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_sidewinder_alternative.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_shuttle.jpg |link=Shuttle (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_transporter.jpg |link=Transporter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_thargoid.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_thargoid_organic.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Thargon.png |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_tharglet_organic2.jpg |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_viper.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_viper_interceptor.jpg |link=Viper Interceptor |200px]]&lt;br /&gt;
| [[Image:Griff_viper_pursuit.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_worm.jpg |link=Worm (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Sainsboorys.png |link=Your Ad Here! |250px]]&lt;br /&gt;
| [[Image:Griff_dodo.png |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff Elite2 bug.jpg |Bug ship from an Elite 2 that didn't get made |200px]]&lt;br /&gt;
| [[Image:Griff_wolf_mkII.jpg |link=Wolf_Mk.2_(Oolite)|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griffhognose.jpg |link=Hognose |250px]]&lt;br /&gt;
| [[Image:Griff_viper_alt_wiki.jpg |link=Viper_(Oolite) |250px]]&lt;br /&gt;
| [[Image:Griff ophidian.jpg|link=Ophidian_(Classic) |250px]]&lt;br /&gt;
| [[Image:Griff elite2 griffin mk1.jpg|link=Griffin_Two_(Oolite) |250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff gnat.jpg |link=Classic_Elite_ships |250px]]&lt;br /&gt;
| [[Image:Griff Viper interceptor alt.jpg |link=Viper Interceptor |250px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Griff's Ship Sets ==&lt;br /&gt;
There are ''four'' sets of Griff ships!&lt;br /&gt;
*The Vanilla game ships in Oolite v.1.92 and later&lt;br /&gt;
::2026&lt;br /&gt;
:These are taken from the [[Oolite v1.88 Base Shipset Normal and Specular/Gloss Maps]] OXP. They are the exact versions of this OXP on the Expansions Manager with support for '''PBR''' (Physically Based Rendering) materials, using the new Oolite shaders system.&lt;br /&gt;
:'''PBR''' has been progressively introduced with Oolite versions 1.88, 1.90 &amp;amp; 1.92. The basic PBR requirements are light energy conservation, microfacet surface modelling and a physically based Bidirectional Reflective Distribution Function (BRDF) &lt;br /&gt;
*The Vanilla game ships in Oolite v.1.90 and earlier&lt;br /&gt;
::2013&lt;br /&gt;
:These are simplified versions of Griff's OXPs on the Expansions Manager&lt;br /&gt;
*The OXPs on the Expansions Manager (excluding the &amp;quot;specials&amp;quot; such as Griff Clippers, Griff Prototype Boa, Griff's Glowroids ''etc''.)&lt;br /&gt;
::2013&lt;br /&gt;
:These do not have specular maps, but do have normal maps. These ship models are more complex - and the textures and the shaders are ''much'' more complex. But they use the older Oolite shaders system.&lt;br /&gt;
:They also have special effects: more realistic exhausts, running lights and emergency lights (which dim when power is low), the Thargoids have special reflecting hulls, ''etc''.&lt;br /&gt;
*The unfinished very high poly &amp;quot;SpecGloss&amp;quot; series (only the SpecGloss Sidewinder is on the Expansions Manager - the other ships are on Box.com - see below).&lt;br /&gt;
::In Progress (2022 - date)&lt;br /&gt;
:These resemble Griff's OXPs but with much much more detail - and adding in '''PBR''' materials. They also use the newer Oolite shaders system. See [https://drive.google.com/drive/folders/1_8EtoVvwNyXXvqe5GCGy1HuFRRw3NxB7?usp=sharing here] for downloads.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Griff's &amp;quot;Expansions Manager&amp;quot; Downloads ==&lt;br /&gt;
All these ships are available in the Oolite [[Expansions Manager|Expansion Pack Manager]].&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Retextured&amp;quot; ship OXPs (&amp;quot;Normalmapped&amp;quot;) ===&lt;br /&gt;
:These constitute the third set mentioned above. These OXPs were created when normal mapping (allowing &amp;quot;bumps&amp;quot; and other such) was added into Oolite.&lt;br /&gt;
*'''Griff's Normalmapped Ships (Replace):'''&lt;br /&gt;
:'''Note''': Spara's rebalanced bundle 'Meta-OXZ'. Available via the Oolite Expansion Pack manager, provides a single click install for all the Griff core shipset ships, bugfixed and rebalanced for better gameplay! This expansion pack is highly recommended over installing the shipset ships individually&lt;br /&gt;
&lt;br /&gt;
*'''Griff Adder, Griff Alloys and Wreckage, Griff Anaconda, Griff Asp, Griff Asteroids, Griff Boa, Griff Boa MkII, Griff Cargopod, Griff Cobra MkI, Griff Cobra MkIII, Griff Cobra MkIII Alt, Griff Constrictor, Griff Escape Capsule, Griff Ferdelance, Griff Gecko, Griff Krait, Griff Mamba, Griff Mamba Alternative, Griff Missiles, Griff Moray, Griff Python, Griff Shuttle, Griff Sidewinder, Griff Station Bundle, Griff Thargoids, Griff Transporter, Griff Viper, Griff Worm&lt;br /&gt;
:The individual ship OXPs included in &amp;quot;Griff's Normalmapped Ships (Replace)&amp;quot; but with minor bugs in places.&lt;br /&gt;
&lt;br /&gt;
=== Other OXPs ===&lt;br /&gt;
*Griff Shipset Decals - this OXP is for adding Decals to Griff's ships (and is needed by his OXPs). See [[Decal]] for more on this&lt;br /&gt;
&lt;br /&gt;
*Griff Clippers - Griffifies the Boa Clipper and Python Clipper from Smivs' earlier [[Clippers]] OXP&lt;br /&gt;
*[[Griff Boa|Griff Prototype Boa]] - the famous, utterly different &amp;quot;Griff Boa&amp;quot; - as below, under &amp;quot;Other OXPs&amp;quot;&lt;br /&gt;
*[[Griff's Glowroids]] - massive asteroids with a difference!&lt;br /&gt;
&lt;br /&gt;
=== Relevant resources not on the Expansions Manager ===&lt;br /&gt;
* '''Resources''' - ''Not needed for gameplay'' - this folder contains various ship meshes and textures in .obj and .png format for interested modders&lt;br /&gt;
:[https://app.box.com/shared/rpkms25cc9 ''Griff Ship Downloads''] on Box.com&lt;br /&gt;
----&lt;br /&gt;
== Griff's Other OXPs ==&lt;br /&gt;
[http://app.box.com/shared/jf1et41yu3 ''Dodo Stations OXP by Griff and CaptKev''] (1.4Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Retextured Dodecahedron stations OXP, v1.1. Updated version released 18th May 2010, Griff has fixed a problem with the shaders.&lt;br /&gt;
&lt;br /&gt;
''[[Flying Dutchman OXP]]'' (31.0Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Wireframe Cobra.&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds the small chance to meet a Ghost Ship in the Ooniverse. What is it? Some claim that it's the ghost of Commander Peter Jameson, reported lost at the end of the last Thargoid War, others that it is simply a manifestation of all those lost souls who were trapped in the trackless depths of interstellar space. One common story is the trail of bad luck and hideous deaths that follow in the wake of the ship's sightings... &lt;br /&gt;
&lt;br /&gt;
[[Griff ArcElite|''Griff's ArcElite'']] (201.2 Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds all the ships from the Acorn Archimedes version of Elite, textured &amp;amp; shaded to resemble how they originally appeared in that version of the game.&lt;br /&gt;
Version 2.0 adds extra ships from Elite 'A', Elite 2 and the Amiga version of Elite&lt;br /&gt;
&lt;br /&gt;
[[Griff Boa|''Griff's Boa OXP'']] (2.7Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Wiki link containing the famous Griff Boa, as featured in the ''&amp;quot;Oolite - It's not just for triangles anymore&amp;quot;'' images. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; the Boa is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships OXP'' as above. Note also that this OXP only works on Oolite 1.74 and higher.&lt;br /&gt;
&lt;br /&gt;
[[Griff Krait|''Griff's Krait OXP'']] (2.5Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
A heavily modified Krait, similar in design to the Griff Boa. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; ''this'' Krait is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships  OXP'' as above.&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/162d02b7e79b1202689c ''Griff's Alloys &amp;amp; Wreckage OXP''] (1.5mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Box.com link to an OXP for Oolite v1.75 and higher that adds a new models &amp;amp; texture for the 'Alloys'. The OXP also generates extra clouds of burning wreckage whenever ships explode. This OXP was updated on 24th March 2013 for more compatibility with the Griff Normalmapped Ships, Replacement version, and should be used in preference to the old ''Griff's Explosion Debris OXP''.&lt;br /&gt;
&lt;br /&gt;
There are other non-normal mapped OXPs linked in Griff's &amp;quot;Complete Catalogue&amp;quot; beneath.&lt;br /&gt;
----&lt;br /&gt;
== OXPs using Griff's ships ==&lt;br /&gt;
&lt;br /&gt;
[http://app.box.com/shared/t3n98yhk6n ''Illicit Unlock - Griff Version''] by ADCK (3.5Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Based on the original Illicit Unlock, Allows the player to fly Griffs pirate/viper Ships. (Requires ''Griff's Normalmapped Ships, above'' ) &lt;br /&gt;
&lt;br /&gt;
Bugfixed and updated files for the oxp by Dertien (requires overwriting files in ADCK's original oxp) -  [http://app.box.com/shared/jq8biuf21o ''Download'']&lt;br /&gt;
&lt;br /&gt;
[[Black_Monk_Monastery|''Bank of the Black Monks'']] by LittleBear. The station and Gunships are Griff's.&lt;br /&gt;
&lt;br /&gt;
''[[Random Hits OXP]]''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring many Ships/Stations made by Griff.&lt;br /&gt;
&lt;br /&gt;
[[Your_Ad_Here!|''Your Ad Here! OXP'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Tradestations.&lt;br /&gt;
&lt;br /&gt;
[[Staer9%27s_Shipset|''Staer9's Shipset'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds more ships based on Griffs models.&lt;br /&gt;
&lt;br /&gt;
[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9306 ''ZGrOovy Griff System Stations OXP''] by Dertien (on the Oolite BB).&amp;lt;br /&amp;gt;&lt;br /&gt;
Using Griff's station textures, adds five new model stations, from the small Tetrahedron and Octahedrons, through the standard sized Coriolis, to the large Dodecahedron and Icosahedron stations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Lore ==&lt;br /&gt;
Added by [[The Assassins Guild OXP]]&lt;br /&gt;
&lt;br /&gt;
The [[Sector7/Ateslete|Ateslete]] system in galaxy 7 is reasonably noted for the ice-world, Stymphal. The well known robotics company, '''Griff Research Ltd''', operates factories over most of the planet and maintains an orbital research station near Stymphal.&lt;br /&gt;
&lt;br /&gt;
The company was originally founded to produce droids and other artificial life forms, enjoying much success winning the coveted “Which Droid?” award for a decade. Perhaps their most famous design was the [[Griff Robotic Cargo Loader|Robotic Cargo Loader]] which is still in service in all sectors. In recent years the company has diversified into building high specification ships and stations to order. Examples of their known designs include providing the Bank of the Black Monks of St Herod with a fearsome [[Black Monk Monastery|armed orbital platform]] and the [[Black Monk Gunship|Holy Avenger Mark II Tri-Laser Gunship]].&lt;br /&gt;
&lt;br /&gt;
The company's main ship design work is however highly classified, their most regular client being the [[Galactic Navy]]. Griff Research Ltd has constructed several Frigate Class vessels for the Navy, in addition to new types of weapons. No further details are available, although it is rumored that the Company is returning to its roots as a robotics company, in a current design brief. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Complete Catalogue of Griff's oeuvre (2006 - date) ==&lt;br /&gt;
See here: [[User:Griff/OXP Catalogue‎]] for an attempt at this (not fully formatted yet)&lt;br /&gt;
&lt;br /&gt;
{{Retextures-OXP}}&lt;br /&gt;
{{Ship-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Griff Industries| ]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Shaders_in_Oolite&amp;diff=90109</id>
		<title>Shaders in Oolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Shaders_in_Oolite&amp;diff=90109"/>
		<updated>2026-08-03T22:06:59Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added a_c's &amp;quot;update&amp;quot; synopsis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Update!&lt;br /&gt;
 * The first major shader revision occurred with Oolite v1.88 (2018) with the introduction of materials supporting Physically Based Rendering (PBR).&lt;br /&gt;
   The basic PBR requirements are light energy conservation, microfacet surface model and physically based Bidirectional Reflective Distribution Function (BRDF)&lt;br /&gt;
 * Shaders changed further in Oolite v1.90 (2020) with the addition of filmic tone mapping, Oren-Nayar diffuse light model and increased light source radiance&lt;br /&gt;
 * Shaders changed again in Oolite v1.92 (2026) with a reworked renderer combining all the above plus adoption of PBR for all core ships and planets, full post-processing effects support including FXAA, specular anti-aliasing, HDR output support (Windows only), multiple tonemapper options both for SDR and HDR, optional alternative Burley diffuse light model and more. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;'''''This page was written by Ahruman between 2007-10&amp;lt;br&amp;gt;&lt;br /&gt;
'''''See also:''' [[Materials in Oolite]]''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Shaders'''  are programs which run on a graphics processing unit. They provide a more flexible alternative or supplement to textures for specifying objects’ appearance. There are two widely-used types of shader, '''vertex shaders''' and '''fragment shaders''' (also known, less accurately, as '''pixel shaders'''), which are generally used in combination. Shaders can be implemented in a number of special-purpose programming languages; [[Oolite]] uses the '''[http://en.wikipedia.org/wiki/GLSL OpenGL Shading Language]''', also known as '''GLslang''' or '''GLSL'''.&lt;br /&gt;
&lt;br /&gt;
Shaders are supported in Oolite 1.67 for Mac OS X and later, and from 1.68 on other platforms. However, the shader support is still evolving. This page currently documents the state in Oolite 1.72.&lt;br /&gt;
&lt;br /&gt;
This page was last worked on in 2010.&lt;br /&gt;
&lt;br /&gt;
== Specifying shaders ==&lt;br /&gt;
Shaders are specified in a dictionary named ''shaders'' in the ship’s definition in ''[[shipdata.plist]]''. The keys of this dictionary are names of textures used in the ship’s or entity’s .dat file, and the values are dictionaries specifying shaders to use instead. The elements are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ ''shaders'' dictionary values&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''textures'' || array of strings || A list of textures used by the shader.&lt;br /&gt;
|- &lt;br /&gt;
| ''vertex_shader'' || string || The name of a vertex shader file to use. Oolite will search the Shaders folder of all installed OXPs for a shader of the appropriate name. (Requires Oolite 1.68 or later.)&lt;br /&gt;
|- &lt;br /&gt;
| ''fragment_shader'' || string || The name of a fragment shader file to use. Oolite will search the Shaders folder of all installed OXPs for a shader of the appropriate name. (Requires Oolite 1.68 or later.)&lt;br /&gt;
|- &lt;br /&gt;
| ''uniforms'' || dictionary || Uniforms to pass to the shaders.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== An example ==&lt;br /&gt;
A full explanation of GLslang is beyond the scope of this article, but for illustrative purposes, here is an overview of the fragment shader code in the [[Freaky Thargoids OXP|Freaky Thargoids]] example OXP.&lt;br /&gt;
&lt;br /&gt;
=== Vertex shader ===&lt;br /&gt;
This vertex shader, like many vertex shaders, exists primarily to prepare information for the fragment shader.&lt;br /&gt;
&amp;lt;pre&amp;gt;varying vec3            v_normal;&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    v_normal = normalize(gl_NormalMatrix * gl_Normal);&lt;br /&gt;
    &lt;br /&gt;
    gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;&lt;br /&gt;
    gl_Position = ftransform();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first line declares a '''varying variable'''. This may sound like an oxymoron, but varying variables have the special property that they are interpolated across geometry and passed to the fragment shader. For instance, if you set a varying variable to red at one corner of a triangle, green at a second corner, and blue at the third, the colour as seen by the fragment shader will vary smoothly across the triangle:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Glsl varying demo.png]]&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
This is followed by the function &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt;, which is the function that will be called by the GPU for each vertex. This sets the varying normal (direction facing out from the surface), and performs additional set-up required for positions and texture co-ordinates to make sense in the fragment shader.&lt;br /&gt;
&lt;br /&gt;
=== Fragment shader ===&lt;br /&gt;
A fragment shader is called for each fragment of a generated polygon. A '''fragment''' is a pixel, in screen space, on which the polygon is potentially visible. (It is ''potentially'' visible because the shader may discard the fragment, and later polygons which are closer to the camera may draw over it.)&lt;br /&gt;
&amp;lt;pre&amp;gt;// Information from Oolite.&lt;br /&gt;
uniform sampler2D   tex0;&lt;br /&gt;
uniform sampler2D   tex1;&lt;br /&gt;
uniform float       time;&lt;br /&gt;
&lt;br /&gt;
// Information from shipdata.plist.&lt;br /&gt;
uniform float       reciprocalFrequency;&lt;br /&gt;
&lt;br /&gt;
// Information from vertex shader.&lt;br /&gt;
varying vec3        v_normal;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
float wave(float t)&lt;br /&gt;
{&lt;br /&gt;
    return sin(t * 6.28318530718) * 0.5 + 0.25;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define LIGHT(idx) \&lt;br /&gt;
    { \&lt;br /&gt;
        vec3 lightVector = normalize(gl_LightSource[idx].position.xyz); \&lt;br /&gt;
        color += gl_FrontMaterial.diffuse * gl_LightSource[idx].diffuse * max(dot(v_normal, lightVector), 0.0); \&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
    // Calculate illumination.&lt;br /&gt;
    vec4 color = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;&lt;br /&gt;
//  LIGHT(0);&lt;br /&gt;
    LIGHT(1);&lt;br /&gt;
    &lt;br /&gt;
    // Load texture data&lt;br /&gt;
    vec2 texCoord = gl_TexCoord[0].st;&lt;br /&gt;
    vec4 colorMap = texture2D(tex0, texCoord);&lt;br /&gt;
    vec4 glowMap = texture2D(tex1, texCoord);&lt;br /&gt;
    &lt;br /&gt;
    // Multiply illumination by base colour&lt;br /&gt;
    color *= colorMap;&lt;br /&gt;
    &lt;br /&gt;
    // Calculate glow intensity&lt;br /&gt;
    float t1 = reciprocalFrequency * time + glowMap.a;&lt;br /&gt;
    float lightLevel = wave(t1);&lt;br /&gt;
    &lt;br /&gt;
    // Add glow.&lt;br /&gt;
    color += lightLevel * glowMap;&lt;br /&gt;
    &lt;br /&gt;
    gl_FragColor = vec4(color.rgb, 1.0);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first section declares several ''uniform variables'', which are used to pass information from Oolite to the shader. The two &amp;lt;code&amp;gt;sampler2D&amp;lt;/code&amp;gt; variables are used to read from the two textures used by the shader. The &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; variable &amp;lt;code&amp;gt;timer&amp;lt;/code&amp;gt; is a number which increases by 1.0 each second. The &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;reciprocalFrequency&amp;lt;/code&amp;gt; is set in &amp;lt;code&amp;gt;shipData.plist&amp;lt;/code&amp;gt;; this allows a shader to be used for different ships (or different shaders on the same ship) with small variations. Uniform variables can only be read, not written to.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;varying&amp;lt;/code&amp;gt; declaration is the same as in the vertex shader, but fragment shaders can only read varying variables, not write to them.&lt;br /&gt;
&lt;br /&gt;
The custom function &amp;lt;code&amp;gt;wave()&amp;lt;/code&amp;gt; is used to smoothly vary the glow map from on to off.&lt;br /&gt;
&lt;br /&gt;
This is followed by a macro definition, &amp;lt;code&amp;gt;LIGHT&amp;lt;/code&amp;gt;. A macro is substituted into the code each time it occurs; in &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIGHT(0)&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;LIGHT(1)&amp;lt;/code&amp;gt; will be replaced by the text of the macro definition, with &amp;lt;code&amp;gt;idx&amp;lt;/code&amp;gt; in the macro being replaced with 0 or 1 respectively. Ideally, this would be a function, like &amp;lt;code&amp;gt;wave()&amp;lt;/code&amp;gt;, but for technical reasons this causes performance problems. Specifically, under Apple’s implementation of GLSL (and probably others), this causes a set of uniforms for every light the graphics card supports to be pulled into the shader.&lt;br /&gt;
&lt;br /&gt;
The last part is the function &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt;, which is the function executed by the GPU. It first calculates the contribution of light source 1, using the information prepared in the vertex shader and interpolated by the GPU. (Light 0 is used for the demo screen and shipyard; light 1 is the sun, or an arbitrary light source when in witchspace. Future versions of Oolite may change this, though. Ideally, the shader would check light 0, but in current versions of Oolite this causes problems.) It then loads values from the two textures. The first, the colour map value, is simply multiplied by the incoming light. For the second, the glow map, an intensity value is calculated based on the time, the &amp;lt;code&amp;gt;reciprocalFrequency&amp;lt;/code&amp;gt; uniform and the alpha channel of the glow map, which specifies animation phase. The glow map is likewise multiplied by its intensity value, and added to the total light. Finally, the combined alpha channel is forced to 1.0, and the result assigned to the special variable &amp;lt;code&amp;gt;gl_FragColor&amp;lt;/code&amp;gt;, which determines the colour of the generated fragment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uniforms ==&lt;br /&gt;
Uniforms are variables whose value is set by the host application, i.e. Oolite. Oolite automatically supplies one uniform of type &amp;lt;code&amp;gt;sampler2D&amp;lt;/code&amp;gt; for each texture, named &amp;lt;code&amp;gt;tex0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tex1&amp;lt;/code&amp;gt; etc. It is also possible to bind uniforms to certain properties of the entity the shader is being applied to, for instance, its engine level. Additionally, constant values can be specified for uniforms, allowing a single shader to be used on different entities with differences in configuration.&lt;br /&gt;
&lt;br /&gt;
For more information on uniforms, see [[Shaders in Oolite: uniforms]].&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
These preprocessor macros are defined by Oolite and may be used with the &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; directives to selectively remove sections of code.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Macros&lt;br /&gt;
! Name !! Description&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;OO_LIGHT_0_FIX&amp;lt;/code&amp;gt;||In current versions of Oolite, light number 0 is effectively always attached to the camera, giving the effect of the player shining a light on anything they’re looking at. When this is fixed, &amp;lt;code&amp;gt;OO_LIGHT_0_FIX&amp;lt;/code&amp;gt; will be defined. (Not yet defined in any version of Oolite.)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;OO_REDUCED_COMPLEXITY&amp;lt;/code&amp;gt;||Defined if user has selected lower-complexity shaders.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;OO_TEXTURE_UNIT_COUNT&amp;lt;/code&amp;gt;||An integer specifying the number of texture units supported by hardware, which is the maximum number of ''tex'''N''''' uniforms that will be meaningful. This should be the same as ''gl_MaxTextureUnits'', but a macro has the advantage that it can be used to completely exclude parts of the shader. (Defined in Oolite 1.69 and later.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;OO_USER_DEFINED_BINDINGS&amp;lt;/code&amp;gt;||Defined to indicate that [[Shaders in Oolite: uniforms|arbitrary uniform bindings]] are available. (Defined in Oolite 1.69 and later.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;OO_TANGENT_ATTR&amp;lt;/code&amp;gt;||Defined to indicate that the &amp;lt;code&amp;gt;tangent&amp;lt;/code&amp;gt; vertex attribute is available. (Defined in Oolite 1.73 and later.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
The current implementation does not provide the information necessary to implement the most common form of [http://en.wikipedia.org/wiki/Normal_mapping normal mapping].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[OXP howto texture]] (mostly 2006, but with up-to-date links)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=3460 Shader's Outpost thread] (2007-date) with links and downloadable .oxp examples&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13815 A request for a simple example of using shaders] (2013)&lt;br /&gt;
*[https://www.youtube.com/watch?v=hWeN_66guzg Oolite Crosire's Reshade Tutorial] (2015 YouTube video - by Getafix - using Crosire's Reshade v1.0.0 post-processing injector)&lt;br /&gt;
&lt;br /&gt;
*[https://thebookofshaders.com/ The book of Shaders] - with working examples of complex shaders (2015 - by Patricio Gonzalez Vivo &amp;amp; Jen Lowe)&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90108</id>
		<title>Shaders in Oolite: uniforms</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90108"/>
		<updated>2026-08-03T22:04:20Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Edited as per a_c's suggestions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Update!&lt;br /&gt;
 * The first major shader revision occurred with Oolite v1.88 (2018) with the introduction of materials supporting Physically Based Rendering (PBR).&lt;br /&gt;
   The basic PBR requirements are light energy conservation, microfacet surface model and physically based Bidirectional Reflective Distribution Function (BRDF)&lt;br /&gt;
 * Shaders changed further in Oolite v1.90 (2020) with the addition of filmic tone mapping, Oren-Nayar diffuse light model and increased light source radiance&lt;br /&gt;
 * Shaders changed again in Oolite v1.92 (2026) with a reworked renderer combining all the above plus adoption of PBR for all core ships and planets, full post-processing effects support including FXAA, specular anti-aliasing, HDR output support (Windows only), multiple tonemapper options both for SDR and HDR, optional alternative Burley diffuse light model and more. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;small&amp;gt;The information presented on ''this'' page applies to Oolite test release v.1.69 (2007) and later. It was last added to by somebody ''knowledgeable'' in 2016&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A '''uniform''' in a [[Shaders in Oolite|shader]] is a variable whose value is specified by the host application – in this case, [[Oolite]]. Oolite allows arbitrary uniforms to be specified for shaders applied to ships, and these may either take constant values specified in ''shipdata.plist'', or be “bound” to an attribute of the ship. This allows shader authors to access numerous properties of a game entity without having to ask for them and wait for an updated version of Oolite. ('''Note:''' in the case of subentities, bound properties are fetched from the parent ship.)&lt;br /&gt;
&lt;br /&gt;
=== Basic syntax ===&lt;br /&gt;
Uniforms are specified in the ''materials'' or ''shaders'' dictionary of a ship’s ''shipdata.plist'' entry:&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;&amp;quot;ahruman_shady_cobra_example&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    like_ship = &amp;quot;cobra3-player&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    shaders =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        &amp;quot;cobra3_redux.png&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            textures = ( &amp;quot;cobra3_redux.png&amp;quot; );&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            fragment_shader = &amp;quot;ahruman_shady_cobra_example.fragment&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
             uniforms =&lt;br /&gt;
             {&lt;br /&gt;
                 shininess =&lt;br /&gt;
                 {&lt;br /&gt;
                     type = float;&lt;br /&gt;
                     value = 42.0;&lt;br /&gt;
                 };&lt;br /&gt;
                 withinAegis = &amp;quot;withinStationAegis&amp;quot;;&lt;br /&gt;
                 compassMode = &amp;quot;compassMode&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
This contrived example declares three uniforms, ''shininess'', ''withinAegis'' and ''compassMode''. ''shininess'' is a constant &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;; it is always 42. ''withinAegis'' is bound to the ship’s ''withinStationAegis'' property. (See below for information on available properties.) This is a boolean, that is, a number whose value is either 0 (meaning no) or 1 (meaning yes). ''compassMode'' is a binding to the ''compassMode'' property. To use the uniforms within a shader (either a vertex shader or a fragment shader), they are declared as follows:&lt;br /&gt;
 uniform float shininess;&lt;br /&gt;
 uniform int withinAegis;&lt;br /&gt;
 uniform int compassMode;&lt;br /&gt;
 ...&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
     if (withinAegis)&lt;br /&gt;
     {&lt;br /&gt;
          // Do aegis-specific effect here&lt;br /&gt;
     }&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Uniform property types ===&lt;br /&gt;
Every bindable property has a '''type'''. The simplest types, ''int'' and ''float'', correspond directly to the same types in GLSL. Both represent numbers, with the difference that a ''float'' can represent fractional values and very large values, but always has the same level of precision (about six digits), while ''int''s can represent any integer (non-fractional value) in a limited range. A ''bool'' is an integer whose value can be only 0 (meaning no or false) or 1 (meaning yes or true). ('''Note:''' the GLSL specification is deliberately vague on the ranges of the number types. It also points out that most hardware will actually use floating-point calculations for ''int'' variables, which implies that integer calculations will incur rounding overhead.)&lt;br /&gt;
&lt;br /&gt;
The ''vector'' type is translated to a GLSL ''vec4'', whose ''x'', ''y'' and ''z'' components correspond to those of the Oolite vector, and whose ''w'' component is always 1.0.&lt;br /&gt;
&lt;br /&gt;
The ''quaternion'' type can be translated to a ''mat4x4'' representing a rotation matrix, or to a ''vec4'' whose ''x'', ''y'', ''z'' and ''w'' components correspond to those of the Oolite quaternion.&lt;br /&gt;
&lt;br /&gt;
The ''matrix'' type is translated into a GLSL ''mat4x4''.&lt;br /&gt;
&lt;br /&gt;
The ''colour'' type is translated into a GLSL ''vec4'' type, whose ''r'', ''g'', ''b'' and ''a'' components correspond to those of the Oolite colour object.&lt;br /&gt;
&lt;br /&gt;
==== Conversions ====&lt;br /&gt;
Several types of binding can be modified by conversion options, specified in the '''uniforms''' dictionary, for example:&lt;br /&gt;
 haveFuel =&lt;br /&gt;
 {&lt;br /&gt;
     binding = &amp;quot;fuel&amp;quot;;&lt;br /&gt;
     clamped = true;&lt;br /&gt;
 };&lt;br /&gt;
The '''clamped''' conversion option, when applied to a property of type ''float'', causes the value to be clamped to the range [0, 1]. When applied to an ''int'' property, any value other than 0 (including negative values) is converted to 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''normalized''' option causes vector properties to be normalized, that is, scaled so they have the same direction but length 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''asMatrix''' option causes quaternion properties to be converted to rotation matrix, rather than having their components packed into a ''vec4''. The default value is ''true''.&lt;br /&gt;
&lt;br /&gt;
=== Bindable property reference ===&lt;br /&gt;
The following sections list entity properties which can be used in a uniform binding, regardless of apparent usefullness. Note, however, that '''some of these names may change before the next stable release'''.&lt;br /&gt;
&lt;br /&gt;
==== Entity ====&lt;br /&gt;
The following properties are available for all entities:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable entity properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''position'' || vector || The location of the entity in system co-ordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''orientation'' || quaternion || The orientation of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''relativePosition'' || vector || The location of the entity, relative to the player.&lt;br /&gt;
|-&lt;br /&gt;
| ''viewpointOffset'' || vector || The location of the current camera, in entity co-ordinates. Although this is defined for all entities, it is only meaningful for the player ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''collisionRadius'' || float || Together with the ''position'', specifies a sphere completely containing the collidable volume of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''mass'' || float || The mass of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''energy'' || float || The current energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxEnergy'' || float || The current maximum energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''universalTime'' || float || The [[Time scales in Oolite#game real time|game real time]] clock. The value is the same for all entities and updates once per frame.&lt;br /&gt;
|-&lt;br /&gt;
| ''spawnTime'' || float || The [[Time scales in Oolite#game real time|game real time]] at which the entity came into existance.&lt;br /&gt;
|-&lt;br /&gt;
| ''timeElapsedSinceSpawn'' || float || The number of seconds (in the [[Time scales in Oolite#game real time|game real time]] scale) since the entity came into existance – the difference between ''universalTime'' and ''spawnTime''.&lt;br /&gt;
|-&lt;br /&gt;
| ''throwingSparks'' || bool || Whether the entity is generating sparks (for instance, a ship about to explode).&lt;br /&gt;
|-&lt;br /&gt;
| ''fogUniform'' (version 1.83) || vector || Atmosphere colour rgba for applying fog effect. Alpha channel is zero for no fogging to 1 for full fogging.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ship ====&lt;br /&gt;
Ships (i.e., anything set up in ''shipdata.plist'', regardless of function) have all the properties of [[#Entity|entities]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''isBeacon'' || bool || True if the entity is a beacon.&lt;br /&gt;
|-&lt;br /&gt;
| ''isFrangible'' || bool || True if the entity is frangible, i.e. subentities can be shot off.&lt;br /&gt;
|-&lt;br /&gt;
| ''isCloaked'' || bool || True if the entity is cloaked. [b]Note:[/b] a cloaked ship will only be drawn approximately once per ten frames, regardless of shaders.&lt;br /&gt;
|-&lt;br /&gt;
| ''isJammingScanning'' || bool || True if the ship has an active military jammer.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasMilitaryScannerFilter'' || bool || True if the ship has a military scanner filter.&lt;br /&gt;
|-&lt;br /&gt;
| ''messageTime'' || float || Time before a radio message may be sent, in seconds. (This is set to 6.0 seconds when an NPC ship sends a message, and decreases over time.)&lt;br /&gt;
|-&lt;br /&gt;
| ''groupID'' || int || Unique identifier for the escort group the ship belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| ''escortCount'' || int || The number of active escorts the ship has.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasHostileTarget'' || bool || True if the ship has a target and the ship’s current AI behaviour is one of hostile intent.&lt;br /&gt;
|-&lt;br /&gt;
| ''weaponRange'' || float || Maximum range (in metres) of the ship’s main weapon. [b]Note:[/b] since subentities’ shaders get the parent ship’s properties, this may not work as expected.&lt;br /&gt;
|-&lt;br /&gt;
| ''scannerRange'' || float || The distance (in metres) in which the ship will scan for enemies.&lt;br /&gt;
|-&lt;br /&gt;
| ''withinStationAegis'' || bool || True if the ship is within the aegis of the system’s main station.&lt;br /&gt;
|-&lt;br /&gt;
| ''fuel'' || int || Ship’s fuel level, in tenths of a light year.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightPitch'' || float || Current pitch rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightRoll'' || float || Current roll rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightYaw'' || float || Current yaw rate. Currently always 0 for NPC ships.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightSpeed'' || float || Ship’s current speed.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxFlightSpeed'' || float || Ship’s speed at full throttle. Something of a misnomer – actual speed may be higher using afterburners or hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''speedFactor'' || float || ''flightSpeed'' divided by ''maxFlightSpeed''. May be greater than 1.0 (unless [[#Conversions|clamped]] is used).&lt;br /&gt;
|-&lt;br /&gt;
| ''damage'' || int || ''energy'' expressed as a percentage of ''maxEnergy''.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserHeatLevel'' || float || The temperature level of the current weapon.&lt;br /&gt;
|-&lt;br /&gt;
| ''hullHeatLevel'' || float || The temperature level of the hull, due to proximity to stars, atmospheric drag or combat hits. When it reaches 1.0, the ship starts taking damage rapidly.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonality'' || float || A randomly-generated value in the range 0.0 to 1.0 that stays with the entity for its lifetime. Useful for adding random variations.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonalityInt'' || float || Same as ''entity_personality'', scaled to the range 0 to 32767.&lt;br /&gt;
|-&lt;br /&gt;
| ''numberOfScannedShips'' || int || The number of ships within scanner range (but no more than 16).&lt;br /&gt;
|-&lt;br /&gt;
| ''destination'' || vector || The location, in system co-ordinates, that the AI is trying to fly to. This may not always be meaningful depending on AI state.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToDestination'' || float || The distance in metres between ''position'' and ''destination''.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToPrimaryTarget'' || float || The distance in metres to the AI’s target (i.e., the ship it is trying to shoot). 0 if no target.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserColor'' || colour || The colour of the ship’s laser.&lt;br /&gt;
|-&lt;br /&gt;
| ''isHulk'' || bool || True if the ship has been abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| ''lightsActive'' || bool || True if flashers are turned on, false otherwise.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition''&amp;lt;br&amp;gt;(1.77 or later) || int || Current alert condition – 0 for docked, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Player ship ====&lt;br /&gt;
The player ship has all the properties of [[#Entity|entities]] and [[#Ship|ships]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable player ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''massLocked'' || bool || True if the ship is too close to a large object to be able to make a witchspace jump.&lt;br /&gt;
|-&lt;br /&gt;
| ''atHyperspeed'' || bool || True if the ship is at hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''velocityVector'' || vector || The ship’s velocity.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialForwardShield'' || float || The forward shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialAftShield'' || float || The aft shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMissileStatus'' || int || State of selected missile – 0 for safe/no missile, 1 for active, 2 for locked.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialFuelScoopStatus'' || int || State of cargo scoop – 0 for no scoop installed, 1 for full hold, 2 for idle with space in hold, 3 for actively scooping.&lt;br /&gt;
|-&lt;br /&gt;
| ''compassMode'' || int || State of advanced space compass – 0 for no advanced space compass installed, 1 for planet mode, 2 for station mode, 3 for sun mode, 4 for target mode, 5 for any beacon. More may be added in future.&lt;br /&gt;
|-&lt;br /&gt;
| ''activeMissile'' || int || Which missile slot is currently selected, from 0 to ''dialMaxMissiles'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMaxMissiles'' || int || The number of missile slots on the ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialIdentEngaged'' || bool || True if ident (targeting) mode is active.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition'' || int || Current alert condition – 0 for docked, 1 for green, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
| ''trumbleCount'' || int || Number of trumbles with which the player’s ship is infected.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Additionally, all [[Methods#Querying states|state query scripting methods]] ending with ''_number'' may be used for the player.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Shaders in Oolite]] - dates to Oolite v.1.72 (wiki page written between 2008-10)&lt;br /&gt;
*[[OXP howto texture]] has some up-to-date links&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90107</id>
		<title>Shaders in Oolite: uniforms</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90107"/>
		<updated>2026-08-03T07:39:54Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Links */ Tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Update! &lt;br /&gt;
 *Shaders changed in Oolite v.1.90 (2020) with the introduction of filmic tone mapping, Oren-Nayar diffuse light model and increased light source radiance&lt;br /&gt;
 *Shaders changed again in Oolite v.1.92 (2026) with a [https://www.oolite.space/community/#whatsnew Reworked Renderer]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;small&amp;gt;The information presented on this page applies to Oolite test release v.1.69 (2007) and later. It was last edited by somebody knowledgeable in 2016&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A '''uniform''' in a [[Shaders in Oolite|shader]] is a variable whose value is specified by the host application – in this case, [[Oolite]]. Oolite allows arbitrary uniforms to be specified for shaders applied to ships, and these may either take constant values specified in ''shipdata.plist'', or be “bound” to an attribute of the ship. This allows shader authors to access numerous properties of a game entity without having to ask for them and wait for an updated version of Oolite. ('''Note:''' in the case of subentities, bound properties are fetched from the parent ship.)&lt;br /&gt;
&lt;br /&gt;
=== Basic syntax ===&lt;br /&gt;
Uniforms are specified in the ''materials'' or ''shaders'' dictionary of a ship’s ''shipdata.plist'' entry:&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;&amp;quot;ahruman_shady_cobra_example&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    like_ship = &amp;quot;cobra3-player&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    shaders =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        &amp;quot;cobra3_redux.png&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            textures = ( &amp;quot;cobra3_redux.png&amp;quot; );&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            fragment_shader = &amp;quot;ahruman_shady_cobra_example.fragment&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
             uniforms =&lt;br /&gt;
             {&lt;br /&gt;
                 shininess =&lt;br /&gt;
                 {&lt;br /&gt;
                     type = float;&lt;br /&gt;
                     value = 42.0;&lt;br /&gt;
                 };&lt;br /&gt;
                 withinAegis = &amp;quot;withinStationAegis&amp;quot;;&lt;br /&gt;
                 compassMode = &amp;quot;compassMode&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
This contrived example declares three uniforms, ''shininess'', ''withinAegis'' and ''compassMode''. ''shininess'' is a constant &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;; it is always 42. ''withinAegis'' is bound to the ship’s ''withinStationAegis'' property. (See below for information on available properties.) This is a boolean, that is, a number whose value is either 0 (meaning no) or 1 (meaning yes). ''compassMode'' is a binding to the ''compassMode'' property. To use the uniforms within a shader (either a vertex shader or a fragment shader), they are declared as follows:&lt;br /&gt;
 uniform float shininess;&lt;br /&gt;
 uniform int withinAegis;&lt;br /&gt;
 uniform int compassMode;&lt;br /&gt;
 ...&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
     if (withinAegis)&lt;br /&gt;
     {&lt;br /&gt;
          // Do aegis-specific effect here&lt;br /&gt;
     }&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Uniform property types ===&lt;br /&gt;
Every bindable property has a '''type'''. The simplest types, ''int'' and ''float'', correspond directly to the same types in GLSL. Both represent numbers, with the difference that a ''float'' can represent fractional values and very large values, but always has the same level of precision (about six digits), while ''int''s can represent any integer (non-fractional value) in a limited range. A ''bool'' is an integer whose value can be only 0 (meaning no or false) or 1 (meaning yes or true). ('''Note:''' the GLSL specification is deliberately vague on the ranges of the number types. It also points out that most hardware will actually use floating-point calculations for ''int'' variables, which implies that integer calculations will incur rounding overhead.)&lt;br /&gt;
&lt;br /&gt;
The ''vector'' type is translated to a GLSL ''vec4'', whose ''x'', ''y'' and ''z'' components correspond to those of the Oolite vector, and whose ''w'' component is always 1.0.&lt;br /&gt;
&lt;br /&gt;
The ''quaternion'' type can be translated to a ''mat4x4'' representing a rotation matrix, or to a ''vec4'' whose ''x'', ''y'', ''z'' and ''w'' components correspond to those of the Oolite quaternion.&lt;br /&gt;
&lt;br /&gt;
The ''matrix'' type is translated into a GLSL ''mat4x4''.&lt;br /&gt;
&lt;br /&gt;
The ''colour'' type is translated into a GLSL ''vec4'' type, whose ''r'', ''g'', ''b'' and ''a'' components correspond to those of the Oolite colour object.&lt;br /&gt;
&lt;br /&gt;
==== Conversions ====&lt;br /&gt;
Several types of binding can be modified by conversion options, specified in the '''uniforms''' dictionary, for example:&lt;br /&gt;
 haveFuel =&lt;br /&gt;
 {&lt;br /&gt;
     binding = &amp;quot;fuel&amp;quot;;&lt;br /&gt;
     clamped = true;&lt;br /&gt;
 };&lt;br /&gt;
The '''clamped''' conversion option, when applied to a property of type ''float'', causes the value to be clamped to the range [0, 1]. When applied to an ''int'' property, any value other than 0 (including negative values) is converted to 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''normalized''' option causes vector properties to be normalized, that is, scaled so they have the same direction but length 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''asMatrix''' option causes quaternion properties to be converted to rotation matrix, rather than having their components packed into a ''vec4''. The default value is ''true''.&lt;br /&gt;
&lt;br /&gt;
=== Bindable property reference ===&lt;br /&gt;
The following sections list entity properties which can be used in a uniform binding, regardless of apparent usefullness. Note, however, that '''some of these names may change before the next stable release'''.&lt;br /&gt;
&lt;br /&gt;
==== Entity ====&lt;br /&gt;
The following properties are available for all entities:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable entity properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''position'' || vector || The location of the entity in system co-ordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''orientation'' || quaternion || The orientation of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''relativePosition'' || vector || The location of the entity, relative to the player.&lt;br /&gt;
|-&lt;br /&gt;
| ''viewpointOffset'' || vector || The location of the current camera, in entity co-ordinates. Although this is defined for all entities, it is only meaningful for the player ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''collisionRadius'' || float || Together with the ''position'', specifies a sphere completely containing the collidable volume of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''mass'' || float || The mass of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''energy'' || float || The current energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxEnergy'' || float || The current maximum energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''universalTime'' || float || The [[Time scales in Oolite#game real time|game real time]] clock. The value is the same for all entities and updates once per frame.&lt;br /&gt;
|-&lt;br /&gt;
| ''spawnTime'' || float || The [[Time scales in Oolite#game real time|game real time]] at which the entity came into existance.&lt;br /&gt;
|-&lt;br /&gt;
| ''timeElapsedSinceSpawn'' || float || The number of seconds (in the [[Time scales in Oolite#game real time|game real time]] scale) since the entity came into existance – the difference between ''universalTime'' and ''spawnTime''.&lt;br /&gt;
|-&lt;br /&gt;
| ''throwingSparks'' || bool || Whether the entity is generating sparks (for instance, a ship about to explode).&lt;br /&gt;
|-&lt;br /&gt;
| ''fogUniform'' (version 1.83) || vector || Atmosphere colour rgba for applying fog effect. Alpha channel is zero for no fogging to 1 for full fogging.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ship ====&lt;br /&gt;
Ships (i.e., anything set up in ''shipdata.plist'', regardless of function) have all the properties of [[#Entity|entities]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''isBeacon'' || bool || True if the entity is a beacon.&lt;br /&gt;
|-&lt;br /&gt;
| ''isFrangible'' || bool || True if the entity is frangible, i.e. subentities can be shot off.&lt;br /&gt;
|-&lt;br /&gt;
| ''isCloaked'' || bool || True if the entity is cloaked. [b]Note:[/b] a cloaked ship will only be drawn approximately once per ten frames, regardless of shaders.&lt;br /&gt;
|-&lt;br /&gt;
| ''isJammingScanning'' || bool || True if the ship has an active military jammer.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasMilitaryScannerFilter'' || bool || True if the ship has a military scanner filter.&lt;br /&gt;
|-&lt;br /&gt;
| ''messageTime'' || float || Time before a radio message may be sent, in seconds. (This is set to 6.0 seconds when an NPC ship sends a message, and decreases over time.)&lt;br /&gt;
|-&lt;br /&gt;
| ''groupID'' || int || Unique identifier for the escort group the ship belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| ''escortCount'' || int || The number of active escorts the ship has.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasHostileTarget'' || bool || True if the ship has a target and the ship’s current AI behaviour is one of hostile intent.&lt;br /&gt;
|-&lt;br /&gt;
| ''weaponRange'' || float || Maximum range (in metres) of the ship’s main weapon. [b]Note:[/b] since subentities’ shaders get the parent ship’s properties, this may not work as expected.&lt;br /&gt;
|-&lt;br /&gt;
| ''scannerRange'' || float || The distance (in metres) in which the ship will scan for enemies.&lt;br /&gt;
|-&lt;br /&gt;
| ''withinStationAegis'' || bool || True if the ship is within the aegis of the system’s main station.&lt;br /&gt;
|-&lt;br /&gt;
| ''fuel'' || int || Ship’s fuel level, in tenths of a light year.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightPitch'' || float || Current pitch rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightRoll'' || float || Current roll rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightYaw'' || float || Current yaw rate. Currently always 0 for NPC ships.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightSpeed'' || float || Ship’s current speed.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxFlightSpeed'' || float || Ship’s speed at full throttle. Something of a misnomer – actual speed may be higher using afterburners or hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''speedFactor'' || float || ''flightSpeed'' divided by ''maxFlightSpeed''. May be greater than 1.0 (unless [[#Conversions|clamped]] is used).&lt;br /&gt;
|-&lt;br /&gt;
| ''damage'' || int || ''energy'' expressed as a percentage of ''maxEnergy''.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserHeatLevel'' || float || The temperature level of the current weapon.&lt;br /&gt;
|-&lt;br /&gt;
| ''hullHeatLevel'' || float || The temperature level of the hull, due to proximity to stars, atmospheric drag or combat hits. When it reaches 1.0, the ship starts taking damage rapidly.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonality'' || float || A randomly-generated value in the range 0.0 to 1.0 that stays with the entity for its lifetime. Useful for adding random variations.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonalityInt'' || float || Same as ''entity_personality'', scaled to the range 0 to 32767.&lt;br /&gt;
|-&lt;br /&gt;
| ''numberOfScannedShips'' || int || The number of ships within scanner range (but no more than 16).&lt;br /&gt;
|-&lt;br /&gt;
| ''destination'' || vector || The location, in system co-ordinates, that the AI is trying to fly to. This may not always be meaningful depending on AI state.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToDestination'' || float || The distance in metres between ''position'' and ''destination''.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToPrimaryTarget'' || float || The distance in metres to the AI’s target (i.e., the ship it is trying to shoot). 0 if no target.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserColor'' || colour || The colour of the ship’s laser.&lt;br /&gt;
|-&lt;br /&gt;
| ''isHulk'' || bool || True if the ship has been abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| ''lightsActive'' || bool || True if flashers are turned on, false otherwise.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition''&amp;lt;br&amp;gt;(1.77 or later) || int || Current alert condition – 0 for docked, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Player ship ====&lt;br /&gt;
The player ship has all the properties of [[#Entity|entities]] and [[#Ship|ships]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable player ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''massLocked'' || bool || True if the ship is too close to a large object to be able to make a witchspace jump.&lt;br /&gt;
|-&lt;br /&gt;
| ''atHyperspeed'' || bool || True if the ship is at hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''velocityVector'' || vector || The ship’s velocity.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialForwardShield'' || float || The forward shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialAftShield'' || float || The aft shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMissileStatus'' || int || State of selected missile – 0 for safe/no missile, 1 for active, 2 for locked.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialFuelScoopStatus'' || int || State of cargo scoop – 0 for no scoop installed, 1 for full hold, 2 for idle with space in hold, 3 for actively scooping.&lt;br /&gt;
|-&lt;br /&gt;
| ''compassMode'' || int || State of advanced space compass – 0 for no advanced space compass installed, 1 for planet mode, 2 for station mode, 3 for sun mode, 4 for target mode, 5 for any beacon. More may be added in future.&lt;br /&gt;
|-&lt;br /&gt;
| ''activeMissile'' || int || Which missile slot is currently selected, from 0 to ''dialMaxMissiles'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMaxMissiles'' || int || The number of missile slots on the ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialIdentEngaged'' || bool || True if ident (targeting) mode is active.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition'' || int || Current alert condition – 0 for docked, 1 for green, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
| ''trumbleCount'' || int || Number of trumbles with which the player’s ship is infected.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Additionally, all [[Methods#Querying states|state query scripting methods]] ending with ''_number'' may be used for the player.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Shaders in Oolite]] - dates to Oolite v.1.72 (wiki page written between 2008-10)&lt;br /&gt;
*[[OXP howto texture]] has some up-to-date links&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90106</id>
		<title>Shaders in Oolite: uniforms</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90106"/>
		<updated>2026-08-03T07:38:44Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Update! &lt;br /&gt;
 *Shaders changed in Oolite v.1.90 (2020) with the introduction of filmic tone mapping, Oren-Nayar diffuse light model and increased light source radiance&lt;br /&gt;
 *Shaders changed again in Oolite v.1.92 (2026) with a [https://www.oolite.space/community/#whatsnew Reworked Renderer]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;small&amp;gt;The information presented on this page applies to Oolite test release v.1.69 (2007) and later. It was last edited by somebody knowledgeable in 2016&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A '''uniform''' in a [[Shaders in Oolite|shader]] is a variable whose value is specified by the host application – in this case, [[Oolite]]. Oolite allows arbitrary uniforms to be specified for shaders applied to ships, and these may either take constant values specified in ''shipdata.plist'', or be “bound” to an attribute of the ship. This allows shader authors to access numerous properties of a game entity without having to ask for them and wait for an updated version of Oolite. ('''Note:''' in the case of subentities, bound properties are fetched from the parent ship.)&lt;br /&gt;
&lt;br /&gt;
=== Basic syntax ===&lt;br /&gt;
Uniforms are specified in the ''materials'' or ''shaders'' dictionary of a ship’s ''shipdata.plist'' entry:&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;&amp;quot;ahruman_shady_cobra_example&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    like_ship = &amp;quot;cobra3-player&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    shaders =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        &amp;quot;cobra3_redux.png&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            textures = ( &amp;quot;cobra3_redux.png&amp;quot; );&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            fragment_shader = &amp;quot;ahruman_shady_cobra_example.fragment&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
             uniforms =&lt;br /&gt;
             {&lt;br /&gt;
                 shininess =&lt;br /&gt;
                 {&lt;br /&gt;
                     type = float;&lt;br /&gt;
                     value = 42.0;&lt;br /&gt;
                 };&lt;br /&gt;
                 withinAegis = &amp;quot;withinStationAegis&amp;quot;;&lt;br /&gt;
                 compassMode = &amp;quot;compassMode&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
This contrived example declares three uniforms, ''shininess'', ''withinAegis'' and ''compassMode''. ''shininess'' is a constant &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;; it is always 42. ''withinAegis'' is bound to the ship’s ''withinStationAegis'' property. (See below for information on available properties.) This is a boolean, that is, a number whose value is either 0 (meaning no) or 1 (meaning yes). ''compassMode'' is a binding to the ''compassMode'' property. To use the uniforms within a shader (either a vertex shader or a fragment shader), they are declared as follows:&lt;br /&gt;
 uniform float shininess;&lt;br /&gt;
 uniform int withinAegis;&lt;br /&gt;
 uniform int compassMode;&lt;br /&gt;
 ...&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
     if (withinAegis)&lt;br /&gt;
     {&lt;br /&gt;
          // Do aegis-specific effect here&lt;br /&gt;
     }&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Uniform property types ===&lt;br /&gt;
Every bindable property has a '''type'''. The simplest types, ''int'' and ''float'', correspond directly to the same types in GLSL. Both represent numbers, with the difference that a ''float'' can represent fractional values and very large values, but always has the same level of precision (about six digits), while ''int''s can represent any integer (non-fractional value) in a limited range. A ''bool'' is an integer whose value can be only 0 (meaning no or false) or 1 (meaning yes or true). ('''Note:''' the GLSL specification is deliberately vague on the ranges of the number types. It also points out that most hardware will actually use floating-point calculations for ''int'' variables, which implies that integer calculations will incur rounding overhead.)&lt;br /&gt;
&lt;br /&gt;
The ''vector'' type is translated to a GLSL ''vec4'', whose ''x'', ''y'' and ''z'' components correspond to those of the Oolite vector, and whose ''w'' component is always 1.0.&lt;br /&gt;
&lt;br /&gt;
The ''quaternion'' type can be translated to a ''mat4x4'' representing a rotation matrix, or to a ''vec4'' whose ''x'', ''y'', ''z'' and ''w'' components correspond to those of the Oolite quaternion.&lt;br /&gt;
&lt;br /&gt;
The ''matrix'' type is translated into a GLSL ''mat4x4''.&lt;br /&gt;
&lt;br /&gt;
The ''colour'' type is translated into a GLSL ''vec4'' type, whose ''r'', ''g'', ''b'' and ''a'' components correspond to those of the Oolite colour object.&lt;br /&gt;
&lt;br /&gt;
==== Conversions ====&lt;br /&gt;
Several types of binding can be modified by conversion options, specified in the '''uniforms''' dictionary, for example:&lt;br /&gt;
 haveFuel =&lt;br /&gt;
 {&lt;br /&gt;
     binding = &amp;quot;fuel&amp;quot;;&lt;br /&gt;
     clamped = true;&lt;br /&gt;
 };&lt;br /&gt;
The '''clamped''' conversion option, when applied to a property of type ''float'', causes the value to be clamped to the range [0, 1]. When applied to an ''int'' property, any value other than 0 (including negative values) is converted to 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''normalized''' option causes vector properties to be normalized, that is, scaled so they have the same direction but length 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''asMatrix''' option causes quaternion properties to be converted to rotation matrix, rather than having their components packed into a ''vec4''. The default value is ''true''.&lt;br /&gt;
&lt;br /&gt;
=== Bindable property reference ===&lt;br /&gt;
The following sections list entity properties which can be used in a uniform binding, regardless of apparent usefullness. Note, however, that '''some of these names may change before the next stable release'''.&lt;br /&gt;
&lt;br /&gt;
==== Entity ====&lt;br /&gt;
The following properties are available for all entities:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable entity properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''position'' || vector || The location of the entity in system co-ordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''orientation'' || quaternion || The orientation of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''relativePosition'' || vector || The location of the entity, relative to the player.&lt;br /&gt;
|-&lt;br /&gt;
| ''viewpointOffset'' || vector || The location of the current camera, in entity co-ordinates. Although this is defined for all entities, it is only meaningful for the player ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''collisionRadius'' || float || Together with the ''position'', specifies a sphere completely containing the collidable volume of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''mass'' || float || The mass of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''energy'' || float || The current energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxEnergy'' || float || The current maximum energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''universalTime'' || float || The [[Time scales in Oolite#game real time|game real time]] clock. The value is the same for all entities and updates once per frame.&lt;br /&gt;
|-&lt;br /&gt;
| ''spawnTime'' || float || The [[Time scales in Oolite#game real time|game real time]] at which the entity came into existance.&lt;br /&gt;
|-&lt;br /&gt;
| ''timeElapsedSinceSpawn'' || float || The number of seconds (in the [[Time scales in Oolite#game real time|game real time]] scale) since the entity came into existance – the difference between ''universalTime'' and ''spawnTime''.&lt;br /&gt;
|-&lt;br /&gt;
| ''throwingSparks'' || bool || Whether the entity is generating sparks (for instance, a ship about to explode).&lt;br /&gt;
|-&lt;br /&gt;
| ''fogUniform'' (version 1.83) || vector || Atmosphere colour rgba for applying fog effect. Alpha channel is zero for no fogging to 1 for full fogging.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ship ====&lt;br /&gt;
Ships (i.e., anything set up in ''shipdata.plist'', regardless of function) have all the properties of [[#Entity|entities]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''isBeacon'' || bool || True if the entity is a beacon.&lt;br /&gt;
|-&lt;br /&gt;
| ''isFrangible'' || bool || True if the entity is frangible, i.e. subentities can be shot off.&lt;br /&gt;
|-&lt;br /&gt;
| ''isCloaked'' || bool || True if the entity is cloaked. [b]Note:[/b] a cloaked ship will only be drawn approximately once per ten frames, regardless of shaders.&lt;br /&gt;
|-&lt;br /&gt;
| ''isJammingScanning'' || bool || True if the ship has an active military jammer.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasMilitaryScannerFilter'' || bool || True if the ship has a military scanner filter.&lt;br /&gt;
|-&lt;br /&gt;
| ''messageTime'' || float || Time before a radio message may be sent, in seconds. (This is set to 6.0 seconds when an NPC ship sends a message, and decreases over time.)&lt;br /&gt;
|-&lt;br /&gt;
| ''groupID'' || int || Unique identifier for the escort group the ship belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| ''escortCount'' || int || The number of active escorts the ship has.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasHostileTarget'' || bool || True if the ship has a target and the ship’s current AI behaviour is one of hostile intent.&lt;br /&gt;
|-&lt;br /&gt;
| ''weaponRange'' || float || Maximum range (in metres) of the ship’s main weapon. [b]Note:[/b] since subentities’ shaders get the parent ship’s properties, this may not work as expected.&lt;br /&gt;
|-&lt;br /&gt;
| ''scannerRange'' || float || The distance (in metres) in which the ship will scan for enemies.&lt;br /&gt;
|-&lt;br /&gt;
| ''withinStationAegis'' || bool || True if the ship is within the aegis of the system’s main station.&lt;br /&gt;
|-&lt;br /&gt;
| ''fuel'' || int || Ship’s fuel level, in tenths of a light year.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightPitch'' || float || Current pitch rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightRoll'' || float || Current roll rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightYaw'' || float || Current yaw rate. Currently always 0 for NPC ships.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightSpeed'' || float || Ship’s current speed.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxFlightSpeed'' || float || Ship’s speed at full throttle. Something of a misnomer – actual speed may be higher using afterburners or hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''speedFactor'' || float || ''flightSpeed'' divided by ''maxFlightSpeed''. May be greater than 1.0 (unless [[#Conversions|clamped]] is used).&lt;br /&gt;
|-&lt;br /&gt;
| ''damage'' || int || ''energy'' expressed as a percentage of ''maxEnergy''.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserHeatLevel'' || float || The temperature level of the current weapon.&lt;br /&gt;
|-&lt;br /&gt;
| ''hullHeatLevel'' || float || The temperature level of the hull, due to proximity to stars, atmospheric drag or combat hits. When it reaches 1.0, the ship starts taking damage rapidly.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonality'' || float || A randomly-generated value in the range 0.0 to 1.0 that stays with the entity for its lifetime. Useful for adding random variations.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonalityInt'' || float || Same as ''entity_personality'', scaled to the range 0 to 32767.&lt;br /&gt;
|-&lt;br /&gt;
| ''numberOfScannedShips'' || int || The number of ships within scanner range (but no more than 16).&lt;br /&gt;
|-&lt;br /&gt;
| ''destination'' || vector || The location, in system co-ordinates, that the AI is trying to fly to. This may not always be meaningful depending on AI state.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToDestination'' || float || The distance in metres between ''position'' and ''destination''.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToPrimaryTarget'' || float || The distance in metres to the AI’s target (i.e., the ship it is trying to shoot). 0 if no target.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserColor'' || colour || The colour of the ship’s laser.&lt;br /&gt;
|-&lt;br /&gt;
| ''isHulk'' || bool || True if the ship has been abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| ''lightsActive'' || bool || True if flashers are turned on, false otherwise.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition''&amp;lt;br&amp;gt;(1.77 or later) || int || Current alert condition – 0 for docked, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Player ship ====&lt;br /&gt;
The player ship has all the properties of [[#Entity|entities]] and [[#Ship|ships]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable player ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''massLocked'' || bool || True if the ship is too close to a large object to be able to make a witchspace jump.&lt;br /&gt;
|-&lt;br /&gt;
| ''atHyperspeed'' || bool || True if the ship is at hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''velocityVector'' || vector || The ship’s velocity.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialForwardShield'' || float || The forward shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialAftShield'' || float || The aft shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMissileStatus'' || int || State of selected missile – 0 for safe/no missile, 1 for active, 2 for locked.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialFuelScoopStatus'' || int || State of cargo scoop – 0 for no scoop installed, 1 for full hold, 2 for idle with space in hold, 3 for actively scooping.&lt;br /&gt;
|-&lt;br /&gt;
| ''compassMode'' || int || State of advanced space compass – 0 for no advanced space compass installed, 1 for planet mode, 2 for station mode, 3 for sun mode, 4 for target mode, 5 for any beacon. More may be added in future.&lt;br /&gt;
|-&lt;br /&gt;
| ''activeMissile'' || int || Which missile slot is currently selected, from 0 to ''dialMaxMissiles'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMaxMissiles'' || int || The number of missile slots on the ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialIdentEngaged'' || bool || True if ident (targeting) mode is active.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition'' || int || Current alert condition – 0 for docked, 1 for green, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
| ''trumbleCount'' || int || Number of trumbles with which the player’s ship is infected.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Additionally, all [[Methods#Querying states|state query scripting methods]] ending with ''_number'' may be used for the player.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Shaders in Oolite]] - dates to Oolite v.1.72 (2008, but written in 2010)&lt;br /&gt;
*[[OXP howto texture]] has some up-to-date links&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90105</id>
		<title>Griff Industries</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90105"/>
		<updated>2026-08-03T06:59:06Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
Griff produced some fantastic models of ships, using normalmapping and shaders to produce some of the best-looking ships available in Oolite. All vanilla-game ships and stations are supported.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| align=center width=100% style=&amp;quot;background: black;&amp;quot;&lt;br /&gt;
| [[Image:Griff_adder.jpg |link=Adder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_anaconda.jpg |link=Anaconda (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_asp_mk2.jpg |link=Asp (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_missile.jpg |link=Missile |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_asteroid.jpg|link=Asteroid_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boulder.jpg‎ |link=Boulder_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_splinters.jpg‎|link=Splinters_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_alloy.jpg‎ |link=Metal_Fragment_(Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_boa.jpg |link=Griff Boa |200px]]&lt;br /&gt;
| [[Image:Griff_boa_screenshot2.jpg  |link=Boa (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boa_mk2.jpg |link=Boa 2 Class Cruiser |200px]]&lt;br /&gt;
| [[Image:Griff_barrel.jpg |link=Cargo Container (Oolite) |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_cobra_mk1.jpg |link=Cobra Mk.1 (Oolite) |200px]] &lt;br /&gt;
| [[Image:Griff_cobra_mk3.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_cobra_mk3_scuffed.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff cobra mk3 alt.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_constrictor.jpg |link=Constrictor_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_coriolis_alt.jpg |link=Alternative Coriolis station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_ico.jpg  |link=Icosahedron_Station_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_dodo_thumbnail.jpg |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_fer-de-lance_blinged.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_fer-de-lance_scuffed.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko_sharkteeth.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_krait.jpg |link=Krait (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff-krait.jpg |link=Griff Krait |200px]]&lt;br /&gt;
| [[Image:Griff_mamba.jpg |link=Mamba (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_moray.jpg |link=Moray Star Boat (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_python.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_python_alternative.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Rock_Hermit.jpg  |link=Rock Hermit (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_escape_capsule.jpg |link=Escape Pod |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_sidewinder.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_sidewinder_alternative.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_shuttle.jpg |link=Shuttle (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_transporter.jpg |link=Transporter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_thargoid.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_thargoid_organic.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Thargon.png |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_tharglet_organic2.jpg |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_viper.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_viper_interceptor.jpg |link=Viper Interceptor |200px]]&lt;br /&gt;
| [[Image:Griff_viper_pursuit.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_worm.jpg |link=Worm (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Sainsboorys.png |link=Your Ad Here! |250px]]&lt;br /&gt;
| [[Image:Griff_dodo.png |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff Elite2 bug.jpg |Bug ship from an Elite 2 that didn't get made |200px]]&lt;br /&gt;
| [[Image:Griff_wolf_mkII.jpg |link=Wolf_Mk.2_(Oolite)|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griffhognose.jpg |link=Hognose |250px]]&lt;br /&gt;
| [[Image:Griff_viper_alt_wiki.jpg |link=Viper_(Oolite) |250px]]&lt;br /&gt;
| [[Image:Griff ophidian.jpg|link=Ophidian_(Classic) |250px]]&lt;br /&gt;
| [[Image:Griff elite2 griffin mk1.jpg|link=Griffin_Two_(Oolite) |250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff gnat.jpg |link=Classic_Elite_ships |250px]]&lt;br /&gt;
| [[Image:Griff Viper interceptor alt.jpg |link=Viper Interceptor |250px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Griff's Ship Sets ==&lt;br /&gt;
There are ''four'' sets of Griff ships!&lt;br /&gt;
*The Vanilla game ships in Oolite v.1.92 and later&lt;br /&gt;
::2026&lt;br /&gt;
:These are taken from the [[Oolite v1.88 Base Shipset Normal and Specular/Gloss Maps]] OXP&lt;br /&gt;
:They are simplified versions of the OXPs on the Expansions Manager but with normal, specular &amp;amp; gloss texture maps added - and using the new Oolite shaders system.&lt;br /&gt;
*The Vanilla game ships in Oolite v.1.90 and earlier&lt;br /&gt;
::2013&lt;br /&gt;
:These are simplified versions of Griff's OXPs on the Expansions Manager&lt;br /&gt;
*The OXPs on the Expansions Manager (excluding the &amp;quot;specials&amp;quot; such as Griff Clippers, Griff Prototype Boa, Griff's Glowroids ''etc''.)&lt;br /&gt;
::2013&lt;br /&gt;
:These do not have specular maps, but do have normal maps. These ship models are more complex - and the textures and the shaders are ''much'' more complex. But they use the older Oolite shaders system.&lt;br /&gt;
:They also have special effects: more realistic exhausts, running lights and emergency lights (which dim when power is low), the Thargoids have special reflecting hulls, ''etc''.&lt;br /&gt;
*The unfinished very high poly &amp;quot;SpecGloss&amp;quot; series (only the SpecGloss Sidewinder is on the Expansions Manager - the other ships are on Box.com - see below).&lt;br /&gt;
::In Progress (2022 - date)&lt;br /&gt;
:These resemble Griff's OXPs but with much ''much'' more detail - and adding in SpecGloss and Glowmaps. They also use the newer Oolite shaders system. See [https://drive.google.com/drive/folders/1_8EtoVvwNyXXvqe5GCGy1HuFRRw3NxB7?usp=sharing here] for downloads.&lt;br /&gt;
----&lt;br /&gt;
== Griff's &amp;quot;Expansions Manager&amp;quot; Downloads ==&lt;br /&gt;
All these ships are available in the Oolite [[Expansions Manager|Expansion Pack Manager]].&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Retextured&amp;quot; ship OXPs (&amp;quot;Normalmapped&amp;quot;) ===&lt;br /&gt;
:These constitute the third set mentioned above. These OXPs were created when normal mapping (allowing &amp;quot;bumps&amp;quot; and other such) was added into Oolite.&lt;br /&gt;
*'''Griff's Normalmapped Ships (Replace):'''&lt;br /&gt;
:'''Note''': Spara's rebalanced bundle 'Meta-OXZ'. Available via the Oolite Expansion Pack manager, provides a single click install for all the Griff core shipset ships, bugfixed and rebalanced for better gameplay! This expansion pack is highly recommended over installing the shipset ships individually&lt;br /&gt;
&lt;br /&gt;
*'''Griff Adder, Griff Alloys and Wreckage, Griff Anaconda, Griff Asp, Griff Asteroids, Griff Boa, Griff Boa MkII, Griff Cargopod, Griff Cobra MkI, Griff Cobra MkIII, Griff Cobra MkIII Alt, Griff Constrictor, Griff Escape Capsule, Griff Ferdelance, Griff Gecko, Griff Krait, Griff Mamba, Griff Mamba Alternative, Griff Missiles, Griff Moray, Griff Python, Griff Shuttle, Griff Sidewinder, Griff Station Bundle, Griff Thargoids, Griff Transporter, Griff Viper, Griff Worm&lt;br /&gt;
:The individual ship OXPs included in &amp;quot;Griff's Normalmapped Ships (Replace)&amp;quot; but with minor bugs in places.&lt;br /&gt;
&lt;br /&gt;
=== Other OXPs ===&lt;br /&gt;
*Griff Shipset Decals - this OXP is for adding Decals to Griff's ships (and is needed by his OXPs). See [[Decal]] for more on this&lt;br /&gt;
&lt;br /&gt;
*Griff Clippers - Griffifies the Boa Clipper and Python Clipper from Smivs' earlier [[Clippers]] OXP&lt;br /&gt;
*[[Griff Boa|Griff Prototype Boa]] - the famous, utterly different &amp;quot;Griff Boa&amp;quot; - as below, under &amp;quot;Other OXPs&amp;quot;&lt;br /&gt;
*[[Griff's Glowroids]] - massive asteroids with a difference!&lt;br /&gt;
&lt;br /&gt;
=== Relevant resources not on the Expansions Manager ===&lt;br /&gt;
* '''Resources''' - ''Not needed for gameplay'' - this folder contains various ship meshes and textures in .obj and .png format for interested modders&lt;br /&gt;
:[https://app.box.com/shared/rpkms25cc9 ''Griff Ship Downloads''] on Box.com&lt;br /&gt;
----&lt;br /&gt;
== Griff's Other OXPs ==&lt;br /&gt;
[http://app.box.com/shared/jf1et41yu3 ''Dodo Stations OXP by Griff and CaptKev''] (1.4Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Retextured Dodecahedron stations OXP, v1.1. Updated version released 18th May 2010, Griff has fixed a problem with the shaders.&lt;br /&gt;
&lt;br /&gt;
''[[Flying Dutchman OXP]]'' (31.0Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Wireframe Cobra.&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds the small chance to meet a Ghost Ship in the Ooniverse. What is it? Some claim that it's the ghost of Commander Peter Jameson, reported lost at the end of the last Thargoid War, others that it is simply a manifestation of all those lost souls who were trapped in the trackless depths of interstellar space. One common story is the trail of bad luck and hideous deaths that follow in the wake of the ship's sightings... &lt;br /&gt;
&lt;br /&gt;
[[Griff ArcElite|''Griff's ArcElite'']] (201.2 Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds all the ships from the Acorn Archimedes version of Elite, textured &amp;amp; shaded to resemble how they originally appeared in that version of the game.&lt;br /&gt;
Version 2.0 adds extra ships from Elite 'A', Elite 2 and the Amiga version of Elite&lt;br /&gt;
&lt;br /&gt;
[[Griff Boa|''Griff's Boa OXP'']] (2.7Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Wiki link containing the famous Griff Boa, as featured in the ''&amp;quot;Oolite - It's not just for triangles anymore&amp;quot;'' images. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; the Boa is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships OXP'' as above. Note also that this OXP only works on Oolite 1.74 and higher.&lt;br /&gt;
&lt;br /&gt;
[[Griff Krait|''Griff's Krait OXP'']] (2.5Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
A heavily modified Krait, similar in design to the Griff Boa. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; ''this'' Krait is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships  OXP'' as above.&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/162d02b7e79b1202689c ''Griff's Alloys &amp;amp; Wreckage OXP''] (1.5mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Box.com link to an OXP for Oolite v1.75 and higher that adds a new models &amp;amp; texture for the 'Alloys'. The OXP also generates extra clouds of burning wreckage whenever ships explode. This OXP was updated on 24th March 2013 for more compatibility with the Griff Normalmapped Ships, Replacement version, and should be used in preference to the old ''Griff's Explosion Debris OXP''.&lt;br /&gt;
&lt;br /&gt;
There are other non-normal mapped OXPs linked in Griff's &amp;quot;Complete Catalogue&amp;quot; beneath.&lt;br /&gt;
----&lt;br /&gt;
== OXPs using Griff's ships ==&lt;br /&gt;
&lt;br /&gt;
[http://app.box.com/shared/t3n98yhk6n ''Illicit Unlock - Griff Version''] by ADCK (3.5Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Based on the original Illicit Unlock, Allows the player to fly Griffs pirate/viper Ships. (Requires ''Griff's Normalmapped Ships, above'' ) &lt;br /&gt;
&lt;br /&gt;
Bugfixed and updated files for the oxp by Dertien (requires overwriting files in ADCK's original oxp) -  [http://app.box.com/shared/jq8biuf21o ''Download'']&lt;br /&gt;
&lt;br /&gt;
[[Black_Monk_Monastery|''Bank of the Black Monks'']] by LittleBear. The station and Gunships are Griff's.&lt;br /&gt;
&lt;br /&gt;
''[[Random Hits OXP]]''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring many Ships/Stations made by Griff.&lt;br /&gt;
&lt;br /&gt;
[[Your_Ad_Here!|''Your Ad Here! OXP'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Tradestations.&lt;br /&gt;
&lt;br /&gt;
[[Staer9%27s_Shipset|''Staer9's Shipset'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds more ships based on Griffs models.&lt;br /&gt;
&lt;br /&gt;
[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9306 ''ZGrOovy Griff System Stations OXP''] by Dertien (on the Oolite BB).&amp;lt;br /&amp;gt;&lt;br /&gt;
Using Griff's station textures, adds five new model stations, from the small Tetrahedron and Octahedrons, through the standard sized Coriolis, to the large Dodecahedron and Icosahedron stations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Lore ==&lt;br /&gt;
Added by [[The Assassins Guild OXP]]&lt;br /&gt;
&lt;br /&gt;
The [[Sector7/Ateslete|Ateslete]] system in galaxy 7 is reasonably noted for the ice-world, Stymphal. The well known robotics company, '''Griff Research Ltd''', operates factories over most of the planet and maintains an orbital research station near Stymphal.&lt;br /&gt;
&lt;br /&gt;
The company was originally founded to produce droids and other artificial life forms, enjoying much success winning the coveted “Which Droid?” award for a decade. Perhaps their most famous design was the [[Griff Robotic Cargo Loader|Robotic Cargo Loader]] which is still in service in all sectors. In recent years the company has diversified into building high specification ships and stations to order. Examples of their known designs include providing the Bank of the Black Monks of St Herod with a fearsome [[Black Monk Monastery|armed orbital platform]] and the [[Black Monk Gunship|Holy Avenger Mark II Tri-Laser Gunship]].&lt;br /&gt;
&lt;br /&gt;
The company's main ship design work is however highly classified, their most regular client being the [[Galactic Navy]]. Griff Research Ltd has constructed several Frigate Class vessels for the Navy, in addition to new types of weapons. No further details are available, although it is rumored that the Company is returning to its roots as a robotics company, in a current design brief. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Complete Catalogue of Griff's oeuvre (2006 - date) ==&lt;br /&gt;
See here: [[User:Griff/OXP Catalogue‎]] for an attempt at this (not fully formatted yet)&lt;br /&gt;
&lt;br /&gt;
{{Retextures-OXP}}&lt;br /&gt;
{{Ship-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Griff Industries| ]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90084</id>
		<title>Shaders in Oolite: uniforms</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Shaders_in_Oolite:_uniforms&amp;diff=90084"/>
		<updated>2026-08-02T15:34:32Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added historical context, Links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Update! &lt;br /&gt;
 *Shaders changed in Oolite v.1.90 (2020) with the introduction of filmic tone mapping, Oren-Nayar diffuse light model and increased light source radiance&lt;br /&gt;
 *Shaders changed again in Oolite v.1.92 (2026) with a [https://www.oolite.space/community/#whatsnew Reworked Renderer]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;small&amp;gt;The information presented on this page applies to Oolite test release v.1.69 (2007) and later.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A '''uniform''' in a [[Shaders in Oolite|shader]] is a variable whose value is specified by the host application – in this case, [[Oolite]]. Oolite allows arbitrary uniforms to be specified for shaders applied to ships, and these may either take constant values specified in ''shipdata.plist'', or be “bound” to an attribute of the ship. This allows shader authors to access numerous properties of a game entity without having to ask for them and wait for an updated version of Oolite. ('''Note:''' in the case of subentities, bound properties are fetched from the parent ship.)&lt;br /&gt;
&lt;br /&gt;
=== Basic syntax ===&lt;br /&gt;
Uniforms are specified in the ''materials'' or ''shaders'' dictionary of a ship’s ''shipdata.plist'' entry:&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;&amp;quot;ahruman_shady_cobra_example&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    like_ship = &amp;quot;cobra3-player&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    shaders =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        &amp;quot;cobra3_redux.png&amp;quot; =&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        {&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            textures = ( &amp;quot;cobra3_redux.png&amp;quot; );&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;            fragment_shader = &amp;quot;ahruman_shady_cobra_example.fragment&amp;quot;;&amp;lt;/font&amp;gt;&lt;br /&gt;
             uniforms =&lt;br /&gt;
             {&lt;br /&gt;
                 shininess =&lt;br /&gt;
                 {&lt;br /&gt;
                     type = float;&lt;br /&gt;
                     value = 42.0;&lt;br /&gt;
                 };&lt;br /&gt;
                 withinAegis = &amp;quot;withinStationAegis&amp;quot;;&lt;br /&gt;
                 compassMode = &amp;quot;compassMode&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;        }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;    }&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#AAAAAA&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
This contrived example declares three uniforms, ''shininess'', ''withinAegis'' and ''compassMode''. ''shininess'' is a constant &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;; it is always 42. ''withinAegis'' is bound to the ship’s ''withinStationAegis'' property. (See below for information on available properties.) This is a boolean, that is, a number whose value is either 0 (meaning no) or 1 (meaning yes). ''compassMode'' is a binding to the ''compassMode'' property. To use the uniforms within a shader (either a vertex shader or a fragment shader), they are declared as follows:&lt;br /&gt;
 uniform float shininess;&lt;br /&gt;
 uniform int withinAegis;&lt;br /&gt;
 uniform int compassMode;&lt;br /&gt;
 ...&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
     if (withinAegis)&lt;br /&gt;
     {&lt;br /&gt;
          // Do aegis-specific effect here&lt;br /&gt;
     }&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Uniform property types ===&lt;br /&gt;
Every bindable property has a '''type'''. The simplest types, ''int'' and ''float'', correspond directly to the same types in GLSL. Both represent numbers, with the difference that a ''float'' can represent fractional values and very large values, but always has the same level of precision (about six digits), while ''int''s can represent any integer (non-fractional value) in a limited range. A ''bool'' is an integer whose value can be only 0 (meaning no or false) or 1 (meaning yes or true). ('''Note:''' the GLSL specification is deliberately vague on the ranges of the number types. It also points out that most hardware will actually use floating-point calculations for ''int'' variables, which implies that integer calculations will incur rounding overhead.)&lt;br /&gt;
&lt;br /&gt;
The ''vector'' type is translated to a GLSL ''vec4'', whose ''x'', ''y'' and ''z'' components correspond to those of the Oolite vector, and whose ''w'' component is always 1.0.&lt;br /&gt;
&lt;br /&gt;
The ''quaternion'' type can be translated to a ''mat4x4'' representing a rotation matrix, or to a ''vec4'' whose ''x'', ''y'', ''z'' and ''w'' components correspond to those of the Oolite quaternion.&lt;br /&gt;
&lt;br /&gt;
The ''matrix'' type is translated into a GLSL ''mat4x4''.&lt;br /&gt;
&lt;br /&gt;
The ''colour'' type is translated into a GLSL ''vec4'' type, whose ''r'', ''g'', ''b'' and ''a'' components correspond to those of the Oolite colour object.&lt;br /&gt;
&lt;br /&gt;
==== Conversions ====&lt;br /&gt;
Several types of binding can be modified by conversion options, specified in the '''uniforms''' dictionary, for example:&lt;br /&gt;
 haveFuel =&lt;br /&gt;
 {&lt;br /&gt;
     binding = &amp;quot;fuel&amp;quot;;&lt;br /&gt;
     clamped = true;&lt;br /&gt;
 };&lt;br /&gt;
The '''clamped''' conversion option, when applied to a property of type ''float'', causes the value to be clamped to the range [0, 1]. When applied to an ''int'' property, any value other than 0 (including negative values) is converted to 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''normalized''' option causes vector properties to be normalized, that is, scaled so they have the same direction but length 1. The default value is ''false''.&lt;br /&gt;
&lt;br /&gt;
The '''asMatrix''' option causes quaternion properties to be converted to rotation matrix, rather than having their components packed into a ''vec4''. The default value is ''true''.&lt;br /&gt;
&lt;br /&gt;
=== Bindable property reference ===&lt;br /&gt;
The following sections list entity properties which can be used in a uniform binding, regardless of apparent usefullness. Note, however, that '''some of these names may change before the next stable release'''.&lt;br /&gt;
&lt;br /&gt;
==== Entity ====&lt;br /&gt;
The following properties are available for all entities:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable entity properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''position'' || vector || The location of the entity in system co-ordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''orientation'' || quaternion || The orientation of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''relativePosition'' || vector || The location of the entity, relative to the player.&lt;br /&gt;
|-&lt;br /&gt;
| ''viewpointOffset'' || vector || The location of the current camera, in entity co-ordinates. Although this is defined for all entities, it is only meaningful for the player ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''collisionRadius'' || float || Together with the ''position'', specifies a sphere completely containing the collidable volume of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''mass'' || float || The mass of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''energy'' || float || The current energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxEnergy'' || float || The current maximum energy level of the entity.&lt;br /&gt;
|-&lt;br /&gt;
| ''universalTime'' || float || The [[Time scales in Oolite#game real time|game real time]] clock. The value is the same for all entities and updates once per frame.&lt;br /&gt;
|-&lt;br /&gt;
| ''spawnTime'' || float || The [[Time scales in Oolite#game real time|game real time]] at which the entity came into existance.&lt;br /&gt;
|-&lt;br /&gt;
| ''timeElapsedSinceSpawn'' || float || The number of seconds (in the [[Time scales in Oolite#game real time|game real time]] scale) since the entity came into existance – the difference between ''universalTime'' and ''spawnTime''.&lt;br /&gt;
|-&lt;br /&gt;
| ''throwingSparks'' || bool || Whether the entity is generating sparks (for instance, a ship about to explode).&lt;br /&gt;
|-&lt;br /&gt;
| ''fogUniform'' (version 1.83) || vector || Atmosphere colour rgba for applying fog effect. Alpha channel is zero for no fogging to 1 for full fogging.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ship ====&lt;br /&gt;
Ships (i.e., anything set up in ''shipdata.plist'', regardless of function) have all the properties of [[#Entity|entities]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''isBeacon'' || bool || True if the entity is a beacon.&lt;br /&gt;
|-&lt;br /&gt;
| ''isFrangible'' || bool || True if the entity is frangible, i.e. subentities can be shot off.&lt;br /&gt;
|-&lt;br /&gt;
| ''isCloaked'' || bool || True if the entity is cloaked. [b]Note:[/b] a cloaked ship will only be drawn approximately once per ten frames, regardless of shaders.&lt;br /&gt;
|-&lt;br /&gt;
| ''isJammingScanning'' || bool || True if the ship has an active military jammer.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasMilitaryScannerFilter'' || bool || True if the ship has a military scanner filter.&lt;br /&gt;
|-&lt;br /&gt;
| ''messageTime'' || float || Time before a radio message may be sent, in seconds. (This is set to 6.0 seconds when an NPC ship sends a message, and decreases over time.)&lt;br /&gt;
|-&lt;br /&gt;
| ''groupID'' || int || Unique identifier for the escort group the ship belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| ''escortCount'' || int || The number of active escorts the ship has.&lt;br /&gt;
|-&lt;br /&gt;
| ''hasHostileTarget'' || bool || True if the ship has a target and the ship’s current AI behaviour is one of hostile intent.&lt;br /&gt;
|-&lt;br /&gt;
| ''weaponRange'' || float || Maximum range (in metres) of the ship’s main weapon. [b]Note:[/b] since subentities’ shaders get the parent ship’s properties, this may not work as expected.&lt;br /&gt;
|-&lt;br /&gt;
| ''scannerRange'' || float || The distance (in metres) in which the ship will scan for enemies.&lt;br /&gt;
|-&lt;br /&gt;
| ''withinStationAegis'' || bool || True if the ship is within the aegis of the system’s main station.&lt;br /&gt;
|-&lt;br /&gt;
| ''fuel'' || int || Ship’s fuel level, in tenths of a light year.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightPitch'' || float || Current pitch rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightRoll'' || float || Current roll rate.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightYaw'' || float || Current yaw rate. Currently always 0 for NPC ships.&lt;br /&gt;
|-&lt;br /&gt;
| ''flightSpeed'' || float || Ship’s current speed.&lt;br /&gt;
|-&lt;br /&gt;
| ''maxFlightSpeed'' || float || Ship’s speed at full throttle. Something of a misnomer – actual speed may be higher using afterburners or hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''speedFactor'' || float || ''flightSpeed'' divided by ''maxFlightSpeed''. May be greater than 1.0 (unless [[#Conversions|clamped]] is used).&lt;br /&gt;
|-&lt;br /&gt;
| ''damage'' || int || ''energy'' expressed as a percentage of ''maxEnergy''.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserHeatLevel'' || float || The temperature level of the current weapon.&lt;br /&gt;
|-&lt;br /&gt;
| ''hullHeatLevel'' || float || The temperature level of the hull, due to proximity to stars, atmospheric drag or combat hits. When it reaches 1.0, the ship starts taking damage rapidly.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonality'' || float || A randomly-generated value in the range 0.0 to 1.0 that stays with the entity for its lifetime. Useful for adding random variations.&lt;br /&gt;
|-&lt;br /&gt;
| ''entityPersonalityInt'' || float || Same as ''entity_personality'', scaled to the range 0 to 32767.&lt;br /&gt;
|-&lt;br /&gt;
| ''numberOfScannedShips'' || int || The number of ships within scanner range (but no more than 16).&lt;br /&gt;
|-&lt;br /&gt;
| ''destination'' || vector || The location, in system co-ordinates, that the AI is trying to fly to. This may not always be meaningful depending on AI state.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToDestination'' || float || The distance in metres between ''position'' and ''destination''.&lt;br /&gt;
|-&lt;br /&gt;
| ''rangeToPrimaryTarget'' || float || The distance in metres to the AI’s target (i.e., the ship it is trying to shoot). 0 if no target.&lt;br /&gt;
|-&lt;br /&gt;
| ''laserColor'' || colour || The colour of the ship’s laser.&lt;br /&gt;
|-&lt;br /&gt;
| ''isHulk'' || bool || True if the ship has been abandoned.&lt;br /&gt;
|-&lt;br /&gt;
| ''lightsActive'' || bool || True if flashers are turned on, false otherwise.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition''&amp;lt;br&amp;gt;(1.77 or later) || int || Current alert condition – 0 for docked, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Player ship ====&lt;br /&gt;
The player ship has all the properties of [[#Entity|entities]] and [[#Ship|ships]], and several others:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Bindable player ship properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ''massLocked'' || bool || True if the ship is too close to a large object to be able to make a witchspace jump.&lt;br /&gt;
|-&lt;br /&gt;
| ''atHyperspeed'' || bool || True if the ship is at hyperspeed.&lt;br /&gt;
|-&lt;br /&gt;
| ''velocityVector'' || vector || The ship’s velocity.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialForwardShield'' || float || The forward shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialAftShield'' || float || The aft shield level, ranging from 0.0 to 1.0.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMissileStatus'' || int || State of selected missile – 0 for safe/no missile, 1 for active, 2 for locked.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialFuelScoopStatus'' || int || State of cargo scoop – 0 for no scoop installed, 1 for full hold, 2 for idle with space in hold, 3 for actively scooping.&lt;br /&gt;
|-&lt;br /&gt;
| ''compassMode'' || int || State of advanced space compass – 0 for no advanced space compass installed, 1 for planet mode, 2 for station mode, 3 for sun mode, 4 for target mode, 5 for any beacon. More may be added in future.&lt;br /&gt;
|-&lt;br /&gt;
| ''activeMissile'' || int || Which missile slot is currently selected, from 0 to ''dialMaxMissiles'' - 1.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialMaxMissiles'' || int || The number of missile slots on the ship.&lt;br /&gt;
|-&lt;br /&gt;
| ''dialIdentEngaged'' || bool || True if ident (targeting) mode is active.&lt;br /&gt;
|-&lt;br /&gt;
| ''alertCondition'' || int || Current alert condition – 0 for docked, 1 for green, 2 for yellow, 3 for red.&lt;br /&gt;
|-&lt;br /&gt;
| ''trumbleCount'' || int || Number of trumbles with which the player’s ship is infected.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Additionally, all [[Methods#Querying states|state query scripting methods]] ending with ''_number'' may be used for the player.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Shaders in Oolite]] - dates to Oolite v.1.72 (2008, but written in 2010)&lt;br /&gt;
*[[OXP howto texture]] has some up-to-date links&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=OXP_howto_texture&amp;diff=90083</id>
		<title>OXP howto texture</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=OXP_howto_texture&amp;diff=90083"/>
		<updated>2026-08-02T15:02:41Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Ideas */ Added structure and Griff's shaders display&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Untextured Odyssey.png|thumb|right|200px|Maaarcooose's finished model of the Odyssey, prior to texturing]]&lt;br /&gt;
[[File:U31 odyssey.png|thumb|right|200px|Textured Odyssey]]&lt;br /&gt;
Note that possibilities have increased immensely since this was written in 2006. See [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018-21) for details.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{OXPNote|This page was last properly edited in 2006, before the introduction of shaders and well before [[User:Another commander|Another commander]]'s work on Oolite introducing specular &amp;amp; gloss maps, the new Oren-Nayar diffuse light model, high-definition graphic resolution ''etc''. The links are more up-to-date.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple introduction ==&lt;br /&gt;
A simpler way into this might be experimenting with the [[Ship Respray OXP]] - or just adding a [[Decal]] to your ship.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
A '''normal texture''' specifies a single property of the model’s material at each point – specifically, its diffuse colour, or albedo. '''Specular maps''', '''glow maps''' (''eg'' for the engine exhaust glows) and other effect maps are auxiliary textures specifying additional material properties. Extra detail can be added into the '''alpha layer/channel''' (eg for the city night lights for planets in Oolite v.1.90: the illumination map should get embedded in the alpha channel of the planet's diffuse map).&lt;br /&gt;
&lt;br /&gt;
See [[Shaders in Oolite]] (2010) for explanations of vertex shaders, fragment shaders and uniforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 ==&lt;br /&gt;
&lt;br /&gt;
Open a good [[List of software|graphic editing application]], something a bit more elaborate than MS-paint.&lt;br /&gt;
&lt;br /&gt;
 Tip: [https://bb.oolite.space/viewtopic.php?p=258574#p258574 Gsagostinho (2017)]: I think I am addicted to Wings3D, learned how to use it in just a few days after banging my head against Blender's wall for years.&lt;br /&gt;
&lt;br /&gt;
=== Custom texture native models ===&lt;br /&gt;
&lt;br /&gt;
You can create custom textures for any Oolite native entities, the steps to follow are:&lt;br /&gt;
*Edit the chosen native texture to your own liking.&lt;br /&gt;
*Duplicate the chosen ''Xnative_ship''.dat model, and alter the file name. Open the copy in a text editor, and change all referances from ''Xnative_ship''.png to the name of your ''custom_texture''.png.&lt;br /&gt;
*Create a custom [[shipdata.plist]], with a [[like_ship shipdata.plist example|like_ship]] entry which refers to the original, and place your components into the appropriate folders, making a complete, [[OXP_howto|funcional OXP]].  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Textures from a wings3D model ===&lt;br /&gt;
&lt;br /&gt;
After you have created a model, you need to apply an [http://en.wikipedia.org/wiki/UV_mapping UV-Map], this defines the way your future texture-file will be stretched across your model.&lt;br /&gt;
Use hard edges to mark where to 'cut' the textures. &lt;br /&gt;
&lt;br /&gt;
There are two ways Wings-3D will extract an UV-Map: &lt;br /&gt;
&lt;br /&gt;
(1) Fold: like a papermodel, the model is folded out to the flat plane of the texture. Can be usefull for small details, but may be difficult to line up correctly. &lt;br /&gt;
&lt;br /&gt;
(2) Projection: the less complicated approach, will project (average normal) the sections unto the texture canvas.&lt;br /&gt;
&lt;br /&gt;
Move around the sections untill you are satisfied. Then create a texturemap from the UV-Map, do not forget to set 'draw all lines' in the options.&lt;br /&gt;
Repeat this for all UV's the model uses. Close the UV-window and rename the texture file in the 'outliner'. Export the file. &lt;br /&gt;
(note: win-wings does not support PNG-format, use BMP)&lt;br /&gt;
&lt;br /&gt;
You may want to look at Daniel Walker's [[F_C_Textures|texture guide]] (2006).&lt;br /&gt;
&lt;br /&gt;
*Beginners and non-2D-artists may prefer to begin here: [[Modelling_103:_Texturing_for_the_2D_Challenged]] (2006), instead.&lt;br /&gt;
*There is also an old BB thread [https://bb.oolite.space/viewtopic.php?t=4718 Texturing with Wings3D] (2008-13)&lt;br /&gt;
&lt;br /&gt;
== Step 2 ==&lt;br /&gt;
&lt;br /&gt;
Now edit the file in your graphic software.&lt;br /&gt;
&lt;br /&gt;
When you are satisfied with your results, save and go back to wings3D.&lt;br /&gt;
Most probably you have saved under a new filename, so 'import-image' it.&lt;br /&gt;
Now drag the edited texture to it's corresponding UV-Map. &lt;br /&gt;
Your texture should now appear on the model (place some light sources first). &lt;br /&gt;
Check if all the various parts line up correctly.&lt;br /&gt;
 &lt;br /&gt;
Edit the texture some more if you are not impressed with your results, save under the same name and in wings3D select 'refresh' image in the outliner.&lt;br /&gt;
&lt;br /&gt;
== Export model ==&lt;br /&gt;
&lt;br /&gt;
Before you export, make sure the texture images are 'internal'. &lt;br /&gt;
Export in *.dat-format. &lt;br /&gt;
&lt;br /&gt;
win-wings users:&lt;br /&gt;
* Export in *.obj + *.mtl. &lt;br /&gt;
* Rename the texture references in the mtl-file from *.bmp to *.png)&lt;br /&gt;
* Open texturefiles and save as *.png.&lt;br /&gt;
* [[Oolite converters|Convert]] the obj+mtl files to *.dat format via Obj2DatTexNorm.py.&lt;br /&gt;
&lt;br /&gt;
== Important comment from a_c ==&lt;br /&gt;
[[File:Gal-Tech-Arachnid-Mark1.png|thumb|right|320px|Arachnid Mark 1 (custom shaders disabled, used Oolite shaders)]]&lt;br /&gt;
[[File:Serpent Class Cruiser 2.png|thumb|right|320px|Serpent Class Cruiser]]&lt;br /&gt;
 Some lighting and material tips here:&lt;br /&gt;
 &lt;br /&gt;
 1. Decide what your ship should look like early on. Decide on the type of materials you need for each single part of it. Don't just go with it thinking that you just need to &amp;quot;dress it up&amp;quot; with a texture. If you do, it will most likely end up looking like the texture is a piece of color paper wrapped around a model.&lt;br /&gt;
 &lt;br /&gt;
 2. Materials are divided into two major categories: metals and dielectrics (i.e. non-metals). Here are some basic guidelines for each:&lt;br /&gt;
 &lt;br /&gt;
 '''Metals''':&lt;br /&gt;
 - Specular: Usually white or some shade of gray, values usually in the range of 0.65 - 0.75. Metals can have tinted specular too, e.g. gold, copper. You define this tint in the specular map or with specular_color.&lt;br /&gt;
 - Gloss: Up to the artist. Experiment until you see something you like.&lt;br /&gt;
 - Diffuse: Pure metals always have black diffuse color.&lt;br /&gt;
 &lt;br /&gt;
 '''Dielectrics''':&lt;br /&gt;
 - Specular: Very low. Usually around (0.04, 0.04, 0.04). Dielectrics never have tinted specular, unless you are trying to create impossible materials. Things like water have even less specular. For example, the specular value used for the ocean specular reflections in the Lave is Earth OXP is 0.02. Some materials may have slightly different specular values, but normally they are low and materials with specular at around 0.4-0.5 are extremely rare to non-existent. If you are unsure what value to use for your material and you know it is a dielectric, use 0.04.&lt;br /&gt;
 - Gloss: Depends. Normally on the artist and the appearance they want to achieve. Plastic for example usually has high gloss values but it is not a rule, just a guideline.&lt;br /&gt;
 - Diffuse: Whatever color your material is. Important - DO NOT include lighting information in a diffuse map - it will look totally off when viewed from the wrong angles. Just put the color of the material there and let the shaders decide on how the lighting will look.&lt;br /&gt;
 &lt;br /&gt;
 3. The type of material you want to use is not what your object of interest is made of, but what it is on the surface that will reflect the light. Practical example: If your ship is made of titanium and has a coat of paint all over it, the material you want to try to reproduce is paint (which is dielectric) and not titanium.&lt;br /&gt;
 &lt;br /&gt;
 4. Re normal maps - Try to make details that have a purpose on them. The Arachnid above has a normal map with lots of details, but they are just fluff without purpose. Griff's ships have details on the normal map that seem to outline objects that &amp;quot;do something&amp;quot;. The Serpent class above also.&lt;br /&gt;
 &lt;br /&gt;
 5. Generally speaking, you will get much better results if you use spec and gloss maps rather than numeric values for spec and gloss in the material definition. The reason is that you can describe much better the variations of materials over your surface. You can also describe variations within the same material (e.g. a shiny ship that has a part of a wing that's rusty or dusty - this can be achieved only by texture).&lt;br /&gt;
 &lt;br /&gt;
 6. Gloss is where an artist has completely free reign. While the other properties are more or less governed by physics, gloss is whatever you want it to be. That is your chance to be truly creative.&lt;br /&gt;
 &lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=271594#p271594 Some lighting and material tips] ([[User:Another_commander|Another_commander]] 2020)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=284933#p284933 Some experiments with Specular, Gloss &amp;amp; Diffuse textures (several posts)] ([[User:Cbr|Cbr]] 2022)&lt;br /&gt;
&lt;br /&gt;
=== Planet textures ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21259 Planet illumination user defined colors] ([[User:Another_commander|Another_commander]] 2022)&lt;br /&gt;
*It should be possible to register places on the rotating planet texture ([https://bb.oolite.space/viewtopic.php?p=305966#p305966 Phkb, 2026])&lt;br /&gt;
&lt;br /&gt;
== Internal Links ==&lt;br /&gt;
*[[OXP]]&lt;br /&gt;
*[[OXP howto]]&lt;br /&gt;
*[[OXP howto model]]&lt;br /&gt;
*[[Viewing a Texture or Model]]&lt;br /&gt;
*[[Modifying a Texture‎]] - old unedited page from 2009&lt;br /&gt;
&lt;br /&gt;
=== Texture/Shaders related ===&lt;br /&gt;
*[[Shaders in Oolite]] (2010)&lt;br /&gt;
*[[Shaders in Oolite: uniforms]] (2007, updated in 2012 &amp;amp; 2016)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=19881 A Description of the Improved Lighting and Materials System] (2018)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=265300#p265300 Filmic Tonemapping] (2018)&lt;br /&gt;
*[[Materials in Oolite]] (2013)&lt;br /&gt;
==== Memory ====&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=11913 Unoptimised textures] (2012) - reducing the byte-size of your texture&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=7117 Do unused parts of texture hog memory?] (2009)&lt;br /&gt;
&lt;br /&gt;
=== Other texture tutorials ===&lt;br /&gt;
*[[Smivs'_texture_tutorial]] (2010)&lt;br /&gt;
*[[Texturing tips and tricks by Theta Seven]] (2017 - a follow-up to Smivs' tutorial)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=11627 Understanding visual effects] (Smiv's cut and paste of tips, 2012) - achieving Griffification without shaders (See [[Dertien]]'s OXPs for other examples)&lt;br /&gt;
*[http://zgroovy.blogspot.com/p/notes.html Dertien's tutorial] (2012) includes tips on how to use the .dat converters.&lt;br /&gt;
*Shipbuilder's 2013 tutorial using his [[Arachnid Mark 1]] as a model:&lt;br /&gt;
:: His tutorial document can be downloaded in pdf format here https://app.box.com/s/adl2gw654juwlkamyeol&lt;br /&gt;
::The accompanying resource packs can be downloaded here https://app.box.com/s/njsbp935aseegsegh18l&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=6054 SimonB's Tutorial] (2009) UV map, diffuse map, effects map, normal map.&lt;br /&gt;
*[[F C Textures]]: howto texture by Flying Circus (2006: pre-shaders; mirror planing a texture using Wings3D &amp;amp; Gimp)&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=257563#p257563 Query &amp;amp; answer ''re'' the use of transparent texture files] (2017)&lt;br /&gt;
&lt;br /&gt;
=== Planet textures ===&lt;br /&gt;
*Planets can now (v.1.90) have differently coloured atmospheres &amp;amp; city nightlights! See [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21259 Planet illumination user defined colors] (2022+).&lt;br /&gt;
:[[User:Phkb|Phkb]] has updated some half-dozen OXPs with such textures ([[Lave OXP]], [[Riredi]], [[Taranis]], [[Tianve OXP]], [[Sector1/Digebiti|Digebiti]], [[Draven]]; and Submersible's [[BPlanets]] also has them. See also a_c's [https://bb.oolite.space/viewtopic.php?t=21899 Reorte is Hot Giant] (2025).&lt;br /&gt;
*[[Blender Planet Textures]] (2016 but with more recent links)&lt;br /&gt;
*[https://drive.google.com/drive/folders/0B_OS-FIJTVDXY1BUZjkxSndDZUU?resourcekey=0-HSmNsvehVEmx-D9wELbH2Q Lave Texture Creation] (2014 how-to essay in Russian by Stranger)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=95355#p95355 Griff's Planet shader example] (2009) - based on planet Earth.&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=69399#p69399 SimonB's GIMP tutorial] (2009) - starts with moons, and then Ahruman moves it onto planets.&lt;br /&gt;
&lt;br /&gt;
==== Non-Oolite resources ====&lt;br /&gt;
*[https://forum.kerbalspaceprogram.com/index.php?/topic/165285-planetary-texturing-guide-repository/#comment-3167423 Planet texturing guide repository (KSP)] (2023)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=18638&amp;amp;start=15 Libnoise] (2017) A portable, open-source, coherent noise-generating library for C++ (Windows, Gentoo Linux)&lt;br /&gt;
*[https://www.cgtrader.com/free-3d-models/space/planet/nar-shaddaa-4k-star-wars-planet-texture Links to free planet textures (CGTrader.com)] - discussion on &amp;quot;what to do with them&amp;quot; starts [https://bb.oolite.space/viewtopic.php?p=285823#p285823 here]&lt;br /&gt;
*[https://jsplacementweb.pages.dev/# JSplacement] makes randomised hull panel-type and piping things if you're wanting to texture models.&lt;br /&gt;
:The little nine-dots at the top left gives you access to the different generators, ''Classic'' and ''2'' are plating and ''Wyre'' is for pipes&lt;br /&gt;
each has a bit of help guide if you change to it then go back to the nine-dots and click Digital Guide. &lt;br /&gt;
:''Save Height'' saves the image and it also gens up the normal map if you click ''Save Normal''.&lt;br /&gt;
[[File:Trade-Factor-Animation.gif |thumb|right|Ideas: Griff's SpecGloss Sidewinder showing deterioration due to lack of maintenance]]&lt;br /&gt;
[[File:Smivs'-cobra3-alternate-damaged.png|thumb|right|Ideas: Smiv's &amp;quot;damaged Cobra&amp;quot; texture]]&lt;br /&gt;
&lt;br /&gt;
=== Ideas ===&lt;br /&gt;
==== Shaders ====&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21170 Griff's SpecGloss Sidewinder] shows the effects of changing [[Maintenance]] levels (2022)&lt;br /&gt;
:See his comment [https://bb.oolite.space/viewtopic.php?p=295645#p295645 here] on how he did it (2024)&lt;br /&gt;
*Griff's Shaders Treasury: a collection of 6 gifs/mp4's showing what can be done with shaders [https://drive.google.com/drive/folders/1ZCjoEBnXPo9qijN_Ek7V8NmkjXNSgI3N Download HERE!]&lt;br /&gt;
:changing maintenance levels (as above), engine glow, engine glow colour, gun and hull heat, Alert Status and Damage amount &amp;amp; finally, paint colour and Decals&lt;br /&gt;
&lt;br /&gt;
==== Textures ====&lt;br /&gt;
*Smivs created a [[Smivs' ShipSet|damaged ship set]] which worked with the older versions of his [[BattleDamage|Battle Damage OXP]]. (2012)&lt;br /&gt;
*Griff's [https://bb.oolite.space/viewtopic.php?p=206321#p206321 experimental damaged textures] (2013)&lt;br /&gt;
&lt;br /&gt;
[[File:Lib MatFinder Pos02.png|thumb|right|200px|Library OXP &amp;quot;MatFinder&amp;quot; add-on for aligning exhausts]]&lt;br /&gt;
&lt;br /&gt;
=== Other help ===&lt;br /&gt;
*[[Oolite converters]] (links to helper scripts ''etc'')&lt;br /&gt;
*[[MatFinder]] for [[Library OXP]] - A developer-tool to work out materials entries&lt;br /&gt;
*Library_devtools.oxp for [[Library OXP]] - A developer-tool to test for all kinds of things&lt;br /&gt;
*[https://app.box.com/s/5xbksy48qr9cp31z2wpef6wjla05s3ih/folder/26357445023 Test Ship Model OXP (2023)] by [[User:Phkb|Phkb]] for viewing new ships (needs Oolite v.1.91).&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
=== Wings 3D ===&lt;br /&gt;
*[http://www.wings3d.com/ Wings3D official home]&lt;br /&gt;
*[http://www.wings3d.com/paulthepuzzles/aardvarks.html Tuts and tips Wings3D (2008), by Aardvark]&lt;br /&gt;
*[https://www.youtube.com/user/MrDertien/videos YouTube classes in Wings3D] (2013-4) by [[Dertien]]&lt;br /&gt;
&lt;br /&gt;
=== Blender ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=10041 Blender 3d Modeling Tutorials] (2011-22), originally by [[User:Staer9|Staer9]], includes texturing&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13144 XYZ coordinates Blender to Oolite] (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18159 Textures in .dat-files / blender] (2016)&lt;br /&gt;
&lt;br /&gt;
=== GIMP ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=69600#69600 Textures in GIMP] (2009) by SimonB&lt;br /&gt;
&lt;br /&gt;
=== GeeXLab (shaders) ===&lt;br /&gt;
*[https://www.geeks3d.com/geexlab GeeXLab] - recommended by [[User:Tricky|Tricky]] back in [https://bb.oolite.space/viewtopic.php?p=176638#p176638 2012]&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
*[[Modifying a Texture]] from 2009&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=11627 Understanding visual effects] a 2012 compilation including a discussion on specular mapping&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=5580 Skinner's Den] 11 pages of texturing tips (2009-date)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=264830#p264830 Putting it all together] (2018) by [[User:Phkb|Phkb]]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=271594#p271594 Lighting &amp;amp; Materials tips] for the newer versions of Oolite (2020) by [[User:Another_commander|Another_commander]]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=295581#p295581 Suppressing the sun's shadows] (2024) by [[User:Another_commander|Another_commander]]&lt;br /&gt;
&lt;br /&gt;
=== Free textures ===&lt;br /&gt;
Eric Mayas has thousands of free textures here: https://soundimage.org/images-home-page/ (SciFi, metal, stone, vegetation ''etc''.)&lt;br /&gt;
&lt;br /&gt;
=== Models needing texturing ===&lt;br /&gt;
There are a number of half finished models which just need texturing! some of which can be found here: [[Brilliant but broken...]] - see specifically Gsagostinho's station experiments, but there are also a number of ships.&lt;br /&gt;
==== Ships ====&lt;br /&gt;
*[[GHOST Gunship|GHOST (ASAD) Gunship]]&lt;br /&gt;
==== Stations/Dockables ====&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=281398#p281398 Amaranth's Refinery Station] (2013) - originally part of a projected Corporate States oxp&lt;br /&gt;
*[[Colonization]], Okti (2012, CC BY-SA 3.0) - originally part of a projected activity/mission&lt;br /&gt;
*'''Gsagostinho's station experiments''' (&amp;quot;Public Domain&amp;quot;, 2017) [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18977 here].&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=11711 Oolific Princess] adds a dockable starliner, [[User:Simon_B|SimonB]], 2012&lt;br /&gt;
==== Other ====&lt;br /&gt;
There are also many untextured models here: https://www.solcommand.com/ including stations, ships, greebles, floating gas giant cities ''etc''.&lt;br /&gt;
&lt;br /&gt;
The other thing which would be great would be more moons (there are only 20 or so of them) and more planets with city lights added in!&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]] [[Category:Factual]] [[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Expansions_Manager&amp;diff=90081</id>
		<title>Expansions Manager</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Expansions_Manager&amp;diff=90081"/>
		<updated>2026-08-02T14:07:32Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Commented out the warning box (oolite.org being down)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Expansions Manager.png|right|thumb|500px|In-game Expansions Manager (Surround is from [[XenonUI]])]]&lt;br /&gt;
The Expansion Pack Manager was devised by [[User:Cim|Cim]] for Oolite v.1.80 (2014), and ushered in the move from [[OXP]]s to OXZs.&lt;br /&gt;
&lt;br /&gt;
== Expansion Packs and Catalog ==&lt;br /&gt;
&lt;br /&gt;
*Note that there are many Expansions (OXPs/OXZs) which are not listed in the Manager. See [[Guide to Unlisted OXPs]]&lt;br /&gt;
*Note that the Expansions Manager depends on ''this'' wiki - if this wiki is down (and you are - for example - looking at a backup of this page), you will need a [https://bb.oolite.space/viewtopic.php?p=273722#p273722 workaround].&lt;br /&gt;
&lt;br /&gt;
Oolite allows to be extended via Addons and [[OXP]]s. Expansion packs that are registered to the [https://github.com/OoliteProject/oolite-expansion-catalog Expansions Catalog] and it's [https://ooliteproject.github.io/oolite-expansion-catalog/index.html browsable version]&lt;br /&gt;
can be downloaded and installed automatically.&lt;br /&gt;
&lt;br /&gt;
== Using the builtin Expansion Pack Manager (EPM) ==&lt;br /&gt;
&lt;br /&gt;
This is about the expansion manager that is available within Oolite.&lt;br /&gt;
&lt;br /&gt;
'''The arrow keys &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;←&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;→&amp;lt;/font&amp;gt; skip between pages - and the arrow keys &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;↓&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;↑&amp;lt;/font&amp;gt; move up and down within a page.'''&lt;br /&gt;
&lt;br /&gt;
'''Press &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt; i &amp;lt;/font&amp;gt; for more information on your chosen expansion pack''': The URL for even more information is copied to your clipboard automatically when you do this (unless your computer runs Unix and you are playing Oolite v.1.90 or older). &lt;br /&gt;
&lt;br /&gt;
'''Press &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt; f &amp;lt;/font&amp;gt; to filter the selection of 700-odd listed expansion packs.''' (''eg'' Search for keyword, Search for author, list only uninstalled packs ''etc'')&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- This warning box has been commented out:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;background-color: #ffaaaa;padding: .6em 3em 1em;&amp;quot;|&lt;br /&gt;
&amp;lt;center&amp;gt;'''Important Note'''&amp;lt;/center&amp;gt;&lt;br /&gt;
Oolite.org is currently down. Try http://oolite.space/ instead. &lt;br /&gt;
&lt;br /&gt;
To rejig your in-game [[Expansions Manager]] to the new address, see [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21368 here] and a_c's following post.&lt;br /&gt;
&lt;br /&gt;
(''Cholmondeley 13:40, 29 March 2023 (BST)'')&lt;br /&gt;
&lt;br /&gt;
Or use Hiran's [[Oolite Starter]] instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
End of commented out box --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;background-color: #aabbbb;padding: .6em 3em 1em;&amp;quot;|&lt;br /&gt;
&amp;lt;center&amp;gt;'''Important Note'''&amp;lt;/center&amp;gt;&lt;br /&gt;
The current Windows Pre-releases/&amp;quot;nightlies&amp;quot; now allow you to directly skip to the OXP category (''eg'' .Ambience, Ships, Weapons ''etc''.), rather than scroll through dozens of pages to get there! &amp;lt;br&amp;gt;&lt;br /&gt;
They can be downloaded from the very bottom of the [https://oolite.space/#download Downloads page] or directly from GitHub, [https://github.com/OoliteProject/oolite/releases here].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:XenonUI (Expansions Manager).png|thumb|right|500px|The [[XenonUI]] OXP now provides all this information on your screen!&amp;lt;br&amp;gt;&lt;br /&gt;
On the left (Sub-Commands): filter/information/extract contents&amp;lt;br&amp;gt;&lt;br /&gt;
On the right: guide to colours]]&lt;br /&gt;
=== Guide to Expansions Manager list colours ===&lt;br /&gt;
:'''Yellow''' Ready to download and install.&lt;br /&gt;
:'''White''' Installed and at the current version.&lt;br /&gt;
&lt;br /&gt;
:'''Cyan''' Installed; updated pack available for download.&lt;br /&gt;
:'''Orange''' Ready to download, but Oolite will also download extra packs to make it work.&lt;br /&gt;
:'''Brown''' Conflicts with an already installed pack.&lt;br /&gt;
:'''Gray''' Incompatible with this version of Oolite.&lt;br /&gt;
&lt;br /&gt;
:'''Red''' Manually installed: cannot also be installed automatically (''eg''. a tweaked oxp in the AddOns folder)&lt;br /&gt;
:'''Blue''' Installed but no longer available for download.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Downloading and Unzipping an Expansion for Tweaking ===&lt;br /&gt;
&lt;br /&gt;
''or for extracting information - for example, [[User:Ramirez|Ramirez]]'s oxz's contain glorious .pdf's stashed full of information!''&lt;br /&gt;
&lt;br /&gt;
*Go to the '''Expansion Pack Manager''' in game.&lt;br /&gt;
*Select '''List installed expansion packs''' (the ''second'' choice at the bottom of the screen).&lt;br /&gt;
*It will now show you the list of OXZ files in your ManagedAddOns folder.&lt;br /&gt;
*Highlight the one you want to fiddle with and press &amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''x'''&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Oolite will then extract the OZX to your AddOns folder and add .off to the end of the expanded (was .oxz but is now .oxp) folder.&lt;br /&gt;
*Change this '''.off''' to '''.oxp''' or '''.txt''' and tweak away to your heart's delight!&lt;br /&gt;
&lt;br /&gt;
*Oolite will now ignore the original version and will run the newly-expanded OXP version in AddOns (with any changes you now make to it).&lt;br /&gt;
''If you make a mess of it, deleting the .oxp version (in the AddOns folder) will cause Oolite to go back to using the OXZ version (in the Managed AddOns folder).''&lt;br /&gt;
&lt;br /&gt;
== Out-game Expansions Manager (&amp;quot;Oolite Starter&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
[[File:Oolite Start v.0.1.7.png|right]]&lt;br /&gt;
&lt;br /&gt;
The [[Oolite Starter]] allows easy switching between bnuches of Oolite versions, OXPs and savegames. Mr. Gimlet guides novice users (and does not hold back advising experienced ones).&lt;br /&gt;
See v0.1.35 (Mar '26) at [https://github.com/OoliteProject/OoliteStarter this Github repository]. There are installers for Linux, Mac and Windows.&lt;br /&gt;
&lt;br /&gt;
'''Reference''': Thread with posts starts [https://bb.oolite.space/viewtopic.php?p=289311#p289311 here] (May 2023)&lt;br /&gt;
&lt;br /&gt;
== Tweaking OXPs ==&lt;br /&gt;
(''adapted from LittleBear's [https://bb.oolite.space/viewtopic.php?p=273769#p273769 BB post]'')&lt;br /&gt;
*The Windows text editor sneaks in invisible bits of code which muck up the OXPs: '''Avoid it like the plague!'''&lt;br /&gt;
*To edit I'd recommend Edit Pad Lite 8. It's free, won't mess up the file format and is colour coded (so will highlight code typos).&lt;br /&gt;
*''Eg''. If you have missed a ''',''' or a '''&amp;quot;''' in a text string, it will show up as ''white'' rather than ''yellow'', so you can quickly see the mistake. ;-)&lt;br /&gt;
&lt;br /&gt;
*Been a bit of a blessing when I've been C&amp;amp;Ping long lists of procedurally generated text from my latest.log to my array file.&lt;br /&gt;
&lt;br /&gt;
*See discussion [https://bb.oolite.space/viewtopic.php?p=273782#p273782 here] for AppleMac suggestions.&lt;br /&gt;
*See [[How to tweak OXZ's]] for more tweakish details.&lt;br /&gt;
&lt;br /&gt;
== Scenario OXP's ==&lt;br /&gt;
These OXP's create a scenario and force all other oxp's out of the game (unless you tweak the scenario to let one or two back in!). The only examples so far are the SOTL oxp's. There is an issue with the Expansions Manager:&lt;br /&gt;
 But ... one reason I didn't put SOTL in the manager is that [[SOTL Exploration]] depends on Loader, so if you install Exploration, you get the Loader OXP too (ie: Song_of_the_Labyrinth_Startup_1.1). Loader can't depend on Exploration, because if it did, Exploration won't load in the core scenario, and then Loader won't load because Exploration isn't there, and then you can't actually start the scenario game. But that means when you're installing from the manager, if you install Loader it can't then auto-install Exploration ... and then if you try to run Loader it'll probably go wrong with an entirely unhelpful error message.&lt;br /&gt;
 &lt;br /&gt;
 The manager ideally needs a new relationship type adding to handle that sort of &amp;quot;install-time but not run-time&amp;quot; dependency, but I never got round to that. (Cim 2021).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=273236#p273236 Expansion Manager Pack] Suggestions for change (2020).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=18077 copy information_url to clipboard] (2016-21).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=16888 User tags for expansions] (2014)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=16790 Are OXZ's an improvement ...] over OXP's (2014).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=16610 OXZ and balance] What should go on the Expansions Manager? (2014)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=210354#p210354 Cim's announcement] of the concept (2013)&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=20932 Oolite's interaction with Expansion Packs] (2021)&lt;br /&gt;
&lt;br /&gt;
=== Download Counter for oxp's ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=287386#p287386 Suggestions for fixing it] (2022)&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Factual]][[Category:Help pages]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90079</id>
		<title>Griff Industries</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Griff_Industries&amp;diff=90079"/>
		<updated>2026-08-02T13:49:36Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Griff's OXP Downloads */ Added more, tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
Griff has been working on producing some fantastic models of ships, which use normalmapping and shaders to produce some of the best looking ships available in Oolite. All core ships and stations are now supported, with the release on the 3rd of November 2012 of the Ico station. Announcements are made on the forum, so keep an eye on [https://bb.oolite.space/viewtopic.php?t=6586 this thread].&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| align=center width=100% style=&amp;quot;background: black;&amp;quot;&lt;br /&gt;
| [[Image:Griff_adder.jpg |link=Adder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_anaconda.jpg |link=Anaconda (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_asp_mk2.jpg |link=Asp (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_missile.jpg |link=Missile |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_asteroid.jpg|link=Asteroid_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boulder.jpg‎ |link=Boulder_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_splinters.jpg‎|link=Splinters_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_alloy.jpg‎ |link=Metal_Fragment_(Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_boa.jpg |link=Griff Boa |200px]]&lt;br /&gt;
| [[Image:Griff_boa_screenshot2.jpg  |link=Boa (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_boa_mk2.jpg |link=Boa 2 Class Cruiser |200px]]&lt;br /&gt;
| [[Image:Griff_barrel.jpg |link=Cargo Container (Oolite) |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_cobra_mk1.jpg |link=Cobra Mk.1 (Oolite) |200px]] &lt;br /&gt;
| [[Image:Griff_cobra_mk3.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_cobra_mk3_scuffed.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff cobra mk3 alt.jpg |link=Cobra Mk.3 (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_constrictor.jpg |link=Constrictor_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_coriolis_alt.jpg |link=Alternative Coriolis station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_ico.jpg  |link=Icosahedron_Station_(Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_dodo_thumbnail.jpg |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_fer-de-lance_blinged.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_fer-de-lance_scuffed.jpg |link=Fer-de-Lance (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko_sharkteeth.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_gecko.jpg |link=Gecko (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_krait.jpg |link=Krait (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff-krait.jpg |link=Griff Krait |200px]]&lt;br /&gt;
| [[Image:Griff_mamba.jpg |link=Mamba (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_moray.jpg |link=Moray Star Boat (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_python.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_python_alternative.jpg |link=Python (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Rock_Hermit.jpg  |link=Rock Hermit (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_escape_capsule.jpg |link=Escape Pod |200px]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_sidewinder.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_sidewinder_alternative.jpg |link=Sidewinder (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_shuttle.jpg |link=Shuttle (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_transporter.jpg |link=Transporter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_thargoid.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_thargoid_organic.jpg |link=Thargoid Warship (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_Thargon.png |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_tharglet_organic2.jpg |link=Thargoid Robot Fighter (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff_viper.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_viper_interceptor.jpg |link=Viper Interceptor |200px]]&lt;br /&gt;
| [[Image:Griff_viper_pursuit.jpg |link=Viper (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff_worm.jpg |link=Worm (Oolite) |200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Sainsboorys.png |link=Your Ad Here! |250px]]&lt;br /&gt;
| [[Image:Griff_dodo.png |link=Dodo station (Oolite) |200px]]&lt;br /&gt;
| [[Image:Griff Elite2 bug.jpg |Bug ship from an Elite 2 that didn't get made |200px]]&lt;br /&gt;
| [[Image:Griff_wolf_mkII.jpg |link=Wolf_Mk.2_(Oolite)|200px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griffhognose.jpg |link=Hognose |250px]]&lt;br /&gt;
| [[Image:Griff_viper_alt_wiki.jpg |link=Viper_(Oolite) |250px]]&lt;br /&gt;
| [[Image:Griff ophidian.jpg|link=Ophidian_(Classic) |250px]]&lt;br /&gt;
| [[Image:Griff elite2 griffin mk1.jpg|link=Griffin_Two_(Oolite) |250px]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Griff gnat.jpg |link=Classic_Elite_ships |250px]]&lt;br /&gt;
| [[Image:Griff Viper interceptor alt.jpg |link=Viper Interceptor |250px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Griff's Ship Sets ==&lt;br /&gt;
There are ''four'' sets of Griff ships!&lt;br /&gt;
*The Vanilla game ships in Oolite v.1.92 and later&lt;br /&gt;
:2026&lt;br /&gt;
:These are taken from the [[Oolite v1.88 Base Shipset Normal and Specular/Gloss Maps]] OXP&lt;br /&gt;
:They are simplified versions of the OXPs on the Expansions Manager but with normal, specular &amp;amp; gloss texture maps added - and using the new Oolite shaders system.&lt;br /&gt;
*The Vanilla game ships in Oolite v.1.90 and earlier&lt;br /&gt;
:2013&lt;br /&gt;
:These are simplified versions of Griff's OXPs on the Expansions Manager&lt;br /&gt;
*The OXPs on the Expansions Manager (excluding his specials such as Griff Clippers, Griff Prototype Boa, Griff's Glowroids ''etc''.)&lt;br /&gt;
:2013&lt;br /&gt;
:These do not have specular maps, but the ship models are more complex, and the textures and the shaders are ''much'' more complex. But they use the older Oolite shaders system.&lt;br /&gt;
:They also have special effects: more realistic exhausts, running lights and emergency lights (which dim when power is low), the Thargoids have special reflecting hulls, ''etc''.&lt;br /&gt;
*The unfinished SpecGloss series (only the SpecGloss Sidewinder is on the Expansions Manager - the other ships are on Box.com - see below).&lt;br /&gt;
:In Progress (2022 - date)&lt;br /&gt;
:These resemble Griff's OXPs but with much more detailed textures added - and adding in SpecGloss and Glowmaps. They also use the newer Oolite shaders system. See [https://drive.google.com/drive/folders/1_8EtoVvwNyXXvqe5GCGy1HuFRRw3NxB7?usp=sharing here] for downloads.&lt;br /&gt;
&lt;br /&gt;
== Griff's &amp;quot;Expansions Manager&amp;quot; Downloads ==&lt;br /&gt;
All these ships are available in the Oolite [[Expansions Manager|Expansion Pack Manager]].&lt;br /&gt;
&lt;br /&gt;
*'''Category:''' Retextures&lt;br /&gt;
*'''Griff Adder, Griff Alloys and Wreckage, Griff Anaconda, Griff Asp, Griff Asteroids, Griff Boa, Griff Boa MkII, Griff Cargopod, Griff Cobra MkI, Griff Cobra MkIII, Griff Cobra MkIII Alt, Griff Constrictor, Griff Escape Capsule, Griff Ferdelance, Griff Gecko, Griff Krait, Griff Mamba, Griff Mamba Alternative, Griff Missiles, Griff Moray, Griff Python, Griff Shuttle, Griff Sidewinder, Griff Station Bundle, Griff Thargoids, Griff Transporter, Griff Viper, Griff Worm&lt;br /&gt;
:These constitute the third set mentioned above.&lt;br /&gt;
&lt;br /&gt;
*'''Griff's Normalmapped Ships (Replace):'''&lt;br /&gt;
:This is a meta-OXP, downloading all the individual OXPs listed above&lt;br /&gt;
&lt;br /&gt;
*'''Note''': Spara's rebalanced bundle 'Meta-OXZ'. Available via the Oolite Expansion Pack manager, provides a single click install for all the Griff core shipset ships, bugfixed and rebalanced for better gameplay! This expansion pack is highly recommended over installing the shipset ships individually&lt;br /&gt;
&lt;br /&gt;
*Griff Shipset Decals - this OXP is for adding Decals to Griff's ships (and is needed by his OXPs). See [[Decal]] for more on this&lt;br /&gt;
&lt;br /&gt;
*Griff Clippers - Griffifies the Boa Clipper and Python Clipper from Smivs' earlier [[Clippers]] OXP&lt;br /&gt;
*[[Griff Boa|Griff Prototype Boa]] - the famous, utterly different &amp;quot;Griff Boa&amp;quot; - as below, under &amp;quot;Other OXPs&amp;quot;&lt;br /&gt;
*[[Griff's Glowroids]] - massive asteroids with a difference!&lt;br /&gt;
&lt;br /&gt;
[https://app.box.com/shared/rpkms25cc9 ''Griff Ship Downloads''] on Box.com&lt;br /&gt;
* '''Resources''' - ''Not needed for gameplay'' - this folder contains various ship meshes and textures in .obj and .png format for interested modders&lt;br /&gt;
&lt;br /&gt;
== Griff's Other OXPs ==&lt;br /&gt;
[http://www.box.com/shared/jf1et41yu3 ''Dodo Stations OXP by Griff and CaptKev''] (1.4Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Retextured Dodecahedron stations OXP, v1.1. Updated version released 18th May 2010, Griff has fixed a problem with the shaders.&lt;br /&gt;
&lt;br /&gt;
''[[Flying Dutchman OXP]]'' (31.0Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Wireframe Cobra.&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds the small chance to meet a Ghost Ship in the Ooniverse. What is it? Some claim that it's the ghost of Commander Peter Jameson, reported lost at the end of the last Thargoid War, others that it is simply a manifestation of all those lost souls who were trapped in the trackless depths of interstellar space. One common story is the trail of bad luck and hideous deaths that follow in the wake of the ship's sightings... &lt;br /&gt;
&lt;br /&gt;
[[Griff ArcElite|''Griff's ArcElite'']] (201.2 Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds all the ships from the Acorn Archimedes version of Elite, textured &amp;amp; shaded to resemble how they originally appeared in that version of the game.&lt;br /&gt;
Version 2.0 adds extra ships from Elite 'A', Elite 2 and the Amiga version of Elite&lt;br /&gt;
&lt;br /&gt;
[[Griff Boa|''Griff's Boa OXP'']] (2.7Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Wiki link containing the famous Griff Boa, as featured in the ''&amp;quot;Oolite - It's not just for triangles anymore&amp;quot;'' images. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; the Boa is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships OXP'' as above. Note also that this OXP only works on Oolite 1.74 and higher.&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/162d02b7e79b1202689c ''Griff's Alloys &amp;amp; Wreckage OXP''] (1.5mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Box.com link to an OXP for Oolite v1.75 and higher that adds a new models &amp;amp; texture for the 'Alloys'. The OXP also generates extra clouds of burning wreckage whenever ships explode. This OXP was updated on 24th March 2013 for more compatibility with the Griff Normalmapped Ships, Replacement version, and should be used in preference to the old ''Griff's Explosion Debris OXP''.&lt;br /&gt;
&lt;br /&gt;
[[Griff Krait|''Griff's Krait OXP'']] (2.5Mb).&amp;lt;br /&amp;gt;&lt;br /&gt;
A heavily modified Krait, similar in design to the Griff Boa. &amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; ''this'' Krait is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; included in the ''Normalmapped Ships  OXP'' as above.&lt;br /&gt;
&lt;br /&gt;
== Related OXPs by Other Authors ==&lt;br /&gt;
&lt;br /&gt;
[http://www.box.com/shared/t3n98yhk6n ''Illicit Unlock - Griff Version''] by ADCK (3.5Kb).&amp;lt;br /&amp;gt;&lt;br /&gt;
Based on the original Illicit Unlock, Allows the player to fly Griffs pirate/viper Ships. (Requires ''Griff's Normalmapped Ships'' ) &lt;br /&gt;
&lt;br /&gt;
Bugfixed and updated files for the oxp by Dertien (requires overwriting files in ADCK's original oxp) -  [http://www.box.com/shared/jq8biuf21o ''Download'']&lt;br /&gt;
&lt;br /&gt;
''[[Random Hits OXP]]''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring many Ships/Stations made by Griff.&lt;br /&gt;
&lt;br /&gt;
[[Your_Ad_Here!|''Your Ad Here! OXP'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Featuring Griff's Tradestations.&lt;br /&gt;
&lt;br /&gt;
[[Staer9%27s_Shipset|''Staer9's Shipset'']].&amp;lt;br /&amp;gt;&lt;br /&gt;
Adds more ships based on Griffs models.&lt;br /&gt;
&lt;br /&gt;
[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9306 ''ZGrOovy Griff System Stations OXP''] by Dertien (on the Oolite BB).&amp;lt;br /&amp;gt;&lt;br /&gt;
Using Griff's station textures, adds five new model stations, from the small Tetrahedron and Octahedrons, through the standard sized Coriolis, to the large Dodecahedron and Icosahedron stations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Black_Monk_Monastery|''Bank of the Black Monks'']] by LittleBear. Version 2.0 maintained by spara [https://bb.oolite.space/viewtopic.php?p=238880#p238880 ''See here for details''].&lt;br /&gt;
&lt;br /&gt;
== Lore ==&lt;br /&gt;
Added by [[The Assassins Guild OXP]]&lt;br /&gt;
&lt;br /&gt;
The [[Sector7/Ateslete|Ateslete]] system in galaxy 7 is reasonably noted for the ice-world, Stymphal. The well known robotics company, '''Griff Research Ltd''', operates factories over most of the planet and maintains an orbital research station near Stymphal.&lt;br /&gt;
&lt;br /&gt;
The company was originally founded to produce droids and other artificial life forms, enjoying much success winning the coveted “Which Droid?” award for a decade. Perhaps their most famous design was the [[Griff Robotic Cargo Loader|Robotic Cargo Loader]] which is still in service in all sectors. In recent years the company has diversified into building high specification ships and stations to order. Examples of their known designs include providing the Bank of the Black Monks of St Herod with a fearsome [[Black Monk Monastery|armed orbital platform]] and the [[Black Monk Gunship|Holy Avenger Mark II Tri-Laser Gunship]].&lt;br /&gt;
&lt;br /&gt;
The company's main ship design work is however highly classified, their most regular client being the [[Galactic Navy]]. Griff Research Ltd has constructed several Frigate Class vessels for the Navy, in addition to new types of weapons. No further details are available, although it is rumored that the Company is returning to its roots as a robotics company, in a current design brief. &lt;br /&gt;
&lt;br /&gt;
== Complete Catalogue of Griff's oeuvre (2006 - date) ==&lt;br /&gt;
See here: [[User:Griff/OXP Catalogue‎]] for an attempt at this (not fully formatted yet)&lt;br /&gt;
&lt;br /&gt;
{{Retextures-OXP}}&lt;br /&gt;
{{Ship-OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Griff Industries| ]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Interstellar_Tweaks&amp;diff=90075</id>
		<title>Interstellar Tweaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Interstellar_Tweaks&amp;diff=90075"/>
		<updated>2026-08-02T08:57:30Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Relation to other expansion packs */ Updated further&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Light Destroyer (Galactic Navy AddOns).png|thumb|300px|right|Interstellar Tweaks interacts intelligently with many other OXPs, adding depth to Oolite. Such as this [[Navy Light Destroyer]] from [[Galactic Navy Additions]] (''Not'' on the in-game Expansions Manager)]]&lt;br /&gt;
[[File:Genship.png|thumb|300px|right|Interstellar Tweaks adds rather more to interactions with the massive [[Generation Ships]]. The little blob on the upper right is an enormous Galactic Navy [[Behemoth]]! ]]&lt;br /&gt;
Rather more excitement in interstellar space!&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This OXP makes misjumps a little more likely and, fairly often, generates one of various (mostly) exciting witchspace scenarios.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* The expansion pack requires Oolite version ''1.82'' or above.&lt;br /&gt;
* The pack draws upon various other expansion packs, if they are installed. (See below.)&lt;br /&gt;
&lt;br /&gt;
==General notes==&lt;br /&gt;
&lt;br /&gt;
The scenarios at issue include, but are not limited to, the following things happening within interstellar space.&lt;br /&gt;
&lt;br /&gt;
* Encountering the navy battling thargoids (though some other OXPs provide something on those lines).&lt;br /&gt;
* Having your escape pod rescued. (Hooray! And your chances of rescue are increased by having - merely possessing - the 'electronic thumb'; a different OXP makes that equipment available.)&lt;br /&gt;
* Encountering bounty hunters. (Hooray?)&lt;br /&gt;
* Encountering pirates. (Boo?)&lt;br /&gt;
* Developing 'witchspace sickness'. (Definitely boo.)&lt;br /&gt;
* Ending up in a high radiation area, which can kill you whilst you are there but has no long-lasting effects. (So, mostly: boo.)&lt;br /&gt;
* Meeting rebel thargoids. (Hooray!)&lt;br /&gt;
* Finding derelicts within interstellar space.&lt;br /&gt;
&lt;br /&gt;
Also, though this is something that happens when one leaves witchspace: this OXP gives you a chance of ending up near - or, er, very near - the system's sun. (Er . . handy?)&lt;br /&gt;
&lt;br /&gt;
==Relation to other expansion packs==&lt;br /&gt;
&lt;br /&gt;
'''OXPs which Interstellar Tweaks enhances/uses'''&lt;br /&gt;
&lt;br /&gt;
Interstellar Tweaks can draw upon all of the following (and indeed, but in a fairly trivial way, a few that I do not list here) - but it ''requires'' none of them. Most but not all of the packs are available via the in-game Expansions Manager. (The remainder will have to be downloaded and installed manually. The in-game expansions manager will suggest - as accompaniments to Interstellar Tweaks - only those packs that are available via that manager.)&lt;br /&gt;
&lt;br /&gt;
:* [[Armoury]]&lt;br /&gt;
:* [[Behemoth]]&lt;br /&gt;
:* [[Breakable 'Standard' Equipment OXPs|Breakable WitchDrive]]&lt;br /&gt;
:* [[BGS]]&lt;br /&gt;
:* [[Escape Pod Locator OXP]]&lt;br /&gt;
:* [[Extra Thargoids]]&lt;br /&gt;
:* [[Fer-de-Lance 3G OXP]]&lt;br /&gt;
:* [[Fuel Collector OXP]]&lt;br /&gt;
:* [[Galactic Navy]] - not on Expansions Manager - see [[Galactic Navy OXP]] for download details - there are several variants and GN addons to choose from&lt;br /&gt;
:* [[Generation Ships OXP]]&lt;br /&gt;
:* [[User:Griff|Griff's]] shipset expansion packs (for, especially, nice looking thargoids!)&lt;br /&gt;
:* [[Interstellar help OXP]] - with its 'Electronic Thumb' &lt;br /&gt;
:* [[Military Fiasco]]&lt;br /&gt;
:* [[Misjump Analyser]]&lt;br /&gt;
:* [[Missionaries OXP]]&lt;br /&gt;
:* mPakRedux (a.k.a. 'Rusties') - not on Expansions Manager - see [[Second-hand ships]] for download details&lt;br /&gt;
:* [[Staer9 Spectre]] - not on Expansions Manager&lt;br /&gt;
:* [[TCAT OXP|To Catch a Thargoid]]&lt;br /&gt;
:* [[Thargoid Carrier]] - not on Expansions Manager (this will considerably increase the thargoid threat - though the Fer-de-Lance 3G OXP will somewhat offset that);&lt;br /&gt;
:* [[Thargorn Threat]]&lt;br /&gt;
:* [[Tionisla Orbital Graveyard]] together with its 'TOGY_Shipwreck pack'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compatibility'''&lt;br /&gt;
&lt;br /&gt;
Interstellar tweaks tries to be compatible with the following expansion packs.&lt;br /&gt;
&lt;br /&gt;
* [[Thargoid Witchspace Drive]] - not on Expansions Manager&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9242 Wormhole drones]  - not on Expansions Manager&lt;br /&gt;
* [[Galactic Misjump OXP]] - not on Expansions Manager&lt;br /&gt;
* [[Her Imperial Majesty's Space Navy]] (at least up to a point)&lt;br /&gt;
&lt;br /&gt;
==Other points==&lt;br /&gt;
* The load that Interstellar Tweaks will place on your computer will be, for the most part, light to moderate (and, mostly, via CPU much more than RAM and graphics card). That is so especially for Interstellar Tweaks version ≥ 7.5. Yet, if you install many expansion packs with which Interstellar Tweaks can interact, then that will increase the load. &lt;br /&gt;
&lt;br /&gt;
* The difficulty of this expansion pack varies automatically, in various ways, with the player's [[Elite Rating]].&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
This expansion pack is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. &lt;br /&gt;
&lt;br /&gt;
You are free:&lt;br /&gt;
* to copy, distribute, display, and perform the work;&lt;br /&gt;
* to make derivative works. &lt;br /&gt;
&lt;br /&gt;
But only under the following conditions.&lt;br /&gt;
* Attribution: you must give the original author credit. &lt;br /&gt;
* Non-commercial use: you may not use this work for commercial purposes. &lt;br /&gt;
* Share Alike: if you alter, transform, or build upon this work, you may distribute the resulting work only under a license materially identical to this one. &lt;br /&gt;
&lt;br /&gt;
Your fair use right and other rights are in no way affected by the above.&lt;br /&gt;
&lt;br /&gt;
==Acknowledgements==&lt;br /&gt;
&lt;br /&gt;
My thanks to the following (from some of whom I have adapted code):&lt;br /&gt;
&lt;br /&gt;
*Another Commander&lt;br /&gt;
*Arexack Heretic&lt;br /&gt;
*Capt. Murphy&lt;br /&gt;
*cim&lt;br /&gt;
*Commander McLane&lt;br /&gt;
*Draco Caeles&lt;br /&gt;
*Duggan&lt;br /&gt;
*Dr Nil and other contributors to the 'Your Ad Here' expansion pack&lt;br /&gt;
*Eric Walch&lt;br /&gt;
*Gimi&lt;br /&gt;
*Norby&lt;br /&gt;
*phkb&lt;br /&gt;
*SirAdrian&lt;br /&gt;
*Thargoid&lt;br /&gt;
*Solonar&lt;br /&gt;
*Switeck&lt;br /&gt;
&lt;br /&gt;
Thanks also to Cholmondely, our indefatigable archivist.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
*Downloadable through the in-game [[Expansions Manager]]&lt;br /&gt;
&lt;br /&gt;
*Or here: [[File:Oolite.oxp.UK_Eliter.InterstellarTweaks.oxz]]&lt;br /&gt;
*Rather older downloads are here: [[File:InterstellarTweaks.oxz]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Infobox OXPb| title = Interstellar Tweaks&lt;br /&gt;
|version = 1.82&lt;br /&gt;
|release = 6.67&lt;br /&gt;
|license = CC BY-NC-SA 3.0&lt;br /&gt;
|features = surprises!&lt;br /&gt;
|category = Mechanics OXPs&lt;br /&gt;
|author = [[User:Uk Eliter|Uk Eliter]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=11864 BB Thread]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Interstellar_Tweaks&amp;diff=90074</id>
		<title>Interstellar Tweaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Interstellar_Tweaks&amp;diff=90074"/>
		<updated>2026-08-02T08:07:06Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added some pretty pictures - and some tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Light Destroyer (Galactic Navy AddOns).png|thumb|300px|right|Interstellar Tweaks interacts intelligently with many other OXPs, adding depth to Oolite. Such as this [[Navy Light Destroyer]] from [[Galactic Navy Additions]] (''Not'' on the in-game Expansions Manager)]]&lt;br /&gt;
[[File:Genship.png|thumb|300px|right|Interstellar Tweaks adds rather more to interactions with the massive [[Generation Ships]]. The little blob on the upper right is an enormous Galactic Navy [[Behemoth]]! ]]&lt;br /&gt;
Rather more excitement in interstellar space!&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This OXP makes misjumps a little more likely and, fairly often, generates one of various (mostly) exciting witchspace scenarios.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* The expansion pack requires Oolite version ''1.82'' or above.&lt;br /&gt;
* The pack draws upon various other expansion packs, if they are installed. (See below.)&lt;br /&gt;
&lt;br /&gt;
==General notes==&lt;br /&gt;
&lt;br /&gt;
The scenarios at issue include, but are not limited to, the following things happening within interstellar space.&lt;br /&gt;
&lt;br /&gt;
* Encountering the navy battling thargoids (though some other OXPs provide something on those lines).&lt;br /&gt;
* Having your escape pod rescued. (Hooray! And your chances of rescue are increased by having - merely possessing - the 'electronic thumb'; a different OXP makes that equipment available.)&lt;br /&gt;
* Encountering bounty hunters. (Hooray?)&lt;br /&gt;
* Encountering pirates. (Boo?)&lt;br /&gt;
* Developing 'witchspace sickness'. (Definitely boo.)&lt;br /&gt;
* Ending up in a high radiation area, which can kill you whilst you are there but has no long-lasting effects. (So, mostly: boo.)&lt;br /&gt;
* Meeting rebel thargoids. (Hooray!)&lt;br /&gt;
* Finding derelicts within interstellar space.&lt;br /&gt;
&lt;br /&gt;
Also, though this is something that happens when one leaves witchspace: this OXP gives you a chance of ending up near - or, er, very near - the system's sun. (Er . . handy?)&lt;br /&gt;
&lt;br /&gt;
==Relation to other expansion packs==&lt;br /&gt;
&lt;br /&gt;
'''OXPs which Interstellar Tweaks enhances'''&lt;br /&gt;
&lt;br /&gt;
Interstellar Tweaks can draw upon all of the following (and indeed, but in a fairly trivial way, a few that I do not list here) - but it ''requires'' none of them. Most but not all of the packs are available via the in-game Expansions Manager. (The remainder will have to be downloaded and installed manually. The in-game expansions manager will suggest - as accompaniments to Interstellar Tweaks - only those packs that are available via that manager.)&lt;br /&gt;
&lt;br /&gt;
:* [[Armoury]]&lt;br /&gt;
:* [[Behemoth]]&lt;br /&gt;
:* [[Breakable 'Standard' Equipment OXPs|Breakable WitchDrive]]&lt;br /&gt;
:* [[BGS]]&lt;br /&gt;
:* [[Escape Pod Locator OXP]]&lt;br /&gt;
:* [[Extra Thargoids]]&lt;br /&gt;
:* [[Fer-de-Lance 3G OXP]]&lt;br /&gt;
:* [[Fuel Collector OXP]]&lt;br /&gt;
:* [[Galactic Navy]] - not on Expansions Manager - see [[Galactic Navy OXP]] for download details - there are several variants and GN addons to choose from&lt;br /&gt;
:* [[Generation Ships OXP]]; &lt;br /&gt;
:* [[User:Griff|Griff's]] shipset expansion packs (for, especially, nice looking thargoids!) - for those using older versions of Oolite&lt;br /&gt;
:* [[Interstellar help OXP]] - with its 'Electronic Thumb' &lt;br /&gt;
:* [[Military Fiasco]]&lt;br /&gt;
:* [[Misjump Analyser]]&lt;br /&gt;
:* [[Missionaries OXP]]&lt;br /&gt;
:* mPakRedux (a.k.a. 'Rusties') - not on Expansions Manager - see [[Second-hand ships]] for download details&lt;br /&gt;
:* [[Staer9 Spectre]]&lt;br /&gt;
:* [[TCAT OXP|To Catch a Thargoid]]&lt;br /&gt;
:* [[Thargoid Carrier]] (this will considerably increase the thargoid threat - though my Fer-de-Lance 3G expansion pack will offset that increase somewhat);&lt;br /&gt;
:* [[Thargorn Threat]]&lt;br /&gt;
:* [[Tionisla Orbital Graveyard]] together with its 'TOGY_Shipwreck pack'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compatibility'''&lt;br /&gt;
&lt;br /&gt;
Interstellar tweaks tries to be compatible with the following expansion packs.&lt;br /&gt;
&lt;br /&gt;
* [[Thargoid_Witchspace_Drive]]&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9242 Wormhole drones]  - not on Expansions Manager&lt;br /&gt;
* [[Galactic Misjump OXP]] - not on Expansions Manager&lt;br /&gt;
* [[Her Imperial Majesty's Space Navy]] (at least up to a point)&lt;br /&gt;
&lt;br /&gt;
==Other points==&lt;br /&gt;
* The load that Interstellar Tweaks will place on your computer will be, for the most part, light to moderate (and, mostly, via CPU much more than RAM and graphics card). That is so especially for Interstellar Tweaks version ≥ 7.5. Yet, if you install many expansion packs with which Interstellar Tweaks can interact, then that will increase the load. &lt;br /&gt;
&lt;br /&gt;
* The difficulty of this expansion pack varies automatically, in various ways, with the player's [[Elite Rating]].&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
This expansion pack is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. &lt;br /&gt;
&lt;br /&gt;
You are free:&lt;br /&gt;
* to copy, distribute, display, and perform the work;&lt;br /&gt;
* to make derivative works. &lt;br /&gt;
&lt;br /&gt;
But only under the following conditions.&lt;br /&gt;
* Attribution: you must give the original author credit. &lt;br /&gt;
* Non-commercial use: you may not use this work for commercial purposes. &lt;br /&gt;
* Share Alike: if you alter, transform, or build upon this work, you may distribute the resulting work only under a license materially identical to this one. &lt;br /&gt;
&lt;br /&gt;
Your fair use right and other rights are in no way affected by the above.&lt;br /&gt;
&lt;br /&gt;
==Acknowledgements==&lt;br /&gt;
&lt;br /&gt;
My thanks to the following (from some of whom I have adapted code):&lt;br /&gt;
&lt;br /&gt;
*Another Commander&lt;br /&gt;
*Arexack Heretic&lt;br /&gt;
*Capt. Murphy&lt;br /&gt;
*cim&lt;br /&gt;
*Commander McLane&lt;br /&gt;
*Draco Caeles&lt;br /&gt;
*Duggan&lt;br /&gt;
*Dr Nil and other contributors to the 'Your Ad Here' expansion pack&lt;br /&gt;
*Eric Walch&lt;br /&gt;
*Gimi&lt;br /&gt;
*Norby&lt;br /&gt;
*phkb&lt;br /&gt;
*SirAdrian&lt;br /&gt;
*Thargoid&lt;br /&gt;
*Solonar&lt;br /&gt;
*Switeck&lt;br /&gt;
&lt;br /&gt;
Thanks also to Cholmondely, our indefatigable archivist.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
*Downloadable through the in-game [[Expansions Manager]]&lt;br /&gt;
&lt;br /&gt;
*Or here: [[File:Oolite.oxp.UK_Eliter.InterstellarTweaks.oxz]]&lt;br /&gt;
*Rather older downloads are here: [[File:InterstellarTweaks.oxz]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Infobox OXPb| title = Interstellar Tweaks&lt;br /&gt;
|version = 1.82&lt;br /&gt;
|release = 6.67&lt;br /&gt;
|license = CC BY-NC-SA 3.0&lt;br /&gt;
|features = surprises!&lt;br /&gt;
|category = Mechanics OXPs&lt;br /&gt;
|author = [[User:Uk Eliter|Uk Eliter]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=11864 BB Thread]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Risky_Business&amp;diff=90073</id>
		<title>Risky Business</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Risky_Business&amp;diff=90073"/>
		<updated>2026-08-02T07:13:31Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added a little more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:IconLib.png|right]]&lt;br /&gt;
Improves profits in pirate-ridden systems&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Risky Business aims to make Multi-Gov, Feudal and Anarchy systems more rewarding for traders, by tweaking prices on a few goods. Goods that are already over the average could be increased. Goods that are below the average could be reduced. Not all goods will be impacted at all locations. &lt;br /&gt;
&lt;br /&gt;
== Detail ==&lt;br /&gt;
RB doesn't look at the local systems so much as just assuming a dangerous system (ie. Anarchy, Feudal, Multi-Gov) will have some high-demand commodities. It will randomly pick a couple of commodities that are already above or below average and basically make them more so. So you might occasionally find computers for sale at well over the galactic average, or furs for well under. So computers in [[Sector1/Ararus|Ararus]] might sell for 120₢/TC.&lt;br /&gt;
&lt;br /&gt;
This contrasts with Cim's [[Risk Based Economy OXP]] which also tweaks the markets, but instead &amp;quot;adjusts prices according to trade volume - so safer systems have more 'centred' prices, and hub systems have more 'centred' prices.&amp;quot; It looks at how safe/dangerous a system is, based on the type of local systems surround it, and moves prices accordingly. R-BE's focus is on the market as a whole, rather than extreme pricing for just one or two commodities.&lt;br /&gt;
&lt;br /&gt;
This also contrasts, more markedly, with [[Real-Life Economics]] which is based on the assumption that traders would ignore the piracy and restore pricing equilibrium where extreme economic systems were close (eliminating the better [[Milkrun|milk-runs]]).&lt;br /&gt;
&lt;br /&gt;
== Two oxp's for the price of one! ==&lt;br /&gt;
=== Risk-based economy: choose with Library Config ===&lt;br /&gt;
The current version also incorporates Cim's [[Risk Based Economy OXP]].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Risk-based economy&amp;quot; not only considers the politics of the system but also the hub-ishness of it (how many other trading systems are in the region), ''and'' affects prices in a more global fashion.&lt;br /&gt;
&lt;br /&gt;
You can choose to implement the one, the other or both through selecting Library oxp's ''Config for AddOns'' on the [[F4 screen (ship and system interfaces)]]. &lt;br /&gt;
&lt;br /&gt;
[[File:Supply &amp;amp; demand.png|right|320px]]&lt;br /&gt;
== License ==&lt;br /&gt;
*Author: Phkb&lt;br /&gt;
*License: CC-BY-SA-NC 4.0&lt;br /&gt;
*Version: 0.2&lt;br /&gt;
*Requires: Oolite v.1.81 or newer, [[Library OXP|Library]], [[Market Script Interface]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
*Downloadable through the in-game [[Expansions Manager]] &lt;br /&gt;
:or manually:&lt;br /&gt;
*[[Media:RiskyBusiness.oxz|RiskyBusiness.oxz]]&lt;br /&gt;
:Download, unzip and pop into your AddOns folder (see [[OXP]] if you need more detail).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Discussion can be found here: [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;p=271089 BB Link].&lt;br /&gt;
*Author: [[User:Phkb|Phkb]]&lt;br /&gt;
*[[Economics]]&lt;br /&gt;
*[[Oolite Trading]]&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance Indicator ==&lt;br /&gt;
[[File:Tag-colour-blue.png|right]]&lt;br /&gt;
Better rewards for dangerous trading.&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Quarantine&amp;diff=90065</id>
		<title>Quarantine</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Quarantine&amp;diff=90065"/>
		<updated>2026-07-30T23:40:36Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Note */ Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GalCop Missions GNN Quarantine.png|right|600px]]&lt;br /&gt;
[[File:GalCop Missions Docked Quarantine.png|right|600px]]&lt;br /&gt;
Some OXPs can put systems into quarantine.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Outbreaks of plague can cause GalCop or the system itself to place the system into Quarantine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The OXPs known to describe/enable this are [[GNN]], [[GalCop Missions]] and [[Rescue Stations|Rescue Stations/RSS]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The information can also be independently broadcast by the GalCop Missions and RSS through [[GNN]] - and also be placed on the [[F7 screen (data on &amp;quot;system&amp;quot;)]]. &lt;br /&gt;
&lt;br /&gt;
There can also be viewscreen messages with this information. Eg.: Warning. Isanlequian disease infection rates are high. Please remain within designated visitor areas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entry to such a system can result in [[Law|criminalisation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Terminology ===&lt;br /&gt;
*The '''Galactic Centre for Disease Control''' is created by GalCop Missions&lt;br /&gt;
*'''GalMed''' is created by Rescue Stations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Note ===&lt;br /&gt;
[[User:Phkb|Phkb's]] April 2026 version of GalCop Missions enhances all the various OXPs which impact on &amp;quot;Quarantine&amp;quot; and creates a logical relationship between them all.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Misjump&amp;diff=90060</id>
		<title>Misjump</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Misjump&amp;diff=90060"/>
		<updated>2026-07-30T10:38:02Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added &amp;quot;Drive malfunctions&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Misjump (BGS new).png|thumb|right|300px|Sequence for misjump: [[BGS]] (new version)]]&lt;br /&gt;
== Misjumps ==&lt;br /&gt;
These usually happen as a result of poor maintenance. One is marooned in interstellar space or witchspace, often surrounded by Thargoids! This can prove to be lethal. &lt;br /&gt;
&lt;br /&gt;
There ''might'' be enough fuel left in the tank to escape to the nearest system, but that is not a given. Sometimes it might be possible to use another's witchspace tunnel to escape.&lt;br /&gt;
&lt;br /&gt;
There are a large number of oxp's which modify all this.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
*WitchSpace/[[Hyperspace]]&lt;br /&gt;
*[[Thargoids]]&lt;br /&gt;
*[[Dealing with Thargoids]]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=11&amp;amp;t=9649 Derelict] by Ganelon - fiction&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=11&amp;amp;t=13049 An Ideal Victim!] by Cody - fiction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''OXP's'''&lt;br /&gt;
[[File:Wide-screen-hud-3.png|right|thumb|480px|Wide-Screen HUD's &amp;quot;Jump Stability Meter&amp;quot; on the far left]]&lt;br /&gt;
*[[Enhanced Misjump OXP]] enhances the tunnel for the witchspace misjump (2011 - before BGS below) - this one is ''very'' clever&lt;br /&gt;
*[[BGS]] oxp gives an enhanced tunnel for the witchspace jump - which alters when you misjump (see above for the newest BGS version - the older version is different)&lt;br /&gt;
*[[Galactic Misjump OXP]] - this OXP is a mere &amp;quot;proof of concept&amp;quot;&lt;br /&gt;
*[[Interstellar Tweaks]] - a much wider range of encounters/adventures (needs supplementary OXP's too)&lt;br /&gt;
*[[Wide-Screen HUD]] includes a &amp;quot;Jump Stability Meter&amp;quot; which appears during countdown.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;'''OXP's which help!'''&lt;br /&gt;
*[[Fuel Collector OXP]] - collect fuel (very slowly!)&lt;br /&gt;
*[[Fuel Tank]] - with links to 3 alternative OXP's&lt;br /&gt;
*[[Galactic Navy OXP]] - allies against the Thargoids (and can maybe hitch a lift or buy fuel).&lt;br /&gt;
*[[Interstellar help OXP]] - buy an electronic thumb!&lt;br /&gt;
*[[Misjump Analyser]] OXP&lt;br /&gt;
*[[Wormhole restoration OXP]] - defeat the Thargoids to reopen your wormhole&lt;br /&gt;
&lt;br /&gt;
== Force Misjump ==&lt;br /&gt;
'''Don't''' do this unless you are either experienced or feeling suicidal!&lt;br /&gt;
&lt;br /&gt;
The way to force mis-jump may follow thus: &lt;br /&gt;
&lt;br /&gt;
 1. Pick target system&lt;br /&gt;
 2. Exit station&lt;br /&gt;
 3. Get far enough away to jump&lt;br /&gt;
 4. Initiate hyper-space countdown&lt;br /&gt;
 5. Hold down the ''up arrow'' or the ''down arrow'' key (this may vary depending on your computer! - and you need ''maximum'' pitch when the count reaches 0 - and a joystick might not manage perfect maximum)&lt;br /&gt;
 6. Finish countdown&lt;br /&gt;
 7. Blast those bugs!&lt;br /&gt;
&lt;br /&gt;
If this does not work, you may either need to update [[Oolite]] or simply play normally.&lt;br /&gt;
&lt;br /&gt;
== Drive malfunctions ==&lt;br /&gt;
&amp;quot;Drive malfunction - missed witchpoint!&amp;quot; - this is caused by [[Interstellar Tweaks]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
*[[Misjump Inducer]] OXP&lt;br /&gt;
*[[User:Switeck|Variable Jump Drive OXP]] - &amp;quot;misjump&amp;quot; 11% of the way to the next system - or 73% of the way...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=7917 Debate on use of fuel and time] (2010)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=13729 Thread with useful advice] (2013)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=17152 Misjumpier] (2015) What else might happen?&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=18365 Thargoids in interstellar space and deliberate misjumps] (2016) Why are they ''always'' there - and how many of them are there?&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=261936#p261936 a_c on perfecting your misjumps!] (2018)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21345 How to cross VOIDS in Oolite!] (2022)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Black_Market&amp;diff=90059</id>
		<title>Black Market</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Black_Market&amp;diff=90059"/>
		<updated>2026-07-28T23:45:49Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added pretty picture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Rock Hermit Locations.png|right|600px]]&lt;br /&gt;
Adds black markets to most Rock Hermits and some other stations.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
When docked at most non-GalCop stations (Rock Hermits, predominantly), and even GalCop stations in some systems, you will find a new interface screen called &amp;quot;Black Market&amp;quot;. This interface provides access to a number of options:&amp;lt;br/&amp;gt;&lt;br /&gt;
a. Noticeboard: View some of the messages from the black market news boards. Some are good, some aren't. You might even learn about some tasty abandoned cargo!&amp;lt;br/&amp;gt;&lt;br /&gt;
b. Smuggling contracts: These contracts will be smaller cargo quantities (less than 20t), and they will all be illegal at the destination system, so there will be a high degree of risk with each one. However, the rewards will be substantial, more than double what the cargo would be worth at the destination. ([[Smugglers - The Galactic Underworld|Smugglers OXP]] required)&amp;lt;br/&amp;gt;&lt;br /&gt;
c. Purchase fake import permits: You can purchase fake import permits that may or may not work at the destination system. The chance is only a slightly better than 50%. ([[Smugglers - The Galactic Underworld|Smugglers OXP]] required)&amp;lt;br/&amp;gt;&lt;br /&gt;
d. Purchase Rock Hermit waypoints: Finding Rock Hermits is important, as they are the primary location to access the Black Market. Waypoints can help you find a Rock Hermit in a given system.&amp;lt;br/&amp;gt;&lt;br /&gt;
e. Purchase phase scan settings: Not always available but occasionally a trader will offer their settings for a price. ([[Smugglers - The Galactic Underworld|Smugglers OXP]] required)&amp;lt;br/&amp;gt;&lt;br /&gt;
f. Sell phase scan settings: If you have discovered a phase scan setting, you can sell it for some real coin! This will only be available once you have purchased a phase scanner. ([[Smugglers - The Galactic Underworld|Smugglers OXP]] required)&amp;lt;br/&amp;gt;&lt;br /&gt;
g. Sell restricted equipment: If you've come into possession of some military grade equipment, you can potentially find a buyer on the black market.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please be aware that GalCop have been known to run sting operations at some Black Markets. If you are caught buying illegal information or goods through a Black Market while a sting operation is in place, you will be penalised.&lt;br /&gt;
&lt;br /&gt;
==3rd Party Access To Black Market==&lt;br /&gt;
===Selling Custom Items===&lt;br /&gt;
It's possible for other OXP's to add items to be sold on the Black Market. You can add your item using the following method:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$addSaleItem({&lt;br /&gt;
            key:&amp;quot;my_key_value&amp;quot;,                 // reference to be passed back to your worldscript when the item is sold, so you can know which item it was&lt;br /&gt;
            text:&amp;quot;A very exclusive item&amp;quot;,       // text to display on the sale screen&lt;br /&gt;
            cost:1000,                          // the base cost of the item. a system factor will be applied to this value, either increasing or decreasing it&lt;br /&gt;
            worldScript:&amp;quot;my_worldscript_name&amp;quot;,  // the name of your worldscript&lt;br /&gt;
            sellCallback:&amp;quot;$my_functionname&amp;quot;,    // the name of the function to be called in the item is sold&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
    this.$my_functionname = function(key, price) {&lt;br /&gt;
        // this is the function that will be called. the key name and the price are two parameters of the function&lt;br /&gt;
        // you can now do any additional functions that need to be done (eg removing special equipment or cargo)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Items added to the Black Market will stay there until the next witchspace jump. If you want to remove the item manually, you can use this function:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$removeSaleItem(key);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
You can also remove all sale items for your worldScript with this function:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$removeWorldScriptItems(ws);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
===Purchase Custom Items===&lt;br /&gt;
It's possible for other OXP's to add items to be purchased on the Black Market. You can add your item using the following method:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$addPurchaseItem({&lt;br /&gt;
            key:&amp;quot;my_key_value&amp;quot;,                 // reference to be passed back to your worldscript when the item is bough, so you can know which item it was&lt;br /&gt;
            text:&amp;quot;A very exclusive item&amp;quot;,       // text to display on the sale screen&lt;br /&gt;
            cost:1000,                          // the base cost of the item. a system factor will be applied to this value, either increasing or decreasing it&lt;br /&gt;
            worldScript:&amp;quot;my_worldscript_name&amp;quot;,  // the name of your worldscript&lt;br /&gt;
            purchaseCallback:&amp;quot;$my_functionname&amp;quot;,// the name of the function to be called in the item is bought&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
    this.$my_functionname = function(key, price) {&lt;br /&gt;
        // this is the function that will be called. the key name and the price are two parameters of the function&lt;br /&gt;
        // you can now do any additional functions that need to be done (eg adding special equipment or cargo)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Items added to the Black Market will stay there until the next witchspace jump. If you want to remove the item manually, you can use this function:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$removePurchaseItem(key);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
You can also remove all purchase items for your worldScript with this function:&lt;br /&gt;
&lt;br /&gt;
    var sbm = worldScripts.Smugglers_BlackMarket;&lt;br /&gt;
    if (sbm) {&lt;br /&gt;
        sbm.$removePurchaseWorldScriptItems(ws);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
==Developer Note==&lt;br /&gt;
This OXP used to reside inside the [[Smugglers - The Galactic Underworld|Smugglers OXP]], and so a lot of the code and descriptions are related to that OXP. However, I had the need of a Black Market for another project, and rather than force players to install Smugglers (which has a big impact on gameplay), I split out the functionality into a separate pack.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Download [[Media:BlackMarket_1.7.oxz|BlackMarket_1.7.oxz]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
&lt;br /&gt;
Skull and crossbones image from http://simpleicon.com/dangerous_sign.html.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
1.7&lt;br /&gt;
* Added Pirate Coves to list of RH's that will have a Black Market.&lt;br /&gt;
* Black Market Info Booklet now only purchasable through the Black Market.&lt;br /&gt;
* Added new section on Black Market: &amp;quot;Buy Other Items&amp;quot;, with associated API calls.&lt;br /&gt;
* Added the buy/sell sound effects when buying/selling items.&lt;br /&gt;
* Switched to using logcontrol for debug messages.&lt;br /&gt;
&lt;br /&gt;
1.6&lt;br /&gt;
* Added Black Market Info Booklet to Ship's Library (if installed).&lt;br /&gt;
&lt;br /&gt;
1.5&lt;br /&gt;
* Darkened overlay images for better compatibility with Oolite 1.92.&lt;br /&gt;
&lt;br /&gt;
1.4&lt;br /&gt;
* Moved all text into descriptions.plist for easier localisation.&lt;br /&gt;
&lt;br /&gt;
1.3&lt;br /&gt;
* Added sound when a fuel leak occurs.&lt;br /&gt;
&lt;br /&gt;
1.2&lt;br /&gt;
* Added missing noticeboard items to descriptions.plist.&lt;br /&gt;
* Small code improvements.&lt;br /&gt;
&lt;br /&gt;
1.1&lt;br /&gt;
* Fixed issue that was displaying &amp;quot;You have a waypoint to a Rock Hermit in this system&amp;quot; on th F7 page for every system.&lt;br /&gt;
&lt;br /&gt;
1.0&lt;br /&gt;
* Initial release&lt;br /&gt;
&lt;br /&gt;
==Quick Facts==&lt;br /&gt;
{{OXPLevel|0}}{{IconOXP|ooVersion=&amp;quot;1.80&amp;quot;|oxpCPU=&amp;quot;Low&amp;quot;|oxpMEM=&amp;quot;Low&amp;quot;|oxpGPU=&amp;quot;Low&amp;quot;|oxpIsAPI=true|oxpIsDocumented=true}}&lt;br /&gt;
{{Infobox OXPb| title = BlackMarket.oxz&lt;br /&gt;
|version = 1.7&lt;br /&gt;
|release = 2026-05-10&lt;br /&gt;
|license = CC BY-NC-SA 4.0&lt;br /&gt;
|features = Rock Hermits&lt;br /&gt;
|category = Mechanics OXPs‏‎&lt;br /&gt;
|author = [[User:phkb|phkb]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17723 Oolite BB]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Rock_Hermit_Locations.png&amp;diff=90058</id>
		<title>File:Rock Hermit Locations.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Rock_Hermit_Locations.png&amp;diff=90058"/>
		<updated>2026-07-28T23:44:03Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Another crummy Cholmondeley Screen Shot

From Black Market OXP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Another crummy Cholmondeley Screen Shot&lt;br /&gt;
&lt;br /&gt;
From Black Market OXP&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=OXP_howto&amp;diff=90057</id>
		<title>OXP howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=OXP_howto&amp;diff=90057"/>
		<updated>2026-07-28T13:49:10Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added links specifically for OXP categories (Ships, HUDs, Missions, etc).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''Shortcut: EW:OXP and EW:HOWDS redirect here''&amp;lt;/br&amp;gt;&lt;br /&gt;
[[Image:oolite-oxp-icon.png|100px|thumb|right|OXP icon]]&lt;br /&gt;
[[File:Oolite-debug-menu.png|thumb|right|Debug Menu  (From the AppleMac variety of the &amp;quot;Oolite TR&amp;quot; version)]]&lt;br /&gt;
==Overview==&lt;br /&gt;
An '''Oolite Expansion Pack''' can cause many big changes or additions to Oolite's gameplay, or it may represent just a small, subtle alteration. By first appearances, there is no way to tell what is inside, as it's merely a ''folder'' with the added extension '''.oxp'''.&lt;br /&gt;
Oolite Version 1.79 onwards supports also compressed files in ZIP format with extension '''.oxz'''. &lt;br /&gt;
&lt;br /&gt;
To learn starting with a non-compressed version have a look at [[OXP_tutorial]].&lt;br /&gt;
&lt;br /&gt;
{{QuoteText|Text=It's worth saying I think that compared with a lot of game addon architectures, the OXP architecture as designed by Giles is already very good at avoiding conflicts compared with a lot of other games&lt;br /&gt;
- you can save your game, add, remove and upgrade lots of OXPs, load your game, and have it work&lt;br /&gt;
- you can do this repeatedly, while incrementally upgrading the core game, for years&lt;br /&gt;
- as a player you basically never have to care about load order; as an OXP developer, rarely&lt;br /&gt;
&lt;br /&gt;
It's also worth noting that a lot of types of OXP conflicts are inevitable due to resource conflicts - a planet can only have one diffuse map, a ship can only have one AI - or due to conceptual conflicts - OXP A removes all stations from a system; OXP B expects the player to dock there.|Source=([https://bb.oolite.space/viewtopic.php?p=241733#p241733 Cim (3rd Lead Developer)])}}&lt;br /&gt;
&lt;br /&gt;
=== Oolite TR version ===&lt;br /&gt;
The Oolite Developer Release/Test Release version is specially developed for testing out OXPs. It comes with a [[Debug OXP]]/Debug Console allowing one to spawn ships/station on demand, award oneself a test ship, detect the mass of another ship ''etc''.&lt;br /&gt;
&lt;br /&gt;
It is downloaded from the main Oolite website - currently http://www.oolite.space/download/&lt;br /&gt;
&lt;br /&gt;
== OXZ ==&lt;br /&gt;
The new OXZ distribution format is strongly recommended. It makes version control and distribution just so much easier.&lt;br /&gt;
&lt;br /&gt;
To make an OXZ file, use a ZIP program to compress the contents of the OXP folder, so that the [[manifest.plist]] file is in the root of the ZIP file, and the folders (AI, Config, etc) are folders in the ZIP file. Then, rename the ZIP file so that its extension is '''.oxz'''. To inspect an OXZ file, open it with your ZIP program.&lt;br /&gt;
&lt;br /&gt;
Here is a sample: [[Media:X.0.1.oxz]] - just rename all &amp;quot;X&amp;quot; within to the title of your idea and put your name into the author fields. &lt;br /&gt;
&lt;br /&gt;
You can use [http://www.ghisler.com/download.htm Total Commander] or [http://en.wikipedia.org/wiki/Krusader Krusader] to edit files within '''.oxz''' directly, without unpacking.&lt;br /&gt;
&lt;br /&gt;
For more details read [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16688 The All-in-One Guide to OXZ Packaging and Distribution].&lt;br /&gt;
&lt;br /&gt;
=== Creating an .oxz on an AppleMac ===&lt;br /&gt;
When you compress the files/folders on the AppleMac to create the .oxz ''do not'' select them with your mouse! This way lies misery!&lt;br /&gt;
&lt;br /&gt;
Rather, ensure the relevant files/folders are inside one overall folder. Then, use '''command-a''' to select all the ''contents'' of this overall folder and then select '''compress''' from the file menu on the finder's menu bar. Finally, rename your newly-created .zip file as an .oxz&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
Inside the '''.oxp''' folder, or the '''.oxz''' file, it will at least contain a folder (Config, AIs, Models, Textures, etc...) that holds scripts, plists or other things like textures or models. It is down to the goal of the [[OXP]], which ways to combine elements to the OXP's contents. To get a feeling for it, simply take a look in other oxps. (If they are in .oxz format, any normal unzip program can inspect their contents - many will even let you edit the contents without having to unzip and rezip the file)&lt;br /&gt;
&lt;br /&gt;
The structure for OXPs:&lt;br /&gt;
 AddOns (folder)&lt;br /&gt;
 ~.oxp (really just another folder!) - Holds manifest.plist and the other folders:&lt;br /&gt;
 &lt;br /&gt;
 --&amp;gt; AIs (folder) - Holds AI plists&lt;br /&gt;
 --&amp;gt; Config (folder) - Holds all other plists (and possibly an anonymous &amp;quot;Script.js&amp;quot;)&lt;br /&gt;
 --&amp;gt; Images (folder) - Holds background images&lt;br /&gt;
 --&amp;gt; Models (folder) - Holds the .dat files (special Oolite format)&lt;br /&gt;
 --&amp;gt; Music (folder) - Surprise - holds .ogg music files&lt;br /&gt;
 --&amp;gt; Scenarios (folder) - Holds new game scenarios (v1.79)&lt;br /&gt;
 --&amp;gt; Scripts (folder) - Holds scripts (worldScripts and shipScripts)&lt;br /&gt;
 --&amp;gt; Shaders (folder) - Holds Vertex and Fragment shaders (v1.69)&lt;br /&gt;
 --&amp;gt; Sounds (folder) - Holds sound files&lt;br /&gt;
 --&amp;gt; Textures (folder) - Holds models textures (can be planets, too!)&lt;br /&gt;
 --&amp;gt; [[manifest.plist]] (file) &lt;br /&gt;
     ''the following might also be found in here:''&lt;br /&gt;
 --&amp;gt; [[Misc plists|info.plist]] (file, seems to be a poor duplicate of the Manifest.plist)&lt;br /&gt;
 --&amp;gt; [[Requires.plist]] (file: deprecated - replaced by Manifest.plist)&lt;br /&gt;
&lt;br /&gt;
*If the OXP is in the uncompressed OXP folder format, the .oxp folder must contain a [[requires.plist]] file. If it is in the compressed OXZ single-file format, it must contain a [[manifest.plist]] file.&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13134 Nested OXPs in AddOns folder] (2012) - some OXZ's do this (Station spotter oxp inside [[Stations for Extra Planets]]) &lt;br /&gt;
&lt;br /&gt;
===AIs folder===&lt;br /&gt;
The folder named AIs contains any AI.plist additions the OXP might use. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto AI|Making Oolite AI]]&lt;br /&gt;
&lt;br /&gt;
In Oolite 1.79 AIs may be written in Javascript using .js files in this folder. A helper library is provided to make writing complex JS AIs simpler.&lt;br /&gt;
&lt;br /&gt;
* [[Oolite PriorityAI Documentation]]&lt;br /&gt;
* [[Oolite PriorityAI Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Config folder===&lt;br /&gt;
All plist files except for those introducing new AIs, ''[[requires.plist]]'', ''[[manifest.plist]]'' or ''[[Misc plists|info.plist]]'', belong in Config.&lt;br /&gt;
&lt;br /&gt;
In its simplest form, an OXP could contain only a Config with an altering ''script.plist'' or ''planetinfo.plist''.  An OXP that adds a new ship needs a ''shipdata.plist'' entry, and unless it is based entirely on existing Oolite data, would include a model and texture. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto plist|Making Oolite plists]]&lt;br /&gt;
* Usually irrelevant: The Config folder isn't cached in the same way as the rest of an oxp because usually its contents merge rather than overwriting (See [https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=16927 here])&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This folder contains [[Property lists]] such as:&lt;br /&gt;
&lt;br /&gt;
* ''[[characters.plist]]'' that adds non-player characters to Oolite.&lt;br /&gt;
* ''[[crosshairs.plist]]'' that contains the look for your weapons (v1.73).&lt;br /&gt;
* ''[[customsounds.plist]]'' that contains references to ingame used sounds.&lt;br /&gt;
* ''[[descriptions.plist]]'' that adds vocabulary to Oolite texts.&lt;br /&gt;
* ''[[effectdata.plist]]'' defines custom visual effects (v1.77).&lt;br /&gt;
* ''[[equipment.plist]]'' lists upgrades available from the Shipyard.&lt;br /&gt;
* ''[[explosions.plist]]'' customises things blowing up (v1.81)&lt;br /&gt;
* ''[[global-settings.plist]]'' sets a few miscellaneous universal settings (v1.81)&lt;br /&gt;
* ''[[gui-settings.plist]]'' settings for reformatting the GUI screens (v1.81)&lt;br /&gt;
* ''[[hud.plist]]'' and ''[[hud.plist|hud-small.plist]]'' that allows for changes or a radically new ''Head-Up Display''.&lt;br /&gt;
* ''[[Oolite_Keyboard_Controls|keyconfig2.plist]]'' that allows for changes of the keymapping.&lt;br /&gt;
* ''[[missiontext.plist]]'' contains texts for the mission screens.&lt;br /&gt;
* ''[[OXPMessages.plist]]'' adds warnings to testversions of an oxp.&lt;br /&gt;
* ''[[planetinfo.plist]]'' that plots system specific changes from the default. May also contain ''script actions''.&lt;br /&gt;
* ''[[role-categories.plist]]'' for specifying groups of roles (''eg''.: trader, Miner, pirate ''etc''.) with similar properties (v1.79)&lt;br /&gt;
* ''[[scenarios.plist]]'' lists the starting scenarios in the Scenarios folder (v1.79).&lt;br /&gt;
* ''[[screenbackgrounds.plist]]'' that contains references to background images (v1.74).&lt;br /&gt;
* ''[[Scripting Oolite with JavaScript|script.js]]'' is the successor of [[script.plist]] in JavaScript.It will be loaded in preference to script.plist if both exist.&lt;br /&gt;
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite.&lt;br /&gt;
* ''[[shipdata-overrides.plist]]'' that selectively can replace shipentries in other shipdata.plists&lt;br /&gt;
* ''[[shiplibrary.plist]]'' that gives information for the ship description library viewable from the startup screen (v1.79)&lt;br /&gt;
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase.&lt;br /&gt;
* ''[[shipyard-overrides.plist]]'' that selectively can replace shipentries in other shipyard.plists&lt;br /&gt;
* ''[[speech_pronunciation_guide.plist]]'' is another of the other custom methods.&lt;br /&gt;
* ''[[trade-goods.plist]]'' defines trade goods in 1.81 and later&lt;br /&gt;
* ''[[world-scripts.plist]]'' that contains a list of scripts (if more than one worldScript should be used).&lt;br /&gt;
&lt;br /&gt;
Deprecated:&lt;br /&gt;
* ''[[commodities.plist]]'' that contains information for each commodity in a market in 1.80 or earlier&lt;br /&gt;
* ''[[demoships.plist]]'' that selects demoships to show on startup (replaced - approximately - by shiplibrary.plist in 1.79 and later)&lt;br /&gt;
* ''[[illegal_goods.plist]]'' that contains a list of banned/forbidden items in 1.80 or earlier. GalCop has an eye on that.&lt;br /&gt;
* ''[[Oolite_Keyboard_Controls|keyconfig.plist]]'' that allows for changes of the keymapping. (deprecated in v1.92)&lt;br /&gt;
* ''[[pirate-victim-roles.plist]]'' that defines which roles should act as traders. (deprecated in v1.79)&lt;br /&gt;
* ''[[script.plist]]'' to handle conditional ''script actions''. (deprecated)&lt;br /&gt;
* ''[[script.oos]]'' was briefly introduced during 1.70 development but is now deprecated in favour of JS.)&lt;br /&gt;
&lt;br /&gt;
=== Models folder===&lt;br /&gt;
Oolite models need to be in an Oolite specific format using the the '''.dat''' file extension. There are utilities available that convert models made in Wings 3D (.obj) and Meshwork (.mesh) into this. A .dat file can be opened in a plain text editor to view the object's assigned texture names and see that they correspond with the actual file names in the Textures folder. The .dat file must be named exactly as it is referenced in the shipdata ''model'' entry - case sensitive!!!&lt;br /&gt;
&lt;br /&gt;
* [[OXP howto model|Making Oolite models]] - tutorials for Wings3D &amp;amp; Blender, notes on sub-entities, links ''etc''.&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=12165 Model Converter utilities] (2012-17)&lt;br /&gt;
* Video: [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16123 From scratch to Mamba in under an hour] ([[Dertien]], 2013)&lt;br /&gt;
&lt;br /&gt;
===Scripts folder===&lt;br /&gt;
Scripts are in text format. In this folder you can put both JavaScript scripts as well as legacy scripts. New OXPs should only use JavaScript here.&lt;br /&gt;
* [[Scripting_Oolite_with_JavaScript|Scripting Oolite with Javascript]]&lt;br /&gt;
* [[Oolite_JavaScript_object_model|Scripting reference]]&lt;br /&gt;
&lt;br /&gt;
===Textures folder===&lt;br /&gt;
&lt;br /&gt;
Oolite's textures are in the '''.png''' format, usually at a standard 512x512 size, and must be named exactly as they are named in the .dat file. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto texture|Making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
* [[Smivs'_texture_tutorial|Smivs' guide to making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
* [[Texturing tips and tricks by Theta Seven]]&lt;br /&gt;
&lt;br /&gt;
Viewing a specific texture and / or model in Oolite.&lt;br /&gt;
&amp;quot;I made one. How do I proof it?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [[Viewing a Texture or Model]]&lt;br /&gt;
&lt;br /&gt;
==Tool: OXP Verifier==&lt;br /&gt;
&lt;br /&gt;
Oolite has what amounts to a spell checker for shipdata.plist and some other plists, called the OXP verifier. &lt;br /&gt;
&lt;br /&gt;
*It does not work with OXZ's (so convert your OXP's to OXZ's later!).&lt;br /&gt;
*Nor does it work on the standard game release version of Oolite (v.1.90, v.1.92 ''etc''). Only on the Test Release/Developer's Release version ''and'' on the Nightlies/Pre-Releases (v.1.91, v.1.93 ''etc''.)&lt;br /&gt;
&lt;br /&gt;
The verifier detects unknown keys or wrong use of keys ''etc''. It can currently only be invoked from the command line. &lt;br /&gt;
&lt;br /&gt;
On Windows or Linux: &lt;br /&gt;
Code: &lt;br /&gt;
'''oolite.app/oolite --verify-oxp &amp;lt;path to OXP&amp;gt; '''&lt;br /&gt;
&lt;br /&gt;
On Mac OS X: &lt;br /&gt;
Code: &lt;br /&gt;
'''Oolite.app/Contents/MacOS/Oolite --verify-oxp &amp;lt;path to OXP&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Most Mac users will not be familiar with using the command line. Look inside your application folder for a '''utilities folder'''. Inside that you will find a program called [https://en.wikipedia.org/wiki/Terminal_(macOS) Terminal]. &amp;lt;br&amp;gt;&lt;br /&gt;
Run it to open a terminal window. Now drop the oolite application on that window. That will generate the path to oolite on the command line. Delete the trailing space and paste the following text - including the trailing space- behind it: &amp;quot;/Contents/MacOS/Oolite --verify-oxp &amp;quot;.  Now drop the oxp you want to verify on the window. That will again create the path to the oxp behind the last entry. &amp;lt;br&amp;gt;&lt;br /&gt;
When you select the window and hit the &amp;lt;return&amp;gt; key, the verification will start. It should now open the Console program, showing the results. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Console''' is a log viewer developed by Apple Inc. and included with macOS, also in the utilities folder. It allows users to search through all of the system's logged messages, and can alert the user when certain types of messages are logged. The Console is generally used for troubleshooting when there is a problem with the computer. MacOS itself, as well as any applications that are used, send a constant stream of messages to the system in the form of log files. The console allows you to read the system logs, help find certain ones, monitor them, and filter their contents. See [[Debug OXP]] for more information.&lt;br /&gt;
&lt;br /&gt;
There is a lengthy file - '''OXP verifier design.txt''' tucked inside your Oolite installation with more information about it&lt;br /&gt;
&lt;br /&gt;
Note that it is possible to [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21443 obtain graphical output] from Graphviz for OXP Verifier.&lt;br /&gt;
&lt;br /&gt;
=== Verifier BB threads ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=8&amp;amp;t=13400 plist Editor Pro for Windows] (2013 - full of relevant Red Herrings)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=16865 lite --verify-oxp fails when path has spaces in it] (2014)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21359 OXP Develoopment and Plist files] (2023 - quick introduction)&lt;br /&gt;
&lt;br /&gt;
=== Correcting with plutil (Apple Macintosh Terminal utility) ===&lt;br /&gt;
Since a very small mistake is enough to stop a .plist from being accepted, it's important to be exact about every letter and sign. The Mac Terminal utility has a very practical tool for catching parser errors. After opening Terminal, simply type plutil, add one space, and drag and drop the plist in question onto the Terminal window. This will cause the 'address' of the plist to be shown. Hit return, and Terminal will reveal whether or not the plist is OK. If it's not, you might be given a clue to what is wrong, and the line number of the error - or just a general note that &amp;quot;Unexpected character { at line 1&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
==Need for unique names==&lt;br /&gt;
On loading the oxps, Oolite will add all files in the AIs, Models, Sound and Scripts folders in one big folder for its own use. That means that all files need unique names or one file will overwrite another with the same name. Files in Textures are not pre-loaded, but when looking for a specific texture Oolite looks in all Texture folders until it finds a texture file with a matching name. If another oxp contains a texture with identical name, Oolite could use that texture.&lt;br /&gt;
&lt;br /&gt;
For the Config folder something similar happens. Here the plists all have the same name, but the content  of all oxp plists is loaded per type in one big plist. e.g. all individual shipData.plist go in one big shipData.plist file. And within a single plist, all keys must be unique. When two plists use the same key, the later loading key will overwrite the former.&lt;br /&gt;
&lt;br /&gt;
Generally it is a good habit to precede your chosen filenames and keys with the name of the oxp, or another unique prefix, to make sure the names stay unique and no other oxp will use the same names.&lt;br /&gt;
&lt;br /&gt;
==Scripting with JavaScript==&lt;br /&gt;
Older OXPs (from [[User:Aegidian|Aegidian]]'s day were written in Legacy Script: see [[Methods]]. Modern OXPs are written in JavaScript. Specifically oolite.jsVersion 185, an Oolite specific variant of '''ECMAv5'''. It is the same Spidermonkey version that Firefox 4 shipped with many years ago, but it is a special build for Oolite. This is the version that we have almost always had and it has not changed between versions of the game. [https://bb.oolite.space/viewtopic.php?p=256623#p256623 It is unlikely to change] in the future.&lt;br /&gt;
&lt;br /&gt;
JavaScript is the preferred scripting interface for worldScripts and shipScripts. The legacy scripting interface (see [[script.plist]]) still works, but is not supported. See [[Scripting Oolite with JavaScript]] for more information.&lt;br /&gt;
&lt;br /&gt;
Note that most of the [[Legacy Scripting]] still works perfectly well (XML &amp;amp; OpenStep)!&lt;br /&gt;
&lt;br /&gt;
==Hidden settings==&lt;br /&gt;
There are several [[Hidden_Settings_in_Oolite]] that make life for an oxp creator easier. One of them is the setting '''always-flush-cache'''. It makes every startup a bit slower, but it prevents Oolite working with cached data instead of your newly changed file. For someone that only does occasional oxp changes it will be enough to flush the cache by holding the shift key when starting Oolite but if you are writing oxps, this is the way to prevent frustrations.&lt;br /&gt;
&lt;br /&gt;
==Cookbook==&lt;br /&gt;
* How to add dials to a HUD: https://bb.oolite.space/viewtopic.php?p=290352#p290352&lt;br /&gt;
* How to limit a station's shipyard to only offer a defined set of ships: https://bb.oolite.space/viewtopic.php?p=293174#p293174&lt;br /&gt;
* Ship/Station design with external docking ports: https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21574&amp;amp;p=293777&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*'''Context''': [https://bb.oolite.space/viewtopic.php?p=275434#p275434 What can OXP's ''not'' change?] (2021)&lt;br /&gt;
*It is often helpful to dip one's toes (claws?) in the water by experimenting with tweaking oxp's first: see [[How to tweak OXZ's]]&lt;br /&gt;
*[[:Category:Oolite scripting]]&lt;br /&gt;
*[[Javascript Operators]]&lt;br /&gt;
*[[:Category:Oolite JavaScript Reference‎]]&lt;br /&gt;
*[[:Category:Oolite Development]]&lt;br /&gt;
*[[User:Montana05|Montana05]] recommends https://www.w3schools.com/js/js_array_sort.asp for better knowledge of the js on Oolite.&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=12149 OXP Development Best Practices] (2012-7)&lt;br /&gt;
*Some older oxp's are written in [[Legacy Scripting]]&lt;br /&gt;
*[https://github.com/OoliteProject/oolite/find/master Github] vanilla game code repository - the resources section at the bottom of the page contains possibly useful parts of vanilla game coding, with occasional annotations.&lt;br /&gt;
=== Tools ===&lt;br /&gt;
*[[List of software]] that is helpful for creating OXPs (eg. editorial packages for javascript or 3D model creators)&lt;br /&gt;
*[[List of Planets used in OXPs]] for planets already used by other OXPs. Helps authors avoid overlapping with or breaking other OXPs.&lt;br /&gt;
*[[OXP_howto_Game_Balance|OXP howto Game Balance]] to avoid conflicts from accidental gameplay changes.&lt;br /&gt;
*[[Long Range Scanner]] is an OXP which allows you to jump around the star system to objects you have placed there - or to jump around within the galaxy. A &amp;quot;cheat&amp;quot; for players, but a useful tool for some OXP designers.&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13422 What Tools Are Good For Windows OXP Programming?] (2013)&lt;br /&gt;
&lt;br /&gt;
==== Tutorials for Tools ====&lt;br /&gt;
*[https://web.archive.org/web/20050317033938/http://oolite.aegidian.org/cyoship/ Oolite Tutorial - Meshwork Shipbuilding (OSX only)] via WayBack Machine&lt;br /&gt;
*[https://web.archive.org/web/20060621211940/http://oolite.aegidian.org/cyoship2/ Oolite Tutorial - Wings 3D Shipbuilding (Cross-platform)] via WayBack Machine&lt;br /&gt;
&lt;br /&gt;
=== OXP tutorials ===&lt;br /&gt;
Oolite changes affecting different varieties of OXPs happened with v.1.76 (2011), v.1.80 (2014) &amp;amp; v1.82 (2015).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=20937 MasterClass: How to OXP (updating SoThisTC)] by [[User:Spara|Spara]] who teaches computing in Helsinki! (2021)&lt;br /&gt;
*[https://archive.org/details/GettingStartedWithOoliteOXZDevelopment Getting started with OXZ Development] ''An .odt for Open Office'': By Bugbear (2012). 2 example OXPs: a pirate-ridden solar systems warning tool &amp;amp; Witchspace Blockades [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17731 BB Thread (2015)]&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18837 OXP Performance] BB thread (mostly 2017-8): improving your OXP (speed, ''etc'')&lt;br /&gt;
==== Tutorials: Ships, Retextures &amp;amp; Dockables OXPs ====&lt;br /&gt;
*[[OXP howto model]]&lt;br /&gt;
*[[OXP howto texture]] - also covers planet textures&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18284 The bare minimum for a game-recognizable ship OXP] (thread: 2016)&lt;br /&gt;
*[[OXP_tutorial|OXP Tutorial]] creating a new spaceship - and then tweaking it in different ways (2007-13)&lt;br /&gt;
*[[OXP howto dockable stations]] (2009-10)&lt;br /&gt;
*[[User:Shipbuilder|Shipbuilder]] wrote a Shaders tutorial with resource packs (2013)&lt;br /&gt;
==== Tutorials: HUD OXPs ====&lt;br /&gt;
*[[OXP howto HUD]]&lt;br /&gt;
*[[Guide to HUDs]] - table comparing features&lt;br /&gt;
*[[HUD Customisation Guide‎‎]]&lt;br /&gt;
*[[Fully Annotated HUD Configuration (hud.plist) File‎]]&lt;br /&gt;
==== Tutorials: Missions OXPs ====&lt;br /&gt;
*[[OXP mission offering]]&lt;br /&gt;
*[[GalCop Missions]] has a wide variety of over 80 javascripted mini-missions - see the list behind the &amp;quot;Spoilers&amp;quot; button&lt;br /&gt;
==== Tutorials: Other ====&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=14135 How to make a simple OXP?] (thread: 2013) 3 OXPs - pop-up message at docking, set only Pythons for sale at Lave shipyard, create a new ship. &lt;br /&gt;
*[[Escape Pod Locator OXP]] has notes on programming on the bottom of the page regarding beacon transmission &amp;amp; location&lt;br /&gt;
&lt;br /&gt;
=== Helpful OXPs for your OXP===&lt;br /&gt;
There are a number of OXPs which have been specifically written to allow your OXP to use them:&lt;br /&gt;
*[[Library OXP|Library]]: a collection of useful snippets and helpers. Its main purpose is to simplify or unify some common tasks used by OXPers. &lt;br /&gt;
:*It can add dynamic maps, music &amp;amp; animation. &lt;br /&gt;
:*It adds a Personal Assistant Device for the player with details of people met, medals awarded, Guild rankings, ''etc''.&lt;br /&gt;
:*It allows in-game configuration of an oxp by the player.&lt;br /&gt;
:*Add-on modules allows inspection of models and materials for creation of ship &amp;amp; station oxps.&lt;br /&gt;
*[[GalCop Missions]] introduces many new pieces of equipment with wide varieties of use (Cargo Stoppers, Ejection Dampers, Range Finders, Solar Radiation Disrupter Missiles, Seismic Resonance Scanners, Patient Transport Modules ''etc''). It can also help with creating missions (it contains over 80 varieties - see the spoiler button on that wiki page).&lt;br /&gt;
*[[Diplomancy]] can be used to make states of war impact personally on the player&lt;br /&gt;
*[[System Data Config]] helps re-organise the F7 screen to squeeze more information onto it&lt;br /&gt;
&lt;br /&gt;
==== While docked/stations ====&lt;br /&gt;
*[[HD Backgrounds]] can provide a High Definition screenshot of a station lobby or other such for interaction with the player&lt;br /&gt;
*[[BGS]] can help organise a customised docking or launching sequence (see the [[Riredi OXP]] or the [[Kiota Stations]]).&lt;br /&gt;
*[[GNN]] can broadcast your news alerts (see how [[Diplomancy]] uses it for war &amp;amp; peace declarations). GNN also contains '''PhraseGen''' which can be used for randomizing text descriptions.&lt;br /&gt;
*[[Station Validator]] will remember that a station has been destroyed and stop Oolite automatically replacing it on the next visit to the system&lt;br /&gt;
*[[Station Dock Control]] can help interraction with other ships docked at the station&lt;br /&gt;
*[[Bulletin Board System]] can help manage interractions at the station&lt;br /&gt;
*[[Email System OXP]] can also help manage interractions at the station&lt;br /&gt;
*[[Ship Storage Helper]] allows storage of the player's ship whilst doing other things (such as flying another ship!)&lt;br /&gt;
*[[Equipment Storage OXP]]  allows storage of equipment/goods whilst doing other things&lt;br /&gt;
*[[Ship's Library]] allows reading documents with illustrations while docked (see the included Ship's Manual)&lt;br /&gt;
*[[Station Options]] allows complex configurations of equipment, but could potentially also be used for managing dialogue with NPCs&lt;br /&gt;
*[[Life in the Frontier]] was being expanded to cover more stations (Dodo/Ico/Rock Hermits and potentially OXP stations), but is currently mothballed. &lt;br /&gt;
&lt;br /&gt;
==== In-flight ====&lt;br /&gt;
*[[MFD - Broadcast Comms]] can be used for in-flight interaction with NPC's&lt;br /&gt;
*[[Bigships]] can be used to help with the AI for massive space ships which cannot dock at orbital stations&lt;br /&gt;
*[[Montanas Resource Pack 01]] contains a number of resources for use (treasures, containers, escape/survival equipment)&lt;br /&gt;
*[[Star System Lane Indicator]] - the older version contains a very graphical dynamic display (does not function properly, but boy! does it look good!)&lt;br /&gt;
*[[SOTL Exploration]] contains exploration equipment and a non-automatic hyperspace jump&lt;br /&gt;
*[[SOTL Altmap]] contains different politics, markets and NPCs with Torus Drives.&lt;br /&gt;
*[[Resistance Commander]] &amp;amp; [[EscortDeck]] contain mechanisms for &amp;quot;managing&amp;quot; allied ships.&lt;br /&gt;
&lt;br /&gt;
==== Planet Surfaces ====&lt;br /&gt;
*[[Planetfall OXP]] allows landing on the planet (used by [[Feudal States]] for access to the Royal Court, and by [[Astronaut]] for space-jumping)&lt;br /&gt;
*[[Lave is Earth 8k]] contains night-time city lighting&lt;br /&gt;
&lt;br /&gt;
=== Packaging and distribution ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16688 The All-in-One Guide to OXZ Packaging and Distribution].&lt;br /&gt;
::And see [https://bb.oolite.space/viewtopic.php?p=279034#p279034 this post] for AppleMac issues with the above.&lt;br /&gt;
* Cim created [https://github.com/cim--/oxp-build-scripts some scripts to ease packaging] a project.&lt;br /&gt;
*[[OXP Distribution]] The All-in-One Guide to OXP Packaging and Distribution (and [[OXP_standards]] for advice on which ways of doing things are supported and which are not).&lt;br /&gt;
* Since the domain change to [https://oolite.space] the distribution of expansions has changed slightly. The new version is still subject to discussions and might change again. Here is a [[Publishing Procedure Comparison]].&lt;br /&gt;
*[[Gameplay_and_Balance_Indicator|Gameplay Balance Indicator]] and [[OXP_Levelindicators|Difficulty Indicator]]. Add these to your wiki page to show effects on Game Balance and the Difficulty Level of your OXP/OXZ. The '''first''' indicates the impact on play (equipment making the game easier/more difficult), the '''second''' indicates the suggested [[Elite Rating]] needed to attempt the mission/defeat the ship ''etc''.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Diplomancy_OXP&amp;diff=90056</id>
		<title>Diplomancy OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Diplomancy_OXP&amp;diff=90056"/>
		<updated>2026-07-28T13:26:23Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* War Zones OXP */ Updated for 1.10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:IconGNN.png|100px|right]]&lt;br /&gt;
[[File:Diplomancy 1 new F4 Screen.png|thumb|right|The additions to the F4 ship-station interface screen (with ANA installed)]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Diplomancy 2 Embassy District.png|thumb|right|The new Embassy District on the Orbital Station]]&lt;br /&gt;
[[File:Diplomancy Warring Systems Map.png|thumb|right|The Star Wars screens (need [[ANA]] installed)&amp;lt;br&amp;gt;Toggles between Wars Map/Diplomancy Map/Warring Systems Map.&amp;lt;br&amp;gt;This one is the Warring Systems Map: ''red cross'' means that the system is at war with somebody, no idea who!]]&lt;br /&gt;
[[File:Diplomancy 4 Star Wars legend.png|thumb|right|legend for Star Wars screen]]&lt;br /&gt;
[[File:Diplomancy Wars Map.png|thumb|right|The Wars Map&amp;lt;br&amp;gt;''Red line = war, Green line = alliance''&amp;lt;br&amp;gt;Qubeen is at war with Soorbi, Onlema &amp;amp; Xexeti. She is allied with Arraesso.&amp;lt;br&amp;gt;To the West, Usanat is at peace with both Geerra and Soladies - no wars with them and no alliances either]]&lt;br /&gt;
[[File:Diplomancy Diplomacy Map.png|thumb|right|The Diplomacy Map&amp;lt;br&amp;gt;''Red = hate, Green = love, Yellow = love/hate, &amp;lt;br&amp;gt;Orange = dislike, Blue = like, Grey = neutral''&amp;lt;br&amp;gt;Feudal Qubeen and anarchic Xexeti have a love/hate relationship. Commie Usanat hates Democratic Geerra despite being at peace with it]]&lt;br /&gt;
[[File:Diplomancy System History.png|thumb|right|System History screen&amp;lt;br&amp;gt;Note the yellow &amp;quot;Love+Hate&amp;quot; line between Qubeen and Xexeti on the &amp;quot;Diplomacy Map&amp;quot; above]]&lt;br /&gt;
This OXP effects three major changes in the game:&lt;br /&gt;
*It creates an inter-galactic politics with systems declaring war on each other, forming alliances and signing peace deals.&lt;br /&gt;
*It allows purchase of citizenship of a system (with resulting tax liabilities &amp;amp; refugee status in systems at war with one's own)&lt;br /&gt;
*It requires visas for travel to some government types. Not all surrounding systems will sell them (depending on wars or on being anarchies)!&lt;br /&gt;
&lt;br /&gt;
Not to be confused with [[Home System]] OXP which allows investment in systems.&lt;br /&gt;
&lt;br /&gt;
=== Citizenships ===&lt;br /&gt;
The player may acquire, or renounce, a system citizenship when visiting this system, for the right price. They may choose which one of their citizenships is announced as the flag of their ship.&lt;br /&gt;
*The player is considered '''fugitive''' when in systems warring with their flag.&lt;br /&gt;
*'''Anarchies''' provide no citizenship. They also have no embassy district (for buying visas for neighbouring systems).&lt;br /&gt;
*The player may buy '''several days of visa''' in the '''Embassy district''' in a neighbouring state, which is not an enemy to the destination system.&lt;br /&gt;
:'''Corporate systems''', '''dictatorships''' and '''communists''' refuse docking to players when stateless and visaless.&lt;br /&gt;
*Citizenship leads to Income Tax!&lt;br /&gt;
&lt;br /&gt;
=== Systems' alliances, wars ===&lt;br /&gt;
*[[GNN]] news: GNN news is now displayed when an alliance is formed or broken between two systems, or when a war starts or ends between two systems, and the player is in one of those systems.&lt;br /&gt;
*'''Strategic maps''' showing the warring systems, and the diplomatic relationships!&lt;br /&gt;
::These need the [[ANA]] to be installed to show on the F4 station-interface screen.&lt;br /&gt;
*Two systems within 7ly of each other may now form an alliance, if they like each other enough.&lt;br /&gt;
*They may break their alliance, too!&lt;br /&gt;
*They may wage war to each other, and make peace too!&lt;br /&gt;
*New F4 Interface screens: the '''Embassy District''' &amp;amp; the '''System's History'''!&lt;br /&gt;
&lt;br /&gt;
=== Systems' treasury ===&lt;br /&gt;
*Wars require money, and countries are defeated either by battles or by bankruptcy, sometimes the latter producing the former.&lt;br /&gt;
*The Treasury and Tax levels are displayed in the F7 system information.&lt;br /&gt;
*Each system treasury is increased through taxation each player jump, depending on the time past since the last jump.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== What's currently implemented technically? ==&lt;br /&gt;
&lt;br /&gt;
The oxp contains Engines which may be use by developers to implement interesting galaxy-spanning events:&lt;br /&gt;
* (main) [[Diplomacy Engine API|Engine]]&lt;br /&gt;
* War - see WarZones OXP below&lt;br /&gt;
* History &lt;br /&gt;
* Systems&lt;br /&gt;
* Economy &lt;br /&gt;
* Citizenships - see Rexebe Citizen OXP &amp;amp; Digebiti Subject OXP below&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Effects on game ==&lt;br /&gt;
&lt;br /&gt;
=== Effects on game difficulty ===&lt;br /&gt;
* The player is considered fugitive when in systems warring with their flag.&lt;br /&gt;
* The player is refused docking in some stations when they have not the requisite visa or passport.&lt;br /&gt;
* Some new ways to spend money: becoming a citizen, visas.&lt;br /&gt;
&lt;br /&gt;
=== Effects on game performance ===&lt;br /&gt;
*This .oxp works only when the player is docked, so there is no impact during the flight time. During the docking, it works once every ten frames, the effect on player experience should be negligible.&lt;br /&gt;
&lt;br /&gt;
''If it isn't negligible, tell me and I'll put in the ability to choose the number of frames.''&lt;br /&gt;
:Even if the effect is negligible on the player, it uses lots of CPU, so it might not be negligible on the battery.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
*One now needs to keep abreast of developments in the systems one is about to visit. This ''can'' be done using the new F4 choices while docked. And it can ''also'' be done using the F7 screen - and if one's route has been plotted using the [[ANA]], one can view the different systems along the route in F7 using the left/right arrow keys.&lt;br /&gt;
&lt;br /&gt;
*If one is approaching a set of systems needing a visa from an anarchy, if a rock hermit can be found in the first system needing a visa, once can dock there and then a visa for the second system can be purchased there.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
*For OXZ's, the Expansions Manager download is fine.&lt;br /&gt;
*For OXPs, do not unzip the .oxz file, just move into the AddOns folder of your Oolite installation.&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
*[[GNN]] OXP&lt;br /&gt;
*[[Anarchies]] OXP&lt;br /&gt;
&lt;br /&gt;
== Known bugs ==&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
*Diplomancy was created by Commander [[User:Day‎|Day‎]], from the home of diplomancy (think of Talleyrand &amp;amp; Richelieu!).&lt;br /&gt;
*This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License version 4.0.&lt;br /&gt;
*If you are re-using any piece of this OXP, please let him know by sending an e-mail to david ''at'' pradier ''dot'' info&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Versions history ==&lt;br /&gt;
*'''v.0.21'''&lt;br /&gt;
:Improvement, can now purchase visa at systems beyond 7LY range.&lt;br /&gt;
*'''v.0.20'''&lt;br /&gt;
:Improvement, added map name to the title of the Star Wars map, making it clearer which map is being viewed.&lt;br /&gt;
:Improvement, moved all text to missiontext.plist and descriptions.plist for easier localisation.&lt;br /&gt;
:Improvement, added helper text to System History page if no data to display.&lt;br /&gt;
:Improvement, the Advanced Navigational Array is no longer a requirement for the map screens to see system connections.&lt;br /&gt;
:Improvement, can now extend visa for the current system at the main station.&lt;br /&gt;
:Improvement, flavor: alternative allegiance, broken allegiance, war, and peace GNN news items.&lt;br /&gt;
:Improvement, dev func: added WarEngine.$isActorWarring (passing an actor ID, returns a boolean)&lt;br /&gt;
:Improvement, dev func: added WarEngine.$isSystemWarring (passing a system ID, returns a boolean)&lt;br /&gt;
:Improvement, dev func: added WarEngine.$areSystemsWarring (passing two system IDs, returns a boolean)&lt;br /&gt;
:Bugfix: Fixed potential null reference check in War script when checking observersId.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
*'''v.0.19'''&lt;br /&gt;
:Bugfix: breaking alliances and making peace now works again.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.18'''&lt;br /&gt;
:Improvement, user-friendliness: the visa system in-game explanation is clearerer.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.17'''&lt;br /&gt;
Improvement, user-friendliness: the visa system in-game explanation is clearer.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.16''' &lt;br /&gt;
:Improvement, flavor: the player is considered fugitive when in systems warring with their flag.&lt;br /&gt;
:Improvement, flavor: no &amp;quot;Embassy district&amp;quot; in anarchies, no citizenship in an Anarchy&lt;br /&gt;
:Improvement, flavor: the player may buy days of visa (cost: productivity / population / 365 per day) in the embassy district in a neighbouring, non-enemy from the destination system.&lt;br /&gt;
:Improvement, flavor: the first time the Diplomacy OXP is used, if a visa is needed in the current system, we give the player a 1-day visa.&lt;br /&gt;
:Improvement, flavor: a GNN news introduces the Visa Law.&lt;br /&gt;
:Improvement, flavor: when stateless, docking is refused in corporates, dictatorships and communists without having a visa.&lt;br /&gt;
:Improvement, flavor: maps are centered and zoomed. Possibility to center on the target system, or on the whole trajectory. Possibility to display the short/quick trajectory, or no trajectory at all.&lt;br /&gt;
:Improvement, performance: the API are removed in favor of JsDoc.&lt;br /&gt;
:Improvement, code quality: the Snoopers dependency, which is deprecated, is replaced by the GNN dependency. Oolite minimal required version is now 1.88, because of this.&lt;br /&gt;
:Improvement, code quality: moved the GNN connection to external script.&lt;br /&gt;
:Improvement, code quality: tax level and treasury are now displayed through mission.addMessageText rather than through a modification of the system description.&lt;br /&gt;
:Improvement, tweaking: the alliance threshold between systems is lowered.&lt;br /&gt;
:Bugfix: the initActions wasn't set as it should be. In particular, initActionsByType wasn't set when adding an initAction, and initActions was set with an ActorType as key instead of an ActionId.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.15''' &lt;br /&gt;
:Improvement, flavor: the player may acquire or renounce the citizenship of the system they are in.&lt;br /&gt;
:Improvement, flavor: the player may display one of their citizenships as the flag of their ship.&lt;br /&gt;
:Improvement, dev func: other scripts may subscribe to be informed of a citizenship change of the player.&lt;br /&gt;
:Improvement, dev func: citizenships prices are dynamic and available to other scripts.&lt;br /&gt;
:Improvement, dev func: other scripts may inquire if the player has a particular citizenship.&lt;br /&gt;
:Improvement, code quality: introduced JsDoc comments, including some allowing to document the Oolite javascript hooks!&lt;br /&gt;
&lt;br /&gt;
*'''v.0.14'''&lt;br /&gt;
:Improvement, flavor: War declaration! Peace! Snooper news about them!&lt;br /&gt;
:Improvement, flavor: Wars map!&lt;br /&gt;
:Improvement, dev func: the war threshold and the alliance threshold are scriptable through the WarEngineAPI.&lt;br /&gt;
:Improvement, dev func: new F4 interface making History happen for debug purposes.&lt;br /&gt;
:Improvement, code consistency: Alliances scripts become War scripts.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.13''' &lt;br /&gt;
:Bugfix: manifest.plist for the oxz manager.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.12''' &lt;br /&gt;
:Bugfix: manifest.plist for the oxz manager.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.11'''&lt;br /&gt;
:Improvement, flavor: added a F4 Alliances Map, showing alliances between systems.&lt;br /&gt;
:Improvement, flavor: having only Snooper news for the player current system.&lt;br /&gt;
:Improvement, flavor: fixed Diziet Sma citation&lt;br /&gt;
:Improvement, code consistency: the tax script becomes the economy script.&lt;br /&gt;
:Improvement, code consistency: removed the TechnicalPrinciples.txt file, as its content is now mainly in the new OXP Performance thread.&lt;br /&gt;
:Improvement, dev func: added a beginning of Economy Engine API.&lt;br /&gt;
:Improvement, dev func: added a _debug flag in the Engine to start as if you just spent a turn and entered the station; ie, events are processing.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.10'''&lt;br /&gt;
:Improvement, flavor: added a F4 System history, showing the F7-selected system events history. The displayed text depends on a formatting function definable through API per event.&lt;br /&gt;
:Improvement, flavor: the alliance and alliance break events are now displayed in the history.&lt;br /&gt;
:Improvement, dev func: the EngineAPI provides the events, and the events by actor.&lt;br /&gt;
:Improvement, dev func: the EngineAPI allows now to store a variable in the saved state with the other saved variables of the oxp.&lt;br /&gt;
:Improvement, dev func: introduced a Systems API and a History API. The systems API provides the system actors indexed by galaxyID and systemID.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.9'''&lt;br /&gt;
:Improvement, flavor: the score given to a system by another depend on who they are allied to.&lt;br /&gt;
:Improvement, flavor: systems may now break their alliances.&lt;br /&gt;
:Bugfix: systems within 7 ly of any of both systems in the alliance are now informed of the alliance.&lt;br /&gt;
:Improvement, dev func: introduced an Alliance API.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.8'''&lt;br /&gt;
:Improvement, flavor: Two systems within 7ly of each other may now form an alliance, depending on their relation quality. Currently, each must have a score for the other of at least +0.5.&lt;br /&gt;
:Improvement, flavor: some Snooper news are now displayed when an alliance is formed between two systems, and the player is within 7ly of one of the allied systems.&lt;br /&gt;
:New, oxp dev func: introduced a functional Event system.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.7'''&lt;br /&gt;
:Improvement, flavor: added a F4 Strategic Map, showing links between systems nearer than 7. The relation between systems is currently based on their government.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.6'''&lt;br /&gt;
:Improvement, flavor: tax amount depends on the time spent since the last taxation.&lt;br /&gt;
:Improvement, speed: major refactor to remove closures, dereferences, JSON (de)serialization special functions.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.5'''&lt;br /&gt;
:Bugfix manifest.plist for the oxz manager.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.41'''&lt;br /&gt;
:Put into the oxz manager.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.3'''&lt;br /&gt;
:New, oxp dev func: delivered DiplomacyEngineAPI for oxp developers, provided a dedicated readme file.&lt;br /&gt;
:New, doc: provided a dedicated file DiplomacyRoadmap.txt&lt;br /&gt;
:Improvement, code consistency: the Systems and Tax js script now use the API rather than the native engine calls.&lt;br /&gt;
:Improvement, speed: optimized the loops in the engine&lt;br /&gt;
:Improvement, logic: when starting, the player is docked, so we should process the saved actions.&lt;br /&gt;
:Bugfix: solved a bug in the Tax script recurrent tax task after a savefile load.&lt;br /&gt;
:Bugfix: the init action using the api wasn't working after a restore from the savefile.&lt;br /&gt;
:Cleaning: log cleaning, file cleaning.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.2''' The actions are made progressively, one every 10 frames when docked, so as not to need more execution time than allowed at the same time, and to avoid slowdowns during the game.&lt;br /&gt;
&lt;br /&gt;
*'''v.0.1''' First version of the Diplomacy engine. Systems are introduced as a type of &amp;quot;Actor&amp;quot;. &amp;quot;SELFTAX&amp;quot; is introduced as an event for systems. Tax level and treasury are displayed on the F7 screen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Associated OXPs ==&lt;br /&gt;
=== Rexebe Citizen OXP ===&lt;br /&gt;
*[https://app.box.com/s/stnhgdubo7ogn0ug3e7zqfhyksw182wz Rexebe Citizen.oxz] grants citizenship of Rexebe for users of Diplomancy who want ''eg''. to try out [[Hermitage]] (Phkb, 2021)&lt;br /&gt;
=== Digebiti Subject OXP ===&lt;br /&gt;
*[https://wiki.alioth.net/index.php/File:DigebitiSubject.0.92.oxp.zip Digebiti Subject.oxp] grants subjecthood of Digebiti for users of Diplomancy&lt;br /&gt;
=== Quick Visa OXP ===&lt;br /&gt;
*[[Quick-Visa]] provides horrendously expensive &amp;quot;Visa purchasing options&amp;quot; on arrival at the Witchpoint Beacon (for those forgetting to get a visa at the previous system)&lt;br /&gt;
=== War Zones OXP ===&lt;br /&gt;
*[https://app.box.com/s/6gdpycwo639vhry03h13h0c3m6e2hsbx WarZones_1.10.oxz] creates wars between warring systems.&lt;br /&gt;
&lt;br /&gt;
*Warning: ''You'' are now automatically conscripted into an active battle if you are a citizen of either side and flying their flag!&lt;br /&gt;
&lt;br /&gt;
* Where two systems are at war, this OXP will often add a battle between ships from those systems. It is purely up to the player whether they want to get involved or not. When no active battle is added, there is a chance there will be the aftermath of a battle.&lt;br /&gt;
&lt;br /&gt;
* Market prices in any warring systems are elevated, while quantities available will be reduced.&lt;br /&gt;
&lt;br /&gt;
* Finally, some missions will be added to the [[GalCop Missions]] Bulletin Board as a result of two warring systems.&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
:Diplomacy v.0.20 or later&lt;br /&gt;
:[[GalCop Missions]] v.0.13 or later&lt;br /&gt;
:[[Market Script Interface]].&lt;br /&gt;
&lt;br /&gt;
==== License ====&lt;br /&gt;
*License: CC-BY-SA-NC 3.0&lt;br /&gt;
&lt;br /&gt;
==== Version History ====&lt;br /&gt;
This OXP is borrowed heavily from the [[Factions OXP]] by m4r35n357.&lt;br /&gt;
&lt;br /&gt;
1.10&lt;br /&gt;
:Fixed crash-inducing bug&lt;br /&gt;
&lt;br /&gt;
1.9.1&lt;br /&gt;
:Fixed error when attempting to create pilots for faction escorts.&lt;br /&gt;
&lt;br /&gt;
1.9&lt;br /&gt;
:Fixed invalid property name for descriptions lookup.&lt;br /&gt;
:Fixed some other incomplete references that caused JS errors.&lt;br /&gt;
&lt;br /&gt;
1.8&lt;br /&gt;
:Trimmed helper text in Library Config so it will be fully visible.&lt;br /&gt;
:Fixed issue with Library Config not showing the flags page due to an error.&lt;br /&gt;
&lt;br /&gt;
1.7&lt;br /&gt;
:Fixed issue with aftermath generation where errors could occur while spawning escape capsules.&lt;br /&gt;
:When battles are completed, any foreign ships will now wait a suitable amount of time before performing the jump, rather than the instant the battle is won.&lt;br /&gt;
:Removed debug code that would make battles happen 100% of the time between warring systems.&lt;br /&gt;
:Added unique fleet names based on government type (with thanks to Cholmondely for the suggestions/examples).&lt;br /&gt;
:A light destroyer can now sometimes be involved in the skirmishes.&lt;br /&gt;
:Added compatibility with Factions.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
v.1.6&lt;br /&gt;
:Player is now automatically conscripted into an active battle if they are a citizen of either side and flying their flag.&lt;br /&gt;
:When battles are completed, remaining ships will return home.&lt;br /&gt;
:When no active battle is taking place in a warring system, there is now a 50% chance of there being the aftermath of a battle.&lt;br /&gt;
:Reworked shipdata roles to be less confusing.&lt;br /&gt;
:Switched to using logcontrol.plist for controlling log file output.&lt;br /&gt;
:Changed name to &amp;quot;Diplomacy: War Zones&amp;quot;.&lt;br /&gt;
:Code refactoring.&lt;br /&gt;
&lt;br /&gt;
v.1.5&lt;br /&gt;
:Fixed manifest.plist requirements issue.&lt;br /&gt;
&lt;br /&gt;
v.1.4&lt;br /&gt;
:Moved restoration of market impact values to startUp, so values are restored before prices potentially set.&lt;br /&gt;
:Fixed incorrectly named file.&lt;br /&gt;
&lt;br /&gt;
v.1.3&lt;br /&gt;
:Cleaned up warring parties scanner colours, and made sure different colours will be applied to different systems of the same type.&lt;br /&gt;
:Made sure the &amp;quot;war&amp;quot; happens within visible distance of the witchpoint.&lt;br /&gt;
:Updated Wireframe Ship Images with correct Sidewinder link.&lt;br /&gt;
:Added market changes if a system is at war.&lt;br /&gt;
:Added two BB missions for at war systems.&lt;br /&gt;
&lt;br /&gt;
v.1.2&lt;br /&gt;
:Added &amp;quot;use strict&amp;quot; to ship script file.&lt;br /&gt;
:Suppressed &amp;quot;The 'conditions' key is deprecated in shipdata entry&amp;quot; messages in log file.&lt;br /&gt;
&lt;br /&gt;
v.1.1&lt;br /&gt;
:Fixed incorrect condition script filename in shipdata.&lt;br /&gt;
&lt;br /&gt;
v.1.0&lt;br /&gt;
:Initial release&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
[[File:Sv pad08.jpg|thumb|right|Library's PAD (Personal Assistance Device) showing player's origin]]&lt;br /&gt;
This section contains musings by Cholmondely and Cdr Day's 2021 roadmap for his OXP. Expand it to read!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Expand&amp;quot; data-collapsetext=&amp;quot;Hide&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Cholmondely|Cholmondely]] writes: this is one of my favourite OXPs adding a good dash of realism to my game. And it makes visiting other places difficult just as real, life does! If anybody ever manages to introduce real wars into Oolite, this will help provide a realistic background to them ([[User:Montana05|Montana05]] has created an &amp;quot;invasion oxp&amp;quot; which is currently in alpha stage).&lt;br /&gt;
&lt;br /&gt;
''There are a number of things which still need doing/thinking about.''&lt;br /&gt;
*One should be able to choose one's first citizenship without paying - ideally it should be linked to the self-chosen system of &amp;quot;origin&amp;quot; on [[Library OXP|Library's PAD]].&lt;br /&gt;
*It seems unlikely that there would be Embassy Districts on Rock Hermits! But it might well be possible to buy over-priced visas through the Black Market there (as ''eg'' installed by Smugglers oxp) - and especially for the same system that the RH is in!&lt;br /&gt;
*The decision not to install Embassy Districts on the local orbital station in an anarchy needs thinking through. The Lore is that the anarchy does not provide any finance for the orbital, meaning that GalCop has to pay for all of the costs. Hence [[GalCop]] runs the orbital, not the anarchy. And thus the lack of an &amp;quot;Embassy&amp;quot; with (inexistent) anarchic &amp;quot;governments&amp;quot; would seem to be irrelevant to the presence of some sort of visa-issuing body on the station. Even if the second system were at war with the anarchy. This can of course all be [[Handwavium|handwaved]] away by referring to GalCop regulations, but still, it should be thought through!&lt;br /&gt;
&lt;br /&gt;
=== Day's &amp;quot;Diplomacy roadmap&amp;quot; (2021) ===&lt;br /&gt;
&lt;br /&gt;
Next versions might include:&lt;br /&gt;
&lt;br /&gt;
0.19 - more expensive visa to go planetSide, costs slashed planetSide (90% custom rebate ?...)&lt;br /&gt;
:- citizenships may be acquired planetSide only&lt;br /&gt;
&lt;br /&gt;
0.20 player taxation depending on the number of citizenships (CreditDiff / timeInDaysSinceLastSystemVisit * n * (n - 1))&lt;br /&gt;
&lt;br /&gt;
0.21 War declaration generates an immediate gdp growth increase!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Conditions for version 1.0 to be declared:&lt;br /&gt;
:- filesave format stabilized,&lt;br /&gt;
:- performance considered to be ok,&lt;br /&gt;
:- all core engine functionalities implemented, remaining ones:&lt;br /&gt;
::- actor/event/response/function/initAction/recurrentAction disabling/removal,&lt;br /&gt;
::- 'act next turn' functionality.&lt;br /&gt;
:- APIs stabilized&lt;br /&gt;
:- I18n ok&lt;br /&gt;
:- L10n ok for english&lt;br /&gt;
:- Documentation in .md format&lt;br /&gt;
:- all major events implemented, remaining ones:&lt;br /&gt;
::- DEFENSE_PREPARATION&lt;br /&gt;
::- ATTACK_PREPARATION&lt;br /&gt;
::- ATTACK&lt;br /&gt;
::- LOSS&lt;br /&gt;
::- VICTORY&lt;br /&gt;
::- BANKRUPTCY&lt;br /&gt;
::- BREAK (Alliance)&lt;br /&gt;
::- ALLY (Alliance)&lt;br /&gt;
::- SPLIT&lt;br /&gt;
::- COMBINE&lt;br /&gt;
::- TAX (Alliance)&lt;br /&gt;
::- SUBSIDIZE&lt;br /&gt;
&lt;br /&gt;
Conditions for 2.0 to be declared:&lt;br /&gt;
:- Wiki pages, including APIs&lt;br /&gt;
:- perfectperf FIXMEs,&lt;br /&gt;
:- perfectfunc FIXMEs,&lt;br /&gt;
:- perfectstyle FIXMEs&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.f explain that the total number of credits in the Ooniverse is always the same through a Raxxla adventure&lt;br /&gt;
:FIXME 0.f make the tax level evolve ?&lt;br /&gt;
:FIXME 0.f How do we know the real productivity? Is there an OMC? Black work wouldn't be reported, nor taxed. Yet another time Raxxla?&lt;br /&gt;
:FIXME 0.f productivity could slowly converge towards a value depending on space scarcity&lt;br /&gt;
:FIXME 0.f use Fuel tweaks oxp depending on state of war, recently attacked system, and player home system :p&lt;br /&gt;
:FIXME 0.f tweakability / configurability / by player / by other oxps&lt;br /&gt;
:FIXME 0.f equipment/commodities prices vary depending on war/system richness&lt;br /&gt;
:FIXME 0.f identifying player as citizen from some system (Citizenship), consequences&lt;br /&gt;
:FIXME 0.f player taxation&lt;br /&gt;
:FIXME 0.f the strategic map should be available through an equipment, or a role (commander ;) ); through the oxp :GalacticRegistry (Galcop maps)?&lt;br /&gt;
:FIXME 0.f provide Diplomacy lore (the deep comments in the code) to the player through other oxps. GNN army? Spacebars? The oxp from which you're the hero?&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.n manage versioning of savefiles (last step before 1.0)&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.perfectperf use tco to avoid recursion: http://www.integralist.co.uk/posts/js-recursion.html&lt;br /&gt;
:FIXME 0.perfectperf minify, https://jscompress.com/, https://github.com/mishoo/UglifyJS2&lt;br /&gt;
:FIXME 0.perfectperf benchmark with lazy regexps&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.z make a story/scenario generator?&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.z passengers are taxed too; maybe player may pay less depending on passenger home system? why would passenger allow that?&lt;br /&gt;
:FIXME 0.z some systems could have their citizens not taxed? free passage? by some chosen systems? vassal systems?&lt;br /&gt;
:FIXME 0.z &amp;quot;Troll wars&amp;quot; (noble Troll specie against human cultural trolls)&lt;br /&gt;
:FIXME 0.z &amp;quot;Trumble wars&amp;quot; (trumbles are used as weapons to disrupt blockades)&lt;br /&gt;
:FIXME 0.z &amp;quot;Day of the Tentacle&amp;quot;&lt;br /&gt;
:FIXME 0.z the events history could be visualized through GNN&lt;br /&gt;
:FIXME 0.z the events history could be visualized through a map&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.z: implement scoring of relations between systems&lt;br /&gt;
::*goodwill low depending on history:&lt;br /&gt;
::if they have attacked that turn,&lt;br /&gt;
::polarization? if the system has several neighbours, it dislikes better one of them&lt;br /&gt;
::if they have attacked that turn a member of the alliance,&lt;br /&gt;
::if they prepare for attack (even an enemy?),&lt;br /&gt;
::if they're from an opposite economy,&lt;br /&gt;
::if they're from a different alliance (enemy alliance?)&lt;br /&gt;
::if they currently got a bad economy?&lt;br /&gt;
::if the other currently has a bad economy?&lt;br /&gt;
::if they're from a disliked race&lt;br /&gt;
::polarization? if the system has several neighbours, it dislikes better one of them&lt;br /&gt;
::if they harbor an enemy faction&lt;br /&gt;
::polarization: if they have enough money to attack and the other not enough to defend&lt;br /&gt;
::*goodwill high:&lt;br /&gt;
::if they have helped in the past,&lt;br /&gt;
::if they are member of the alliance,&lt;br /&gt;
::if they prepare for defense,&lt;br /&gt;
::if they're from a comparable economy&lt;br /&gt;
::if they're next to a common enemy&lt;br /&gt;
::if they're on a commercial road?&lt;br /&gt;
::if they're from a liked race&lt;br /&gt;
::polarization? if the system has several neighbours, it likes better one of them&lt;br /&gt;
::if they harbor an ally faction&lt;br /&gt;
::polarization: if they have enough money to defend and the other not enough to attack&lt;br /&gt;
::*What's an enemy?&lt;br /&gt;
::initial scoring + eventsScoring losing 10% each turn (year?) + current turn eventStoring&lt;br /&gt;
::initialScore = economy comparison + ideology comparison + commercial road&lt;br /&gt;
::who should we score? a system scores those systems it is observing?&lt;br /&gt;
::staticScore[observerId][observedId] = {&lt;br /&gt;
:::  economyComparison:,&lt;br /&gt;
:::    ideologyComparison:,&lt;br /&gt;
:::    sameCommercialRoad:,&lt;br /&gt;
::}&lt;br /&gt;
::dynamicScore[observerId][observedId] = {&lt;br /&gt;
:::  nextToCommonEnemy:,&lt;br /&gt;
:::    preparingForDefense:,&lt;br /&gt;
:::    harboursEnemyFaction:,&lt;br /&gt;
::}&lt;br /&gt;
::ally to alliance if avg(systemsScores) &amp;gt; threshold&lt;br /&gt;
::attack if systemMoney &amp;gt; targetProductivity * targetPopulation, divided by constant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''WAR'''&lt;br /&gt;
&lt;br /&gt;
:prepare_fight if:&lt;br /&gt;
:- treasury &amp;gt; fightPreparationThreshold =&amp;gt; war_treasury&lt;br /&gt;
:Is this really needed?&lt;br /&gt;
:Fight may be prepared at all times&lt;br /&gt;
&lt;br /&gt;
:- attacked =&amp;gt; lowers drastically score&lt;br /&gt;
:- ally attacked =&amp;gt; lowers (less) drastically score&lt;br /&gt;
&lt;br /&gt;
:attack or finance_ally if:&lt;br /&gt;
:- score &amp;lt; attackThreshold ?&lt;br /&gt;
&lt;br /&gt;
:- war_declared&lt;br /&gt;
:- roi &amp;gt; roi_threshold &amp;amp;&amp;amp; war_treasury &amp;gt; attack_budget (depending on attacker culture? [0,30% of war_treasury?])&lt;br /&gt;
&lt;br /&gt;
:An attack may remove from the attacked:&lt;br /&gt;
: pib -= [5%,,5%]*pib&lt;br /&gt;
: treasury -= attack_budget * 100 * [100%,1%]&lt;br /&gt;
: war_treasury -= attack_budget * 10 * [100%,1%]&lt;br /&gt;
:An attack may from the attacker:&lt;br /&gt;
: war_treasury += attack_budget * [-100%,100%]&lt;br /&gt;
&lt;br /&gt;
: depending on the success [100%,0%]&lt;br /&gt;
&lt;br /&gt;
: success repartition must be a gauss curve&lt;br /&gt;
&lt;br /&gt;
: what of ROI? hmm, economy size might change depending on battles?&lt;br /&gt;
: So an increase in economy size is a one-year increase to be compared to the cost of the attack&lt;br /&gt;
: what about using a zero-sum game principle? like economy size decrease goes to neigbors?&lt;br /&gt;
: or declaring war weakens some economic relations between systems and strengthens others?&lt;br /&gt;
&lt;br /&gt;
: or wars are decided by hidden interests, not by global economy? per good type? per 2 types only agro and industrial?&lt;br /&gt;
: I like the idea that the exchange depends on prices differences * size of economy&lt;br /&gt;
: but should the exchange be imbalanced? how is that impacting the economy growth?&lt;br /&gt;
: what are the coefficient on each good? what of forbidden goods?&lt;br /&gt;
&lt;br /&gt;
: the number of tons entering a system is equal to the number of tons exiting. Nope. the max number only, but it's theoretical.&lt;br /&gt;
: the max number 128 is administrative? why is it everywhere, then?&lt;br /&gt;
: not to be considered, as it would imply a very small spatial exchange between systems, very inferior to systems economy size&lt;br /&gt;
&lt;br /&gt;
: We need spatial ascensors, so as to have a low cost from planet to station,&lt;br /&gt;
:  which is needed not to have prohibitively expensive food and other things.&lt;br /&gt;
: Or cheap anti-gravity =o&lt;br /&gt;
: =&amp;gt; big exchanges between systems&lt;br /&gt;
&lt;br /&gt;
: Let's say that we think in terms of %age of total GDP, and not in GDP&lt;br /&gt;
: Let's say that the evolution of total GDP due to productivity increase is small in Ooniverse, compared to the variation due to the wars.&lt;br /&gt;
: In that case, we can think we are in a zero-sum game, in terms of %age of total GDP.&lt;br /&gt;
: Each loss of GDP %age is gained by the others.&lt;br /&gt;
: We can (it is a game shortcut) reattribute the lost gdp to some others&lt;br /&gt;
::   =&amp;gt; normal way is to add depending on their own current gdp, in the galaxy.&lt;br /&gt;
::   =&amp;gt; another way is to consider it goes to near systems (neighors?).&lt;br /&gt;
::   =&amp;gt; another way is to consider it goes to systems depending on their distance (squared)&lt;br /&gt;
::    =&amp;gt; this way is nice but expensive to calculate&lt;br /&gt;
::       (needs the distance between each systems, and the sum of these distances)&lt;br /&gt;
::   =&amp;gt; another way is to consider that neighbors in fact taxes the money,&lt;br /&gt;
::      and that systems other than neighbors earn a negligible increase&lt;br /&gt;
::   =&amp;gt; money goes to neighbors, coefficiented on inverse distance squared&lt;br /&gt;
&lt;br /&gt;
::   =&amp;gt; attack ROI depends on the attacked distance&lt;br /&gt;
::   =&amp;gt; financed attack ROI depends on the attacked distance&lt;br /&gt;
::   =&amp;gt; finance ROI should always be better than attack ROI?&lt;br /&gt;
::       then finance is preferable to attack when it is possible&lt;br /&gt;
::       =&amp;gt; how to ensure that 2 allies in war with a third system won't only finance each other instead of attacking?&lt;br /&gt;
&lt;br /&gt;
::   there must be an incentive to finish the other&lt;br /&gt;
::   =&amp;gt; spoils of war: combat_budget+, war_treasury+, treasury+, total gdp appropriation this turn (no neighbours),&lt;br /&gt;
::    greater portion of gdp (40% of attacked gdp * coeff depending on attacker gdp&lt;br /&gt;
::     (representing the ability to process the attacked gdp)), attacked forced peace&lt;br /&gt;
&lt;br /&gt;
::   What if 2 allies finish a system at the same time? It isn't possible to have a &amp;quot;at the same time&amp;quot; event.&lt;br /&gt;
::    Well maybe, events concurrency.&lt;br /&gt;
&lt;br /&gt;
::    FIXME 0.f use station in fire when a system has been beaten http://aegidian.org/bb/viewtopic.php?t=3460&amp;amp;start=154&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FIXME 0.f PEACE'''&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.z have an indicator &amp;quot;Ongoing war&amp;quot; per system&lt;br /&gt;
:FIXME 0.z have a notion of &amp;quot;war zone&amp;quot;&lt;br /&gt;
:FIXME 0.z have a notion of galaxy, station, traveller as actors&lt;br /&gt;
:FIXME 0.z tax evasion&lt;br /&gt;
:FIXME 0.z factions?&lt;br /&gt;
:FIXME 0.z news, depending on player current system, player citizenship system, propaganda?&lt;br /&gt;
::maybe the right way is to generate LOTS of news and let the player register to those they want?&lt;br /&gt;
::GNN, citizenship news company&lt;br /&gt;
:FIXME 0.z blockades&lt;br /&gt;
:FIXME 0.z each turn, a system has an event card: a sun explodes, or a native singer becomes famous, which changes taxes, or alliances, or fights, or... Use some mega bomb for a supernova style event&lt;br /&gt;
:FIXME 0.z what about the story of a war writing itself?&lt;br /&gt;
:FIXME 0.z war cargoes&lt;br /&gt;
:FIXME 0.z player's greed is the key&lt;br /&gt;
:FIXME 0.z &amp;quot;OXP that adds another eight galaxies&amp;quot; !!&lt;br /&gt;
:FIXME 0.z what happens if the player lands on an enemy planet?&lt;br /&gt;
:FIXME 0.z ideology and richness change in a system after a victory/defeat&lt;br /&gt;
&lt;br /&gt;
:FIXME extract the main engine into its own OXP&lt;br /&gt;
&lt;br /&gt;
'''Day's Musings'''&lt;br /&gt;
:Space is big. But the space we are interested in is the space around planetary systems :)&lt;br /&gt;
:What about ships localization detection and declaration?&lt;br /&gt;
&lt;br /&gt;
:On our old earth, we have transponders onto every (naval) ship and plane. We even have control towers.&lt;br /&gt;
:We have radars too, and the chinese have recently made a quantum radar (so no evasion through deflecting the wave like the B-2 stealth bomber do).&lt;br /&gt;
&lt;br /&gt;
:We could have mandatory transponders in corporate systems, optional transponders in, say, feudal systems, useless transponders in anarchy systems.&lt;br /&gt;
:That way, ships are declared, and space content is better known.&lt;br /&gt;
&lt;br /&gt;
:We could have (gravitic?) radars which results are shared ad-hoc (like wifi) by law-abiding pilots ^^&lt;br /&gt;
:That way, ships are detected, and space content is better known.&lt;br /&gt;
&lt;br /&gt;
:Using these, from the point of view of the ship commander, space isn't empty or big anymore; it's crowded and interaction are possibly frequent.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
:FIXME 0.z citizenship could be linked to a corporation instead of to a system (Cyberpunk meme)&lt;br /&gt;
:FIXME 0.z obligations may weight on the player depending on their citizenship (missions, battles...)&lt;br /&gt;
:FIXME 0.z the player may acquire a citizenship through missions, falsified papers, stolen papers from a captured pilot, marriage with a crew member, another pilot or an inhabitant&lt;br /&gt;
:FIXME 0.z the player may lose their citizenship through lack of system visit per year, treason, attack on the local army, simultaneous citizenship with an enemy system&lt;br /&gt;
:FIXME 0.z the player, citizen of a warring system, may be taxed, enroled into battles, or be given missions&lt;br /&gt;
&lt;br /&gt;
:FIXME show enemy planets on the main map, allied planets, needs a visa planet ; new script enemies: war+citizenship&lt;br /&gt;
&lt;br /&gt;
:FIXME 0.z manage supernovas&lt;br /&gt;
&lt;br /&gt;
:FIXME convoys oxp to have convoys + military oxp to have military ships, to create battles...&lt;br /&gt;
&lt;br /&gt;
'''Asked by Cholmondeley'''&lt;br /&gt;
:If you added: &amp;quot;Extend the Zaonce visa at a cost of 2.1cr/day&amp;quot;...&lt;br /&gt;
and if you could show the total of bought days on the screen...&lt;br /&gt;
:The slightly different cost of the extension helps add emphasis.&lt;br /&gt;
:I notice that the F8 page totals change as one buys and sells...&lt;br /&gt;
&lt;br /&gt;
:Also, one can often extend the visa within the country itself.&lt;br /&gt;
:(One might have to go down to the planet surface on a shuttle...&lt;br /&gt;
:But another visa to use the shuttle... etc. ad nauseum...&lt;br /&gt;
:Or join a lo-o-o-ong queue on the orbital station (or pay someone else to do it)...&lt;br /&gt;
&lt;br /&gt;
:I've only just dipped my toes into your modification, but the only thing I'd like to see added so far (other than the change of text above) would be some graphics for the Embassy district and the System History Section. Easier said than done, alas!&lt;br /&gt;
:If there was a GalCop logo, maybe that on a flag for the Embassy district (I've only seen ones so far are for the Galactic Police &amp;amp; Army).&lt;br /&gt;
:Or how about a pair of white gloves, a pith helmet and a glass of bubbly? Or a visa stamp in a passport...&lt;br /&gt;
:Or some of Phantorgorth's species icons? Or some of the F6 system government icons (anarchy etc)?...&lt;br /&gt;
:We could do with a decent GalCop logo anyway for the GalCop wiki page&lt;br /&gt;
:How about a picture of the planet (it need not revolve) for the System History F4 page?&lt;br /&gt;
&lt;br /&gt;
:To what extent does buying citizenship of a system link in with Home System.oxp's inner workings?&lt;br /&gt;
:There you buy Home System Privileges for 15,000cr a pop, which leads to what seems to be a sort of super-citizenship.&lt;br /&gt;
:Should it automatically grant Diplomancy.oxp style citizenship as well?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18645|BB Discussion]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=11904 Tax OXP?] thread (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=278364#p278364 Wars discussion] (2021)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=6&amp;amp;t=19471 Is Political Change Possible?] (2018)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=286468#p286468 Problems with combining the buggy Diplomancy with Bounty System OXP] (2022)&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
*Version 0.21 (2026) [https://app.box.com/s/5xbksy48qr9cp31z2wpef6wjla05s3ih Phkb's Oolite Box] look in his &amp;quot;Mechanics&amp;quot; folder&lt;br /&gt;
&lt;br /&gt;
*Version 0.19 (2023) is downloadable through the in-game [[Expansions Manager]]&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance Indicator ==&lt;br /&gt;
[[File:Tag-colour-orange.png|right]]{{OXPLevel|1}}&lt;br /&gt;
Diplomancy makes things a bit more difficult - you need to pay for a visa to visit some of the systems - or get fined! And you can't buy the visas just anywhere either - sometimes you can't even buy them at all!&lt;br /&gt;
{{ambience-OXP}}&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=OXP_howto&amp;diff=90055</id>
		<title>OXP howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=OXP_howto&amp;diff=90055"/>
		<updated>2026-07-28T11:30:17Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Helpful OXPs for your OXP */ Added in to GalCop Missions note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''Shortcut: EW:OXP and EW:HOWDS redirect here''&amp;lt;/br&amp;gt;&lt;br /&gt;
[[Image:oolite-oxp-icon.png|100px|thumb|right|OXP icon]]&lt;br /&gt;
[[File:Oolite-debug-menu.png|thumb|right|Debug Menu  (From the AppleMac variety of the &amp;quot;Oolite TR&amp;quot; version)]]&lt;br /&gt;
==Overview==&lt;br /&gt;
An '''Oolite Expansion Pack''' can cause many big changes or additions to Oolite's gameplay, or it may represent just a small, subtle alteration. By first appearances, there is no way to tell what is inside, as it's merely a ''folder'' with the added extension '''.oxp'''.&lt;br /&gt;
Oolite Version 1.79 onwards supports also compressed files in ZIP format with extension '''.oxz'''. &lt;br /&gt;
&lt;br /&gt;
To learn starting with a non-compressed version have a look at [[OXP_tutorial]].&lt;br /&gt;
&lt;br /&gt;
{{QuoteText|Text=It's worth saying I think that compared with a lot of game addon architectures, the OXP architecture as designed by Giles is already very good at avoiding conflicts compared with a lot of other games&lt;br /&gt;
- you can save your game, add, remove and upgrade lots of OXPs, load your game, and have it work&lt;br /&gt;
- you can do this repeatedly, while incrementally upgrading the core game, for years&lt;br /&gt;
- as a player you basically never have to care about load order; as an OXP developer, rarely&lt;br /&gt;
&lt;br /&gt;
It's also worth noting that a lot of types of OXP conflicts are inevitable due to resource conflicts - a planet can only have one diffuse map, a ship can only have one AI - or due to conceptual conflicts - OXP A removes all stations from a system; OXP B expects the player to dock there.|Source=([https://bb.oolite.space/viewtopic.php?p=241733#p241733 Cim (3rd Lead Developer)])}}&lt;br /&gt;
&lt;br /&gt;
=== Oolite TR version ===&lt;br /&gt;
The Oolite Developer Release/Test Release version is specially developed for testing out OXPs. It comes with a [[Debug OXP]]/Debug Console allowing one to spawn ships/station on demand, award oneself a test ship, detect the mass of another ship ''etc''.&lt;br /&gt;
&lt;br /&gt;
It is downloaded from the main Oolite website - currently http://www.oolite.space/download/&lt;br /&gt;
&lt;br /&gt;
== OXZ ==&lt;br /&gt;
The new OXZ distribution format is strongly recommended. It makes version control and distribution just so much easier.&lt;br /&gt;
&lt;br /&gt;
To make an OXZ file, use a ZIP program to compress the contents of the OXP folder, so that the [[manifest.plist]] file is in the root of the ZIP file, and the folders (AI, Config, etc) are folders in the ZIP file. Then, rename the ZIP file so that its extension is '''.oxz'''. To inspect an OXZ file, open it with your ZIP program.&lt;br /&gt;
&lt;br /&gt;
Here is a sample: [[Media:X.0.1.oxz]] - just rename all &amp;quot;X&amp;quot; within to the title of your idea and put your name into the author fields. &lt;br /&gt;
&lt;br /&gt;
You can use [http://www.ghisler.com/download.htm Total Commander] or [http://en.wikipedia.org/wiki/Krusader Krusader] to edit files within '''.oxz''' directly, without unpacking.&lt;br /&gt;
&lt;br /&gt;
For more details read [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16688 The All-in-One Guide to OXZ Packaging and Distribution].&lt;br /&gt;
&lt;br /&gt;
=== Creating an .oxz on an AppleMac ===&lt;br /&gt;
When you compress the files/folders on the AppleMac to create the .oxz ''do not'' select them with your mouse! This way lies misery!&lt;br /&gt;
&lt;br /&gt;
Rather, ensure the relevant files/folders are inside one overall folder. Then, use '''command-a''' to select all the ''contents'' of this overall folder and then select '''compress''' from the file menu on the finder's menu bar. Finally, rename your newly-created .zip file as an .oxz&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
Inside the '''.oxp''' folder, or the '''.oxz''' file, it will at least contain a folder (Config, AIs, Models, Textures, etc...) that holds scripts, plists or other things like textures or models. It is down to the goal of the [[OXP]], which ways to combine elements to the OXP's contents. To get a feeling for it, simply take a look in other oxps. (If they are in .oxz format, any normal unzip program can inspect their contents - many will even let you edit the contents without having to unzip and rezip the file)&lt;br /&gt;
&lt;br /&gt;
The structure for OXPs:&lt;br /&gt;
 AddOns (folder)&lt;br /&gt;
 ~.oxp (really just another folder!) - Holds manifest.plist and the other folders:&lt;br /&gt;
 &lt;br /&gt;
 --&amp;gt; AIs (folder) - Holds AI plists&lt;br /&gt;
 --&amp;gt; Config (folder) - Holds all other plists (and possibly an anonymous &amp;quot;Script.js&amp;quot;)&lt;br /&gt;
 --&amp;gt; Images (folder) - Holds background images&lt;br /&gt;
 --&amp;gt; Models (folder) - Holds the .dat files (special Oolite format)&lt;br /&gt;
 --&amp;gt; Music (folder) - Surprise - holds .ogg music files&lt;br /&gt;
 --&amp;gt; Scenarios (folder) - Holds new game scenarios (v1.79)&lt;br /&gt;
 --&amp;gt; Scripts (folder) - Holds scripts (worldScripts and shipScripts)&lt;br /&gt;
 --&amp;gt; Shaders (folder) - Holds Vertex and Fragment shaders (v1.69)&lt;br /&gt;
 --&amp;gt; Sounds (folder) - Holds sound files&lt;br /&gt;
 --&amp;gt; Textures (folder) - Holds models textures (can be planets, too!)&lt;br /&gt;
 --&amp;gt; [[manifest.plist]] (file) &lt;br /&gt;
     ''the following might also be found in here:''&lt;br /&gt;
 --&amp;gt; [[Misc plists|info.plist]] (file, seems to be a poor duplicate of the Manifest.plist)&lt;br /&gt;
 --&amp;gt; [[Requires.plist]] (file: deprecated - replaced by Manifest.plist)&lt;br /&gt;
&lt;br /&gt;
*If the OXP is in the uncompressed OXP folder format, the .oxp folder must contain a [[requires.plist]] file. If it is in the compressed OXZ single-file format, it must contain a [[manifest.plist]] file.&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13134 Nested OXPs in AddOns folder] (2012) - some OXZ's do this (Station spotter oxp inside [[Stations for Extra Planets]]) &lt;br /&gt;
&lt;br /&gt;
===AIs folder===&lt;br /&gt;
The folder named AIs contains any AI.plist additions the OXP might use. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto AI|Making Oolite AI]]&lt;br /&gt;
&lt;br /&gt;
In Oolite 1.79 AIs may be written in Javascript using .js files in this folder. A helper library is provided to make writing complex JS AIs simpler.&lt;br /&gt;
&lt;br /&gt;
* [[Oolite PriorityAI Documentation]]&lt;br /&gt;
* [[Oolite PriorityAI Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Config folder===&lt;br /&gt;
All plist files except for those introducing new AIs, ''[[requires.plist]]'', ''[[manifest.plist]]'' or ''[[Misc plists|info.plist]]'', belong in Config.&lt;br /&gt;
&lt;br /&gt;
In its simplest form, an OXP could contain only a Config with an altering ''script.plist'' or ''planetinfo.plist''.  An OXP that adds a new ship needs a ''shipdata.plist'' entry, and unless it is based entirely on existing Oolite data, would include a model and texture. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto plist|Making Oolite plists]]&lt;br /&gt;
* Usually irrelevant: The Config folder isn't cached in the same way as the rest of an oxp because usually its contents merge rather than overwriting (See [https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=16927 here])&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This folder contains [[Property lists]] such as:&lt;br /&gt;
&lt;br /&gt;
* ''[[characters.plist]]'' that adds non-player characters to Oolite.&lt;br /&gt;
* ''[[crosshairs.plist]]'' that contains the look for your weapons (v1.73).&lt;br /&gt;
* ''[[customsounds.plist]]'' that contains references to ingame used sounds.&lt;br /&gt;
* ''[[descriptions.plist]]'' that adds vocabulary to Oolite texts.&lt;br /&gt;
* ''[[effectdata.plist]]'' defines custom visual effects (v1.77).&lt;br /&gt;
* ''[[equipment.plist]]'' lists upgrades available from the Shipyard.&lt;br /&gt;
* ''[[explosions.plist]]'' customises things blowing up (v1.81)&lt;br /&gt;
* ''[[global-settings.plist]]'' sets a few miscellaneous universal settings (v1.81)&lt;br /&gt;
* ''[[gui-settings.plist]]'' settings for reformatting the GUI screens (v1.81)&lt;br /&gt;
* ''[[hud.plist]]'' and ''[[hud.plist|hud-small.plist]]'' that allows for changes or a radically new ''Head-Up Display''.&lt;br /&gt;
* ''[[Oolite_Keyboard_Controls|keyconfig2.plist]]'' that allows for changes of the keymapping.&lt;br /&gt;
* ''[[missiontext.plist]]'' contains texts for the mission screens.&lt;br /&gt;
* ''[[OXPMessages.plist]]'' adds warnings to testversions of an oxp.&lt;br /&gt;
* ''[[planetinfo.plist]]'' that plots system specific changes from the default. May also contain ''script actions''.&lt;br /&gt;
* ''[[role-categories.plist]]'' for specifying groups of roles (''eg''.: trader, Miner, pirate ''etc''.) with similar properties (v1.79)&lt;br /&gt;
* ''[[scenarios.plist]]'' lists the starting scenarios in the Scenarios folder (v1.79).&lt;br /&gt;
* ''[[screenbackgrounds.plist]]'' that contains references to background images (v1.74).&lt;br /&gt;
* ''[[Scripting Oolite with JavaScript|script.js]]'' is the successor of [[script.plist]] in JavaScript.It will be loaded in preference to script.plist if both exist.&lt;br /&gt;
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite.&lt;br /&gt;
* ''[[shipdata-overrides.plist]]'' that selectively can replace shipentries in other shipdata.plists&lt;br /&gt;
* ''[[shiplibrary.plist]]'' that gives information for the ship description library viewable from the startup screen (v1.79)&lt;br /&gt;
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase.&lt;br /&gt;
* ''[[shipyard-overrides.plist]]'' that selectively can replace shipentries in other shipyard.plists&lt;br /&gt;
* ''[[speech_pronunciation_guide.plist]]'' is another of the other custom methods.&lt;br /&gt;
* ''[[trade-goods.plist]]'' defines trade goods in 1.81 and later&lt;br /&gt;
* ''[[world-scripts.plist]]'' that contains a list of scripts (if more than one worldScript should be used).&lt;br /&gt;
&lt;br /&gt;
Deprecated:&lt;br /&gt;
* ''[[commodities.plist]]'' that contains information for each commodity in a market in 1.80 or earlier&lt;br /&gt;
* ''[[demoships.plist]]'' that selects demoships to show on startup (replaced - approximately - by shiplibrary.plist in 1.79 and later)&lt;br /&gt;
* ''[[illegal_goods.plist]]'' that contains a list of banned/forbidden items in 1.80 or earlier. GalCop has an eye on that.&lt;br /&gt;
* ''[[Oolite_Keyboard_Controls|keyconfig.plist]]'' that allows for changes of the keymapping. (deprecated in v1.92)&lt;br /&gt;
* ''[[pirate-victim-roles.plist]]'' that defines which roles should act as traders. (deprecated in v1.79)&lt;br /&gt;
* ''[[script.plist]]'' to handle conditional ''script actions''. (deprecated)&lt;br /&gt;
* ''[[script.oos]]'' was briefly introduced during 1.70 development but is now deprecated in favour of JS.)&lt;br /&gt;
&lt;br /&gt;
=== Models folder===&lt;br /&gt;
Oolite models need to be in an Oolite specific format using the the '''.dat''' file extension. There are utilities available that convert models made in Wings 3D (.obj) and Meshwork (.mesh) into this. A .dat file can be opened in a plain text editor to view the object's assigned texture names and see that they correspond with the actual file names in the Textures folder. The .dat file must be named exactly as it is referenced in the shipdata ''model'' entry - case sensitive!!!&lt;br /&gt;
&lt;br /&gt;
* [[OXP howto model|Making Oolite models]] - tutorials for Wings3D &amp;amp; Blender, notes on sub-entities, links ''etc''.&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=12165 Model Converter utilities] (2012-17)&lt;br /&gt;
* Video: [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16123 From scratch to Mamba in under an hour] ([[Dertien]], 2013)&lt;br /&gt;
&lt;br /&gt;
===Scripts folder===&lt;br /&gt;
Scripts are in text format. In this folder you can put both JavaScript scripts as well as legacy scripts. New OXPs should only use JavaScript here.&lt;br /&gt;
* [[Scripting_Oolite_with_JavaScript|Scripting Oolite with Javascript]]&lt;br /&gt;
* [[Oolite_JavaScript_object_model|Scripting reference]]&lt;br /&gt;
&lt;br /&gt;
===Textures folder===&lt;br /&gt;
&lt;br /&gt;
Oolite's textures are in the '''.png''' format, usually at a standard 512x512 size, and must be named exactly as they are named in the .dat file. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto texture|Making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
* [[Smivs'_texture_tutorial|Smivs' guide to making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
* [[Texturing tips and tricks by Theta Seven]]&lt;br /&gt;
&lt;br /&gt;
Viewing a specific texture and / or model in Oolite.&lt;br /&gt;
&amp;quot;I made one. How do I proof it?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [[Viewing a Texture or Model]]&lt;br /&gt;
&lt;br /&gt;
==Tool: OXP Verifier==&lt;br /&gt;
&lt;br /&gt;
Oolite has what amounts to a spell checker for shipdata.plist and some other plists, called the OXP verifier. &lt;br /&gt;
&lt;br /&gt;
*It does not work with OXZ's (so convert your OXP's to OXZ's later!).&lt;br /&gt;
*Nor does it work on the standard game release version of Oolite (v.1.90, v.1.92 ''etc''). Only on the Test Release/Developer's Release version ''and'' on the Nightlies/Pre-Releases (v.1.91, v.1.93 ''etc''.)&lt;br /&gt;
&lt;br /&gt;
The verifier detects unknown keys or wrong use of keys ''etc''. It can currently only be invoked from the command line. &lt;br /&gt;
&lt;br /&gt;
On Windows or Linux: &lt;br /&gt;
Code: &lt;br /&gt;
'''oolite.app/oolite --verify-oxp &amp;lt;path to OXP&amp;gt; '''&lt;br /&gt;
&lt;br /&gt;
On Mac OS X: &lt;br /&gt;
Code: &lt;br /&gt;
'''Oolite.app/Contents/MacOS/Oolite --verify-oxp &amp;lt;path to OXP&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Most Mac users will not be familiar with using the command line. Look inside your application folder for a '''utilities folder'''. Inside that you will find a program called [https://en.wikipedia.org/wiki/Terminal_(macOS) Terminal]. &amp;lt;br&amp;gt;&lt;br /&gt;
Run it to open a terminal window. Now drop the oolite application on that window. That will generate the path to oolite on the command line. Delete the trailing space and paste the following text - including the trailing space- behind it: &amp;quot;/Contents/MacOS/Oolite --verify-oxp &amp;quot;.  Now drop the oxp you want to verify on the window. That will again create the path to the oxp behind the last entry. &amp;lt;br&amp;gt;&lt;br /&gt;
When you select the window and hit the &amp;lt;return&amp;gt; key, the verification will start. It should now open the Console program, showing the results. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Console''' is a log viewer developed by Apple Inc. and included with macOS, also in the utilities folder. It allows users to search through all of the system's logged messages, and can alert the user when certain types of messages are logged. The Console is generally used for troubleshooting when there is a problem with the computer. MacOS itself, as well as any applications that are used, send a constant stream of messages to the system in the form of log files. The console allows you to read the system logs, help find certain ones, monitor them, and filter their contents. See [[Debug OXP]] for more information.&lt;br /&gt;
&lt;br /&gt;
There is a lengthy file - '''OXP verifier design.txt''' tucked inside your Oolite installation with more information about it&lt;br /&gt;
&lt;br /&gt;
Note that it is possible to [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21443 obtain graphical output] from Graphviz for OXP Verifier.&lt;br /&gt;
&lt;br /&gt;
=== Verifier BB threads ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=8&amp;amp;t=13400 plist Editor Pro for Windows] (2013 - full of relevant Red Herrings)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=16865 lite --verify-oxp fails when path has spaces in it] (2014)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21359 OXP Develoopment and Plist files] (2023 - quick introduction)&lt;br /&gt;
&lt;br /&gt;
=== Correcting with plutil (Apple Macintosh Terminal utility) ===&lt;br /&gt;
Since a very small mistake is enough to stop a .plist from being accepted, it's important to be exact about every letter and sign. The Mac Terminal utility has a very practical tool for catching parser errors. After opening Terminal, simply type plutil, add one space, and drag and drop the plist in question onto the Terminal window. This will cause the 'address' of the plist to be shown. Hit return, and Terminal will reveal whether or not the plist is OK. If it's not, you might be given a clue to what is wrong, and the line number of the error - or just a general note that &amp;quot;Unexpected character { at line 1&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
==Need for unique names==&lt;br /&gt;
On loading the oxps, Oolite will add all files in the AIs, Models, Sound and Scripts folders in one big folder for its own use. That means that all files need unique names or one file will overwrite another with the same name. Files in Textures are not pre-loaded, but when looking for a specific texture Oolite looks in all Texture folders until it finds a texture file with a matching name. If another oxp contains a texture with identical name, Oolite could use that texture.&lt;br /&gt;
&lt;br /&gt;
For the Config folder something similar happens. Here the plists all have the same name, but the content  of all oxp plists is loaded per type in one big plist. e.g. all individual shipData.plist go in one big shipData.plist file. And within a single plist, all keys must be unique. When two plists use the same key, the later loading key will overwrite the former.&lt;br /&gt;
&lt;br /&gt;
Generally it is a good habit to precede your chosen filenames and keys with the name of the oxp, or another unique prefix, to make sure the names stay unique and no other oxp will use the same names.&lt;br /&gt;
&lt;br /&gt;
==Scripting with JavaScript==&lt;br /&gt;
Older OXPs (from [[User:Aegidian|Aegidian]]'s day were written in Legacy Script: see [[Methods]]. Modern OXPs are written in JavaScript. Specifically oolite.jsVersion 185, an Oolite specific variant of '''ECMAv5'''. It is the same Spidermonkey version that Firefox 4 shipped with many years ago, but it is a special build for Oolite. This is the version that we have almost always had and it has not changed between versions of the game. [https://bb.oolite.space/viewtopic.php?p=256623#p256623 It is unlikely to change] in the future.&lt;br /&gt;
&lt;br /&gt;
JavaScript is the preferred scripting interface for worldScripts and shipScripts. The legacy scripting interface (see [[script.plist]]) still works, but is not supported. See [[Scripting Oolite with JavaScript]] for more information.&lt;br /&gt;
&lt;br /&gt;
Note that most of the [[Legacy Scripting]] still works perfectly well (XML &amp;amp; OpenStep)!&lt;br /&gt;
&lt;br /&gt;
==Hidden settings==&lt;br /&gt;
There are several [[Hidden_Settings_in_Oolite]] that make life for an oxp creator easier. One of them is the setting '''always-flush-cache'''. It makes every startup a bit slower, but it prevents Oolite working with cached data instead of your newly changed file. For someone that only does occasional oxp changes it will be enough to flush the cache by holding the shift key when starting Oolite but if you are writing oxps, this is the way to prevent frustrations.&lt;br /&gt;
&lt;br /&gt;
==Cookbook==&lt;br /&gt;
* How to add dials to a HUD: https://bb.oolite.space/viewtopic.php?p=290352#p290352&lt;br /&gt;
* How to limit a station's shipyard to only offer a defined set of ships: https://bb.oolite.space/viewtopic.php?p=293174#p293174&lt;br /&gt;
* Ship/Station design with external docking ports: https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=21574&amp;amp;p=293777&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*'''Context''': [https://bb.oolite.space/viewtopic.php?p=275434#p275434 What can OXP's ''not'' change?] (2021)&lt;br /&gt;
*It is often helpful to dip one's toes (claws?) in the water by experimenting with tweaking oxp's first: see [[How to tweak OXZ's]]&lt;br /&gt;
*[[:Category:Oolite scripting]]&lt;br /&gt;
*[[Javascript Operators]]&lt;br /&gt;
*[[:Category:Oolite JavaScript Reference‎]]&lt;br /&gt;
*[[:Category:Oolite Development]]&lt;br /&gt;
*[[User:Montana05|Montana05]] recommends https://www.w3schools.com/js/js_array_sort.asp for better knowledge of the js on Oolite.&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=12149 OXP Development Best Practices] (2012-7)&lt;br /&gt;
*Some older oxp's are written in [[Legacy Scripting]]&lt;br /&gt;
*[https://github.com/OoliteProject/oolite/find/master Github] vanilla game code repository - the resources section at the bottom of the page contains possibly useful parts of vanilla game coding, with occasional annotations.&lt;br /&gt;
=== Tools ===&lt;br /&gt;
*[[List of software]] that is helpful for creating OXPs (eg. editorial packages for javascript or 3D model creators)&lt;br /&gt;
*[[List of Planets used in OXPs]] for planets already used by other OXPs. Helps authors avoid overlapping with or breaking other OXPs.&lt;br /&gt;
*[[OXP_howto_Game_Balance|OXP howto Game Balance]] to avoid conflicts from accidental gameplay changes.&lt;br /&gt;
*[[Long Range Scanner]] is an OXP which allows you to jump around the star system to objects you have placed there - or to jump around within the galaxy. A &amp;quot;cheat&amp;quot; for players, but a useful tool for some OXP designers.&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=13422 What Tools Are Good For Windows OXP Programming?] (2013)&lt;br /&gt;
&lt;br /&gt;
==== Tutorials for Tools ====&lt;br /&gt;
*[https://web.archive.org/web/20050317033938/http://oolite.aegidian.org/cyoship/ Oolite Tutorial - Meshwork Shipbuilding (OSX only)] via WayBack Machine&lt;br /&gt;
*[https://web.archive.org/web/20060621211940/http://oolite.aegidian.org/cyoship2/ Oolite Tutorial - Wings 3D Shipbuilding (Cross-platform)] via WayBack Machine&lt;br /&gt;
&lt;br /&gt;
=== OXP tutorials ===&lt;br /&gt;
Oolite changes affecting different varieties of OXPs happened with v.1.76 (2011), v.1.80 (2014) &amp;amp; v1.82 (2015).&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=20937 MasterClass: How to OXP (updating SoThisTC)] by [[User:Spara|Spara]] who teaches computing in Helsinki! (2021)&lt;br /&gt;
*[https://archive.org/details/GettingStartedWithOoliteOXZDevelopment Getting started with OXZ Development] ''An .odt for Open Office'': By Bugbear (2012). 2 example OXPs: a pirate-ridden solar systems warning tool &amp;amp; Witchspace Blockades [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17731 BB Thread (2015)]&lt;br /&gt;
*[[OXP_tutorial|OXP Tutorial]] creating a new spaceship - and then tweaking it in different ways (2007-13)&lt;br /&gt;
*[[OXP howto dockable stations|Creating a dockable station]] (2009-10)&lt;br /&gt;
*[[User:Shipbuilder|Shipbuilder]] wrote a Shaders tutorial with resource packs (2013)&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18837 OXP Performance] BB thread (mostly 2017-8): improving your OXP (speed, ''etc'')&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18284 The bare minimum for a game-recognizable ship OXP] (thread: 2016)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=14135 How to make a simple OXP?] (thread: 2013) 3 OXPs - pop-up message at docking, set only Pythons for sale at Lave shipyard, create a new ship. &lt;br /&gt;
&lt;br /&gt;
*[[Escape Pod Locator OXP]] has notes on programming on the bottom of the page regarding beacon transmission &amp;amp; location&lt;br /&gt;
&lt;br /&gt;
=== Helpful OXPs for your OXP===&lt;br /&gt;
There are a number of OXPs which have been specifically written to allow your OXP to use them:&lt;br /&gt;
*[[Library OXP|Library]]: a collection of useful snippets and helpers. Its main purpose is to simplify or unify some common tasks used by OXPers. &lt;br /&gt;
:*It can add dynamic maps, music &amp;amp; animation. &lt;br /&gt;
:*It adds a Personal Assistant Device for the player with details of people met, medals awarded, Guild rankings, ''etc''.&lt;br /&gt;
:*It allows in-game configuration of an oxp by the player.&lt;br /&gt;
:*Add-on modules allows inspection of models and materials for creation of ship &amp;amp; station oxps.&lt;br /&gt;
*[[GalCop Missions]] introduces many new pieces of equipment with wide varieties of use (Cargo Stoppers, Ejection Dampers, Range Finders, Solar Radiation Disrupter Missiles, Seismic Resonance Scanners, Patient Transport Modules ''etc''). It can also help with creating missions (it contains over 80 varieties - see the spoiler button on that wiki page).&lt;br /&gt;
*[[Diplomancy]] can be used to make states of war impact personally on the player&lt;br /&gt;
*[[System Data Config]] helps re-organise the F7 screen to squeeze more information onto it&lt;br /&gt;
&lt;br /&gt;
==== While docked/stations ====&lt;br /&gt;
*[[HD Backgrounds]] can provide a High Definition screenshot of a station lobby or other such for interaction with the player&lt;br /&gt;
*[[BGS]] can help organise a customised docking or launching sequence (see the [[Riredi OXP]] or the [[Kiota Stations]]).&lt;br /&gt;
*[[GNN]] can broadcast your news alerts (see how [[Diplomancy]] uses it for war &amp;amp; peace declarations). GNN also contains '''PhraseGen''' which can be used for randomizing text descriptions.&lt;br /&gt;
*[[Station Validator]] will remember that a station has been destroyed and stop Oolite automatically replacing it on the next visit to the system&lt;br /&gt;
*[[Station Dock Control]] can help interraction with other ships docked at the station&lt;br /&gt;
*[[Bulletin Board System]] can help manage interractions at the station&lt;br /&gt;
*[[Email System OXP]] can also help manage interractions at the station&lt;br /&gt;
*[[Ship Storage Helper]] allows storage of the player's ship whilst doing other things (such as flying another ship!)&lt;br /&gt;
*[[Equipment Storage OXP]]  allows storage of equipment/goods whilst doing other things&lt;br /&gt;
*[[Ship's Library]] allows reading documents with illustrations while docked (see the included Ship's Manual)&lt;br /&gt;
*[[Station Options]] allows complex configurations of equipment, but could potentially also be used for managing dialogue with NPCs&lt;br /&gt;
*[[Life in the Frontier]] was being expanded to cover more stations (Dodo/Ico/Rock Hermits and potentially OXP stations), but is currently mothballed. &lt;br /&gt;
&lt;br /&gt;
==== In-flight ====&lt;br /&gt;
*[[MFD - Broadcast Comms]] can be used for in-flight interaction with NPC's&lt;br /&gt;
*[[Bigships]] can be used to help with the AI for massive space ships which cannot dock at orbital stations&lt;br /&gt;
*[[Montanas Resource Pack 01]] contains a number of resources for use (treasures, containers, escape/survival equipment)&lt;br /&gt;
*[[Star System Lane Indicator]] - the older version contains a very graphical dynamic display (does not function properly, but boy! does it look good!)&lt;br /&gt;
*[[SOTL Exploration]] contains exploration equipment and a non-automatic hyperspace jump&lt;br /&gt;
*[[SOTL Altmap]] contains different politics, markets and NPCs with Torus Drives.&lt;br /&gt;
*[[Resistance Commander]] &amp;amp; [[EscortDeck]] contain mechanisms for &amp;quot;managing&amp;quot; allied ships.&lt;br /&gt;
&lt;br /&gt;
==== Planet Surfaces ====&lt;br /&gt;
*[[Planetfall OXP]] allows landing on the planet (used by [[Feudal States]] for access to the Royal Court, and by [[Astronaut]] for space-jumping)&lt;br /&gt;
*[[Lave is Earth 8k]] contains night-time city lighting&lt;br /&gt;
&lt;br /&gt;
=== Packaging and distribution ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=16688 The All-in-One Guide to OXZ Packaging and Distribution].&lt;br /&gt;
::And see [https://bb.oolite.space/viewtopic.php?p=279034#p279034 this post] for AppleMac issues with the above.&lt;br /&gt;
* Cim created [https://github.com/cim--/oxp-build-scripts some scripts to ease packaging] a project.&lt;br /&gt;
*[[OXP Distribution]] The All-in-One Guide to OXP Packaging and Distribution (and [[OXP_standards]] for advice on which ways of doing things are supported and which are not).&lt;br /&gt;
* Since the domain change to [https://oolite.space] the distribution of expansions has changed slightly. The new version is still subject to discussions and might change again. Here is a [[Publishing Procedure Comparison]].&lt;br /&gt;
*[[Gameplay_and_Balance_Indicator|Gameplay Balance Indicator]] and [[OXP_Levelindicators|Difficulty Indicator]]. Add these to your wiki page to show effects on Game Balance and the Difficulty Level of your OXP/OXZ. The '''first''' indicates the impact on play (equipment making the game easier/more difficult), the '''second''' indicates the suggested [[Elite Rating]] needed to attempt the mission/defeat the ship ''etc''.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_Missions&amp;diff=90054</id>
		<title>Oolite Missions</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_Missions&amp;diff=90054"/>
		<updated>2026-07-28T11:25:59Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* Musings */ Updated GalCop Missions description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Important note''': for many of these missions, important information/reminders are displayed on the [[F5 screen (commander &amp;quot;jameson&amp;quot;: details)|F5F5 screen]].&lt;br /&gt;
&lt;br /&gt;
The Constrictor Hunt mission crucially uses the [[F7 screen (data on &amp;quot;system&amp;quot;)|F7 screen]] for gossip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Missions are from OXPs unless indicated otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Musings ==&lt;br /&gt;
Note that some of the missions OXPs are rather more than &amp;quot;just&amp;quot; missions. The Assassins Guild rebuilds the 7th Galaxy, Iron Raven does the same for G8. Ionics provides a unifying theme for the north-east corner of G2, with Resistance Commander doing the same for the south of G6.&lt;br /&gt;
&lt;br /&gt;
And various of the Thargoid-related missions (Cataclysm, TCAT, Thargoid Wars ''etc'') create a veritable armageddon against the Thargoids.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border-collapse: collapse; border-width: 1px; border-style: solid; border-color: #ffffff; table-layout: fixed; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;165px&amp;quot; style=&amp;quot;margin: 0px; padding: 0px; border-width: 1px; border-style: solid; border-color: #ffffff; background-color: #e7e7ff; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot; |&amp;lt;p style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;Mission&amp;lt;/p&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;50px&amp;quot; style=&amp;quot;margin: 0px; padding: 0px; border-width: 1px; border-style: solid; border-color: #ffffff; background-color: #e7e7ff; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot; |&amp;lt;p style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;Start&amp;lt;/p&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;45px&amp;quot; style=&amp;quot;margin: 0px; padding: 0px; border-width: 1px; border-style: solid; border-color: #ffffff; background-color: #e7e7ff; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot; |&amp;lt;p style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;Kills&amp;lt;/p&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200px&amp;quot; class=&amp;quot;unsortable&amp;quot; style=&amp;quot;margin: 0px; padding: 0px; border-width: 1px; border-style: solid; border-color: #ffffff; background-color: #e7e7ff; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot; |&amp;lt;p style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;Other Requirements&amp;lt;/p&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;1500px&amp;quot; class=&amp;quot;unsortable&amp;quot; style=&amp;quot;margin: 0px; padding: 0px; border-width: 1px; border-style: solid; border-color: #ffffff; background-color: #e7e7ff; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot; |&amp;lt;p style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;Notes/Description&amp;lt;/p&amp;gt;&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=Constrictor Hunt (Native)&lt;br /&gt;
|start=G1, G2&lt;br /&gt;
|kills=256&lt;br /&gt;
|desc=Native There is a [[Mission One - FAQ|FAQ]] available.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=Thargoid Plans (Native)&lt;br /&gt;
|start=G3&lt;br /&gt;
|kills=1281&lt;br /&gt;
|req= Finished Constrictor Hunt&lt;br /&gt;
|desc=Native See [https://bb.oolite.space/viewtopic.php?p=252452#p252452 here] for tips if needed!}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=Nova (Native)&lt;br /&gt;
|start=G4&lt;br /&gt;
|req=Galactic Hyperdrive&lt;br /&gt;
|desc=Native}} See [https://bb.oolite.space/viewtopic.php?p=177657#p177657 here] and following for some Dark Side details of this mission&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=Cloaking Device (Native)&lt;br /&gt;
|start=G5&lt;br /&gt;
|desc=Native}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=Trumbles (Native)&lt;br /&gt;
|start=any&lt;br /&gt;
|req=Balance of 6553.5₢ or more&lt;br /&gt;
|desc=Native}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[The Assassins Guild OXP|Assassins Guild]]&lt;br /&gt;
|start=G7&lt;br /&gt;
|kills=200&lt;br /&gt;
|desc=By [[User:LittleBear|LittleBear]]: 21 missions involving murder to order. Progress depends on your Elite and Guild Ratings. Also see [[Victim 11]]}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Aquatics OXP|Aquatics - The Kraken IV]]&lt;br /&gt;
|start=G3&lt;br /&gt;
|req=Good standing with the Corporation&lt;br /&gt;
|desc=By [[User:Thargoid|Thargoid]]: A mission based out of the [[Aquarian Shipbuilding Corp. HQ]] in the Aqualina system.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Asteroid Storm]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=64&lt;br /&gt;
|desc=By [[User:LittleBear|LittleBear]]: A station comes under threat from a large asteroid strike. Begins when docked in Leesti.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Black Monk Monastery|Bank of the Black Monks]]&lt;br /&gt;
|start=any&lt;br /&gt;
|desc=By [[User:LittleBear|LittleBear]]: Mini-mission. Deal with the loan sharks (if you take out a loan). Begins when docked at any Black Monk Monastery.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[BlackjacksBullion OXP|Blackjack's Bullion]]&lt;br /&gt;
|start=G2&lt;br /&gt;
|desc=By Rustybolts: Starts at Telace as Commander Blackjack arrives via escape pod.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Cataclysm OXP|Cataclysm]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=5200&lt;br /&gt;
|req=Finished Thargoid Plans&lt;br /&gt;
|desc=By [[User:Commander McLane|Commander McLane]], updated by [[User:Phkb|Phkb]]: Sends you on a mission far bigger than anything you have done for the Navy so far.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Coyote's_Run|Coyote's Run]]&lt;br /&gt;
|start=G5&lt;br /&gt;
|kills=&lt;br /&gt;
|req=Cloaking Device&lt;br /&gt;
|desc=By [[User:Cody|Cody]] &amp;amp; [[Okti]]: The mission will commence when the player jumps into Laquused in G5, with a Cloaking Device.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Curse_of_the_Black_Sunspot|Curse of the Black Sunspot]]&lt;br /&gt;
|start=G3&lt;br /&gt;
|kills=512&lt;br /&gt;
|req=&lt;br /&gt;
|desc=By [[User:Cim|Cim]]: Sometimes pirates are more than they seem}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Deposed OXP|Deposed]]&lt;br /&gt;
|start=G4&lt;br /&gt;
|kills=1700&lt;br /&gt;
|desc=By Cmdr. Wombat: A series of missions connected by a plot. Triggers the Nova mission if you haven't finished it yet.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Escort Contracts OXP|Escort Contracts OXP]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=any&lt;br /&gt;
|req=Clean legal status&lt;br /&gt;
|desc=By [[User:Capt. Murphy|Capt. Murphy]]: Allow players to enter into short-term escort contracts with NPC lone wolf traders.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Feudal States]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=&lt;br /&gt;
|desc=By [[User:Ramirez|Ramirez]]: Mini-missions on behalf of various Royal Courts.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[The Galactic Almanac OXZ|The Galactic Almanac]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=any&lt;br /&gt;
|req= Must also have GNN News Installed&lt;br /&gt;
|desc=By [[User:LittleBear|LittleBear]]: A scavenger hunt through Galaxy 1. Keep an eye on the News and wait to be contacted.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Galactic Navy OXP|Galactic Navy]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=128&lt;br /&gt;
|desc=By Matt634: The Galactic Navy needs you. Begins when docked at any SecCom Station.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Galactic Navy OXP|Galactic Navy Spec Ops]]&lt;br /&gt;
|start=G6&lt;br /&gt;
|kills=128&lt;br /&gt;
|req=Finished 10 Reserve Sorties&lt;br /&gt;
|desc=By Matt634:  Begins when docked at any SecCom Station. There is a [[Galactic Navy Spec Ops Walkthrough|walkthrough]] available if you need hints.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[GalCop Missions]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills= &lt;br /&gt;
|req=Occasional equipment needs&lt;br /&gt;
|desc=By [[User:Phkb|Phkb]]:  Adds over 80 different local mini-missions to the [[Bulletin Board System]]}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[GalCop's Most Wanted]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills= &lt;br /&gt;
|req=Various equipment needs&lt;br /&gt;
|desc=By [[User:Phkb|Phkb]]:  Adds mini-missions for Bounty Hunters}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Illegal Goods Tweak OXP|Illegal Goods Tweak OXP]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=any&lt;br /&gt;
|req=Released slaves to customs.&lt;br /&gt;
|desc=By [[User:Capt. Murphy|Capt. Murphy]]: Short reward mini-missions offered by rescued ex-slaves.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Ionics OXP|Ionics]]&lt;br /&gt;
|start=G2&lt;br /&gt;
|desc=By [[User:Galileo|Galileo]]: A series of missions featuring the Ionics Company of Zaria. Begins at Zaria.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Iron Raven|Iron Raven]]&lt;br /&gt;
|start=G8&lt;br /&gt;
|desc=By [[User:Ramirez|Ramirez]]: Multi-stage mission to investigate a dangerous conspiracy on behalf of GalCop High Command.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Lave Academy OXP|Lave Academy]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|desc=By [[User:Thargoid|Thargoid]]: Training mini-missions.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=9135&amp;amp;hilit=linkg7 LinkG7]&lt;br /&gt;
|start=G7&lt;br /&gt;
|desc=By [[Okti]]: Find a way across the great rift.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Localhero OXP|Localhero]]&lt;br /&gt;
|start=G1-G5&lt;br /&gt;
|kills=50&lt;br /&gt;
|req=Must be lawful&lt;br /&gt;
|desc=By [[User:Svengali|Svengali]]: Support the local police to find, destroy and capture ex-general Harkov and his group.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[LongWay_OXP|Long Way Around]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|desc=By [[User:Aegidian|Aegidian]]: A transport mission well suited to the novice in Galaxy 1. Begins at Biarge.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[GalDrivePod#Lost_Worlds_Grand_Tour|Lost Worlds Grand Tour]]&lt;br /&gt;
|start=G6&lt;br /&gt;
|kills=N/A&lt;br /&gt;
|req=[[GalDrivePod]]&lt;br /&gt;
|desc=By [[User:Smivs|Smivs]]: A tour of the Lost Worlds in Galaxy 7, and then to Oresrati in G8. Tour ends back in G1.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Lovecats.oxp|Love Cats]]&lt;br /&gt;
|start=G4&lt;br /&gt;
|req=Finished Constrictor Hunt&lt;br /&gt;
|desc=By [[JohnSmith]]: Begins when docked.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Military Fiasco]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=1000&lt;br /&gt;
|req=Must be lawful&lt;br /&gt;
|desc=By [[User:Murgh|Murgh]]: A mission for the Navy available to a Commander with more than 1,000 kills.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[MincePie]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=&lt;br /&gt;
|req=Mince Pies&lt;br /&gt;
|desc=By Araser: Even dafter than the [[Santa]] oxp, which this is a development for.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Oo-Haul|Oo-haul Escort Missions]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=32&lt;br /&gt;
|req=Good standing with Oo-Haul corp.&lt;br /&gt;
|desc=By [[User:Dr. Nil|Dr. Nil]]: Escort a hauler safely to its destination. Must be docked at a Constore. [[Your Ad Here!]] required.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Random Hits OXP|Random Hits]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=32&lt;br /&gt;
|desc=By [[User:LittleBear|LittleBear]]: Get contracts for bounty hunting at any Seedy Space Bar. Special Missions for successful hunters.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[RRS_Group|Rescue Stations]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=&lt;br /&gt;
|desc=By [[User:Cim|Cim]]: Rescue and recovery missions for contract pilots.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Resistance Commander]]&lt;br /&gt;
|start=G5&lt;br /&gt;
|kills=1000&lt;br /&gt;
|req=Ship with at least 6 missile pylons&lt;br /&gt;
|desc=By [[User:Ramirez|Ramirez]]: Engage in a long campaign against the Biesmaan Dictatorship and command a small squadron.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Runner G5 Challenge]]&lt;br /&gt;
|start=G5&lt;br /&gt;
|kills=&lt;br /&gt;
|req=&lt;br /&gt;
|desc=By galpet: Complete a non-stop 50LY journey from Rianin to Ceered in Galaxy 5. En route collect 750TC cargo and 100 kills.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Scourge of the Black Baron]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=151&lt;br /&gt;
|desc=By [[User:Rxke|Rxke]]: A sequel to the [[LongWay_OXP|Long Way Around]], featuring combat and transport missions. Begins at Teesdi.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Shrews Rights]]&lt;br /&gt;
|start=G2&lt;br /&gt;
|kills=512&lt;br /&gt;
|desc=By [[User:Zafrusteria|Zafrusteria]]: Save the Shrews! Begins at Arries.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Spy Hunter OXP|Spy Hunter]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=512&lt;br /&gt;
|desc=By [[User:Selezen|Selezen]]: A mission for the Galactic Navy. Starts at Inines.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Stealth OXP|Stealth]]&lt;br /&gt;
|start=G3&lt;br /&gt;
|desc=By [[User:Thargoid|Thargoid]]: Small mission to showcase the new scanner capabilities of 1.74 and to introduce stealth ships.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Stellar Serpents OXP]]&lt;br /&gt;
|start=Any&lt;br /&gt;
|desc=By [[User:Thargoid|Thargoid]]: Hunt the stellar serpents.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Taranis OXP|Taranis]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|kills=128&lt;br /&gt;
|req=Must be clean&lt;br /&gt;
|desc=By Roberto: Begins at Taranis Corporation HQ, Lerelace.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Taxi Galactica]]&lt;br /&gt;
|start=Any&lt;br /&gt;
|desc=By [[User:Pleb87|Pleb87]]: Mini-mission taxi tasks. Begins at any Corporate state taxi station.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[TheCollector|The Collector]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|desc=By Mossfoot &amp;amp; [[User:Norby|Norby]]: Find the rich man and do the jobs he offer.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Thargoid Wars|Thargoid Wars]]&lt;br /&gt;
|start=G2-G8&lt;br /&gt;
|desc=By Cmdr. Wombat: War with the Thargoids intensifies featuring new attack and defense missions.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Tionisla Reporter]]&lt;br /&gt;
|start=G1&lt;br /&gt;
|desc=By [[User:Eric Walch|Eric Walch]]: A small mission for the Tionisla Chronicle.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[TCAT OXP|To Catch A Thargoid (TCAT)]]&lt;br /&gt;
|start=G3&lt;br /&gt;
|kills=1500&lt;br /&gt;
|req=Finished Thargoid Plans&lt;br /&gt;
|desc=By [[User:Thargoid|Thargoid]]: The Bugs are back - follow-up mission to Thargoid Plans. May be offered while docking.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Trident Down]]&lt;br /&gt;
|start=G4&lt;br /&gt;
|kills=512&lt;br /&gt;
|desc=By [[User:Ramirez|Ramirez]]: Investigate a vicious attack on an Trident Shuttle operated by [[Executive SpaceWays]].}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[UPS Courier|UPS Courier Company]]&lt;br /&gt;
|start=any&lt;br /&gt;
|desc=By [[User:Eric Walch|Eric Walch]]: Take goods or documents from system to system and be awarded with combat mini-missions.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Vector OXP|Vector]]&lt;br /&gt;
|start=any&lt;br /&gt;
|kills=150&lt;br /&gt;
|req=300 kills for the background story&lt;br /&gt;
|desc=By [[User:Svengali|Svengali]]: Special feature - 'Richmans World' - a unusual mission type. [[Snoopers|Snoopers]] required.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Victim 11]]&lt;br /&gt;
|start=G7&lt;br /&gt;
|req=Finished Assassins Guild&lt;br /&gt;
|desc=By [[User:Fatleaf|Fatleaf]]:  A follow-up mission to [[The Assassins Guild OXP|Assassins Guild]] that picks up some loose ends.}}&lt;br /&gt;
{{OoliteMissionTableRow&lt;br /&gt;
|name=[[Xeptatl's_Sword|Xeptatl's Sword]]&lt;br /&gt;
|start=G5&lt;br /&gt;
|req=None&lt;br /&gt;
|desc=By [[User:Smivs|Smivs]]: A mission taking you around the 'Eight' twice in a bid to thwart the Thargoids evil plans.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that a number of missions are marked as Deprecated. &lt;br /&gt;
:In some cases, this is due to changes in Oolite. Try an older version from the links [[Oolite|here]].&lt;br /&gt;
:*[[Localhero OXP]] will not work on 1.72 or newer.&lt;br /&gt;
:*[[Vector OXP]] will not work on 1.77 or newer.&lt;br /&gt;
:*[[Xeptatl's Sword]] will not work with 1.82 or newer&lt;br /&gt;
:In other cases, the original plan of the author was banjaxed by the growing plethora of oxp's which defeated the mechanics of the mission (such oxp's as [[Telescope]], fuel tanks, or the various [[Ubership]]s, ''etc''), and in one case it was marked as deprecated. In such cases it will still work (and you can remove some of these oxp's to get the original feel intended for the mission). &lt;br /&gt;
:*[[Cataclysm OXP]] was for many years an example of this with [[User:Commander McLane|Commander McLane]] refusing to update it because he considered it broken as a result.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[OXP List]]&lt;br /&gt;
*[http://www.oolite.org/oxps/ OXZ list] - downloadable through the in-game [[Expansions Manager]]&lt;br /&gt;
*[[Guide to Unlisted OXPs]]&lt;br /&gt;
&lt;br /&gt;
=== The Dark Side ===&lt;br /&gt;
*[[OXP howto]] introduction to writing OXPs&lt;br /&gt;
*[[List of Planets used in OXPs]] for reference for OXP writers to avoid clashes!&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18240 Mission packs and the grind] (2016) - discussion of abstract missions&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:OXP Lists]]&lt;br /&gt;
[[Category:Missions OXPs| ]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=GalCop_Missions&amp;diff=90053</id>
		<title>GalCop Missions</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=GalCop_Missions&amp;diff=90053"/>
		<updated>2026-07-28T11:23:57Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added strapline at top&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:gcm_mission_example.png|right|500px|Sample mission]]&lt;br /&gt;
Adds over 80 different types of missions.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This OXP adds some local missions to the [[Bulletin Board System]], to hopefully add more things to do in and around each system. Very little by way of new ships, stations, equipment or AI's has been added to the game. The idea was to simply make use of the existing assets in new and (hopefully) interesting ways. &lt;br /&gt;
&lt;br /&gt;
There are a number of different missions available, and the availability of these missions depends on a number of factors (score, system tech level, government type, installed equipment etc). Missions can be offered in a number of ways: via the Bulletin Board, from scooped escape pods, from passing ships, or from emails.&lt;br /&gt;
&lt;br /&gt;
This OXP also includes the concept of &amp;quot;mission chains&amp;quot;, in that completing one mission may trigger a second mission, which could then trigger a third mission, and so on. Sometimes the player is given an option as to whether they want to perform the secondary mission, and sometimes they won't be.&lt;br /&gt;
&lt;br /&gt;
Generally, all the missions are optional. If you don't visit the Bulletin board, you won't see what's on offer, and very little in the game will change if you don't do the missions (although see the two sections below: Gameplay Impacts and Disease Outbreaks). You may occasionally be offered a mission when scooping escape capsules, and sometimes passing ships will pass on requests.&lt;br /&gt;
&lt;br /&gt;
===Gameplay impacts=== &lt;br /&gt;
Some of the missions in this pack can impact on other areas of the game. For instance, one type of mission, if completed successfully, will result in a higher frequency of mis-jumps to a particular system. Some missions can effect the commodities of a station, or the availability of equipment at a station. It will hopefully be obvious when these changes take place (ie as a result of completing a mission).&lt;br /&gt;
&lt;br /&gt;
===Disease Outbreaks===&lt;br /&gt;
Another potential impact is on systems that are reported to have disease outbreaks. If a major outbreak occurs, GalCop might choose to lock down the system, preventing the disease from spreading off-world. When this happens, you might find you can’t jump to a particular system without a permit. Some pilots have reported there are ways around GalCop’s restrictions, but even if you do, you might find that GalCop stations in that system will physically prevent you from docking, and inattentive pilots might find their ship taking damage rather than entering the docking slot. &lt;br /&gt;
&lt;br /&gt;
When a disease outbreak restriction is in effect, there might be missions you can undertake that will grant you the required permissions and passcodes to successfully enter the system and dock at the main station. These missions will likely be in systems close to where the outbreak is occurring.&lt;br /&gt;
&lt;br /&gt;
==Mission Categories==&lt;br /&gt;
This mission pack contains over 80 different missions and variations, but most of the missions fall into one of these general categories.&lt;br /&gt;
* '''Hunter''' - Hunt down and destroy certain ships (asteroids, pirates, traders, Thargoids, police, etc).&lt;br /&gt;
* '''Recovery''' - Find and collect certain items (cargo, derelicts, black boxes, data packets, etc).&lt;br /&gt;
* '''Rescue''' - Locate and collect escape pods, deliver critical equipment to stricken ships, deliver medical supplies.&lt;br /&gt;
* '''Delivery''' - Take cargo between one point and another, but outside the normal cargo mission system.&lt;br /&gt;
* '''Covert''' - Install spying software, disrupt station economies, hack witchpoint beacons.&lt;br /&gt;
* '''Donation''' - Donate money or cargo to charities to gain economic or legal advantages.&lt;br /&gt;
&lt;br /&gt;
==Required Equipment==&lt;br /&gt;
[[Fuel_Scoops|Fuel/Cargo scoops]] and the [[Advanced_Space_Compass|Advanced Space Compass]]  are required for many of the missions. If your ship lacks these items, certain missions will be unavailable.&lt;br /&gt;
&lt;br /&gt;
[[BroadcastComms_MFD|Broadcast Comms MFD]] is a requirement for many of the missions, as it provides an interface for ship-to-ship communications. If you have not purchased this item, some of the missions will be unavailable.&lt;br /&gt;
&lt;br /&gt;
==New Equipment==&lt;br /&gt;
Some new equipment has been added with this OXP.&lt;br /&gt;
[[File:Range Finder (1).png|right|320px]]&lt;br /&gt;
[[File:Range Finder (2).png|right|320px]]&lt;br /&gt;
===Range Finder MFD===&lt;br /&gt;
When this item is purchased, installed and primed, you can press the &amp;quot;b&amp;quot; key (Mode) to switch the mode between escape capsules, black boxes, asteroids, ships, communication relays and cargo pods. Pressing the &amp;quot;n&amp;quot; (Activate) key will initiate a scan of the local area, up to a distance of 200km. The scan will take approximately 2 seconds to run, but will be run continuously until deactivated with the &amp;quot;n&amp;quot; key again. Any objects of the selected type within range will be displayed, along with the distance to the object. A &amp;quot;+&amp;quot; or &amp;quot;-&amp;quot; indicator will be displayed next to each item, showing whether you are moving away from (+), or towards (-), the target. When the target is less than 50km away, a simplified directional indicator will be shown instead, but outside this distance, the range finder does not provide directional information. The information returned by the scan is displayed in an MFD, so you will need to select an MFD slot (using the &amp;quot;:&amp;quot; key) and then select the Range Finder MFD (using the &amp;quot;;&amp;quot; key).&lt;br /&gt;
&lt;br /&gt;
  Direction indicators when distance &amp;lt; 50km: &lt;br /&gt;
    O - Target is generally ahead of you&lt;br /&gt;
    o - Target is ahead of you.&lt;br /&gt;
    X - Target is directly ahead of you.&lt;br /&gt;
    &amp;lt; - Target is to the left&lt;br /&gt;
    &amp;gt; - Target is to the right&lt;br /&gt;
    ^ - Target is above you&lt;br /&gt;
    v - Target is below you&lt;br /&gt;
    A - Target is behind you (ie Aft)&lt;br /&gt;
&lt;br /&gt;
  Range Finder MFD&lt;br /&gt;
  Techlevel: 5&lt;br /&gt;
  Price: 250 cr&lt;br /&gt;
&lt;br /&gt;
Note: When the Range Finder is activated, there will be a drain on your ships energy. If the [[Ship Configuration OXP|Ship Configuration OXP]] is installed, engaging the Range Finder will also generate cabin heat.&lt;br /&gt;
&lt;br /&gt;
===Range Finder Extender===&lt;br /&gt;
An additional device, a Range Finder Extender, which increases the range of the scanner to 500km, as well as boosting the range for the simplified directional indicator to 75km.&lt;br /&gt;
&lt;br /&gt;
  Range Finder Extender&lt;br /&gt;
  Techlevel: 9&lt;br /&gt;
  Price: 2650 cr&lt;br /&gt;
&lt;br /&gt;
===Comms Relay Beacon Switch===&lt;br /&gt;
This device will be issued to the player when attempting particular missions, although it can also be purchased independently from TL3 systems for 60cr. It is a primable piece of equipment that will communicate with any communication relays in the system and request the beacon to be switched on for a short period of time. The device can be used 3 times before needing to be recharged. Using the device will incur a 5% penalty on whatever mission the communication relay relates to.&lt;br /&gt;
&lt;br /&gt;
  Comms Relay Beacon Switch&lt;br /&gt;
  Techlevel: 3&lt;br /&gt;
  Price: 60 cr&lt;br /&gt;
&lt;br /&gt;
===Comms Relay Beacon Switch Recharge===&lt;br /&gt;
This item will replace all the degraded parts of the switch, allowing it to be used 3 more times. The cost will vary, based on how degraded the current parts are. It is available in all systems.&lt;br /&gt;
&lt;br /&gt;
===Cargo Stopper===&lt;br /&gt;
This device makes use of the [[Tractor Beam|tractor beam]] which forms part of the cargo scoops. When your ship is aimed at cargo cannisters that are floating away, it will automatically use the tractor beam to bring the cargo to a stop. Cargo must be within 2km of your ship, and in the centre area of your front viewscreen, otherwise the tractor beam can't reach it.&lt;br /&gt;
&lt;br /&gt;
  Cargo Stopper&lt;br /&gt;
  Techlevel: 6&lt;br /&gt;
  Price: 30 cr&lt;br /&gt;
&lt;br /&gt;
===Ejection Damper===&lt;br /&gt;
This device attaches to the end of the cargo scoop, and when engaged, will apply some force to any ejected item so that it will slow to a stop within a short period of time, rather than floating away at a constant rate. &lt;br /&gt;
&lt;br /&gt;
Once purchased, the unit must be turned on before any cargo will be impacted. Prime the &amp;quot;Ejection Damper&amp;quot; equipment, and press either the &amp;quot;Mode&amp;quot; (b) or &amp;quot;Activate&amp;quot; (n) key to turn the unit on. Pressing those keys a second time will turn the unit off. The unit is automatically turned off whenever your ship docks. &lt;br /&gt;
&lt;br /&gt;
When the unit is on, all cargo ejected will be slowed to a stop. The device can be used on 50 ejected items before it needs to be replaced. &lt;br /&gt;
&lt;br /&gt;
  Ejection Damper&lt;br /&gt;
  Techlevel: 7&lt;br /&gt;
  Price: 100cr&lt;br /&gt;
&lt;br /&gt;
==Required OXP's==&lt;br /&gt;
The following OXP's are listed as required:&lt;br /&gt;
* [[Bulletin Board System]] - Required as all missions are accessed through this interface.&lt;br /&gt;
* [[BroadcastComms_MFD|BroadcastComms MFD]] - Required for missions that need ship-to-ship communications to take place. Also used for accepting or declining secondary missions.&lt;br /&gt;
* [[Email_System_OXP|Email System]] - Provides another interface for missions to be offered.&lt;br /&gt;
* [[GNN]] - Provides text randomisation system used for mission descriptions. Plus, some news items will be published periodically, which can add some flavour to game events.&lt;br /&gt;
&lt;br /&gt;
==Recommended OXP's==&lt;br /&gt;
The following OXP's are listed as recommended, in that additional text and/or gameplay options will become available if they are installed.&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17846 Manifest Scanner] - Can aid with finding cargo in other ships, which can be very important if you are on a mission to steal certain cargo.&lt;br /&gt;
* [[Cargo_Scanner_OXP|Cargo Scanner]] - Can help with some missions to identify the contents of cargo containers.&lt;br /&gt;
* [[Black Market]] - Some additional opportunities are available through the Black Market interface in this OXP.&lt;br /&gt;
* [[Satellites]] - Some missions are available related to the various satellites created by this OXP.&lt;br /&gt;
&lt;br /&gt;
[[File:F4 Reputation.png|thumb|right|300px|After blasting some local pirates on a number of visits (no missions involved), this Jameson became a &amp;quot;Casual Acquaintance&amp;quot; of Ararus]]&lt;br /&gt;
==What else is in the box?==&lt;br /&gt;
'''Reputations:''' The missions available to the player originate from a number of different entities - governments, corporations, factions of every stripe. As missions are performed for these entities your reputation will increase. However, given the number of entities involved, a new F4 interface screen has been created that combines all reputation information into an easy to read display. Also, any awards received can be displayed as well.&lt;br /&gt;
&lt;br /&gt;
If you have the [[Library OXP]] installed, you additionally have the option of importing a variety of internal and OXP reputations into the screen, rather than having those reputations displayed on the F5F5 Manifest screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Spoiler: show mission list&amp;quot; data-collapsetext=&amp;quot;Hide list&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
This is Phkb's working list, taken from his GalCopBB_Missions.js (April 2026 version) with inclusions from the other scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There seem to be 81 fully functional missions (presumably those with the blue blobs!), with much code already written for the others (I have assumed that the satellite missions are all fully functional). (''Cholmondeley 12:19, 28 July 2026 (BST)'')&lt;br /&gt;
&lt;br /&gt;
''Mission types''&lt;br /&gt;
:*1 - &amp;quot;Cleanup the spaceways&amp;quot;: destroy x number of asteroids in the current system&lt;br /&gt;
:::any system, max of 1 mission of this type&lt;br /&gt;
:*2 - &amp;quot;Making the system safer&amp;quot;: destroy x number of pirates in system y.&lt;br /&gt;
:::any safe system within 7 LY of a feudal or anarchy&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*3 - &amp;quot;Disrupting trade (System authority)&amp;quot;: destroy x number of traders in system y.&lt;br /&gt;
:::any multi-gov or worse, near a safe system&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*4 - &amp;quot;Disrupting trade (Pirate authority)&amp;quot;: destroy x number of traders in system y.&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*5 - &amp;quot;Thargoid hunt&amp;quot; - intentionally misjump between system X and Y and destroy N number of thargoid motherships (not tharglets)&lt;br /&gt;
:*6 - &amp;quot;Collect the deposit&amp;quot; (System authority): find dumped cargo in system X, deliver to system Y.&lt;br /&gt;
:::- cargo will be guarded by x number of high quality ships&lt;br /&gt;
:*7 - &amp;quot;Collect the deposit&amp;quot; (Pirate authority)&lt;br /&gt;
:*8 - &amp;quot;Pirates for hire (System authority)&amp;quot;: attack trader ships in system X to get their cargo (n tons required), &lt;br /&gt;
:::return to system Y&lt;br /&gt;
:*9 - &amp;quot;Pirates for hire (Pirate authority)&amp;quot;: attack trader ships in system X to get their cargo (n tons required), return to system Y&lt;br /&gt;
:*10 - &amp;quot;Pirate specific commodity (System authority)&amp;quot;: find an amount of a particular commodity but only when in a particular system and only from piracy (not purchased from stations)&lt;br /&gt;
:*11 - &amp;quot;Pirate specific commodity (Pirate authority)&amp;quot;: find an amount of a particular commodity but only when in a particular system and only from piracy (not purchased from stations)	&lt;br /&gt;
:*12 - &amp;quot;Free slaves&amp;quot;: (if IGT is installed) target all ships entering Communist or higher system, and if carrying slaves, demand cargo.&lt;br /&gt;
:::(Recommend the &amp;quot;Manifest Scanner&amp;quot; be installed)&lt;br /&gt;
:::Use BroadcastCommsMFD to &amp;quot;Demand slaves&amp;quot;&lt;br /&gt;
:::Ship will then have the ability to respond: either &amp;quot;OK&amp;quot; (and slaves are dumped), or &amp;quot;I'm not carrying slaves&amp;quot;, or &amp;quot;Get lost&amp;quot;&lt;br /&gt;
:*13 - &amp;quot;Collect Thargoid wreckage&amp;quot; destroy thargoids and collect wreckage in interstellar space&lt;br /&gt;
:::add scenario where alloys are destroyed during flight&lt;br /&gt;
:::&amp;gt;&amp;gt; prevent thargoid alloys from being relabelled by Smugglers&lt;br /&gt;
:::&amp;gt;&amp;gt; prevent thargoid alloys from being put into storage by SC&lt;br /&gt;
:*14 - Gun runner: attack ships in target looking for firearms&lt;br /&gt;
:*15 - Drug dealer: attack ships in target looking for narcotics&lt;br /&gt;
:*16 - Civil unrest (pirate authority): destroy as many police ships in current system as you can&lt;br /&gt;
:*17 - Garbage scow: dump radioactive waste containers near sun so they are destroyed by heat&lt;br /&gt;
:*18 - Rival gang war (ie pirate hunt) (pirate authority)&lt;br /&gt;
&lt;br /&gt;
''Escape Pods, Black Boxes &amp;amp; Derelicts''&lt;br /&gt;
:*20 - Find escape pod in particular system and rescue occupant&lt;br /&gt;
:::- when in range, send out a distress signal to the player&lt;br /&gt;
:*21 - interstellar escape pod rescue&lt;br /&gt;
:*22 - Find black box in particular system and collect it &lt;br /&gt;
:::- make this different from Rescue Stations by making the black box be inside the hulk of a destroyed ship&lt;br /&gt;
:::- need some way of locating ship hulk - maybe an intermittent comms signal?&lt;br /&gt;
::::- have console message appear saying &amp;quot;Weak navigation beacon signal (&amp;quot;U&amp;quot;) being picked up.&amp;quot;&lt;br /&gt;
::::- player switches ASC to find &amp;quot;U&amp;quot;, gets a heading, then signal disappears. The further away the player is, the more inaccurate the ASC heading is.&lt;br /&gt;
::::- repeat until the player finds the hulk (ie is comes within scanner range)&lt;br /&gt;
::::- give player the option of selling black box on the black market	&lt;br /&gt;
:*23 - interstellar black box recovery&lt;br /&gt;
:*24 - Destroy derelict ship, scoop data cache (special cargo pod) and return it to station&lt;br /&gt;
:*25 - catch runaway escape pod - escape pod ended up with a massive ejection speed and is on it's way to interstellar space. &lt;br /&gt;
:::a regular waypoint will be set showing the pods last position&lt;br /&gt;
&lt;br /&gt;
''Ship-to-ship''	&lt;br /&gt;
:*30 - Find and meet a particular ship in a particular system, will lead to secondary mission&lt;br /&gt;
:::- via BB as a mission&lt;br /&gt;
:::- via email when created as a primary mission&lt;br /&gt;
:::- via a random trader along space lane or at witchpoint&lt;br /&gt;
:*31 - go to waypoint in system y, receive message from comms relay&lt;br /&gt;
:*32 - Meet ship in system X, give them info package&lt;br /&gt;
:*33 - intercept ship carrying stolen data cache,  (use Broadcast comms to demand data pack), which must then be scooped&lt;br /&gt;
:34 - track ship from witchpoint to station, then return&lt;br /&gt;
:::- if player gets with 25 km of target and appears to be following them (eg heading is roughly the same and the player is behind them) they will detect player and flee (mission failed)&lt;br /&gt;
:::- player can get closer if they are cloaked&lt;br /&gt;
:::this needs to be more interesting that just following them to the station. &lt;br /&gt;
:36 - Find ship in system X by sending a pass phrase to any/all ships - one of which will reply with a message with details of where to find special cargo to be returned to system Y&lt;br /&gt;
:37 - Find ship in system X by sending a pass phrase to any/all ships - one of which will reply with a message with details of where to find data point to be returned to system Y&lt;br /&gt;
&lt;br /&gt;
''Delivery-type missions''&lt;br /&gt;
:*40 - Special delivery - player given unique cargo (poss using Smugglers illegal goods) or equipment, must deliver to remote point in destination, paid in precious metals/gems given to the player at the drop point&lt;br /&gt;
:*41 - Special delivery - player given cargo or equipment, must go to system X to find a data point, to get location of drop point in system Y, paid in previous metals/gems given to the player at the drop point&lt;br /&gt;
:*42 - special delivery: transport special computer equipment to ship, without docking at a station (docking will render the mission void)&lt;br /&gt;
:*43	- transport vital equipment to stricken ship to enable it to continue flying&lt;br /&gt;
:::- have option of giving player secondary mission here&lt;br /&gt;
:*44	- transport vital equipment to stricken ship in interstellar space to enable it to continue flying and escape&lt;br /&gt;
:45 - Special delivery (only used for a secondary mission. similar to 40 but without giving cargo) - player told to get Xt of commodity, then deliver to a remote point in destination, paid is precious metals/gems&lt;br /&gt;
:46 - pickup cargo from waypoint, delivery to another waypoint&lt;br /&gt;
:::will need a cargo shepherd, cargo stopper for ejection damper&lt;br /&gt;
:::arrival at one or other of waypoints could result in an ambush&lt;br /&gt;
:47 - (only used for a secondary mission. similar to 41 but without giving cargo) - player told to get Xt of commodity, go to X to find data point to get location of drop point in Y, paid in precious metals/gems&lt;br /&gt;
	&lt;br /&gt;
''Medical missions''&lt;br /&gt;
:*50 - deliver critical medical supplies to systems with &amp;quot;disease&amp;quot; as part of their description&lt;br /&gt;
:::- each day do a check for&lt;br /&gt;
:::(a) is a disease outbreak starting on a system?&lt;br /&gt;
::::only have, at most 2-3 outbreaks at any one time&lt;br /&gt;
::::when starting the outbreak, send a news item to snoopers, and define the end point for the outbreak (2-3 months ahead), define propagation chance&lt;br /&gt;
::::if a player transports medical supplies, take a day off the end point, reduce the propagation chance&lt;br /&gt;
:::(b) is a disease outbreak stopping on a system?&lt;br /&gt;
::::send an item to snoopers&lt;br /&gt;
:::(c) is disease spreading to a neighbouring system&lt;br /&gt;
::::there is a chance disease will spread to a neighbouring system - add it to the outbreak list, with a news item and end point&lt;br /&gt;
::::- medical supply missions offered only from hi-tech worlds (TL 12 and above)&lt;br /&gt;
::::expiry time is based on the volatility of the antibiotics being carried.&lt;br /&gt;
:*51 - Transport critically ill patients from disease system to high tech level destination&lt;br /&gt;
:*52 - Transport virus specimens&lt;br /&gt;
:*53 - collect 3 components for an experimental antidote from different parts of the galaxy&lt;br /&gt;
&lt;br /&gt;
''Software hacking: Witchpoint beacons/stations''&lt;br /&gt;
:*60 - Hacking witchpoints&lt;br /&gt;
:::System authorities in system X are concerned about the flow of pirate traffic through their system. They want to hack into the witchpoint beacons of all systems within a 7LY range, that will enable them to monitor traffic flows into their system, outside of GalCop's purview.&lt;br /&gt;
:::- will require getting within 200m of witchpoint marker, targeting the marker and initiating the special equipment (prime, activate)&lt;br /&gt;
:*61 - Restoring witchpoints&lt;br /&gt;
:::GalCop has become aware of an illegal data stream emanating from witchpoint markers around system X. You need to go to each of the systems listed, and clean the illegal code from the units. &lt;br /&gt;
:::- will require getting within 200m of witchpoint marker, targeting the marker and initiating the special equipment (prime, activate)&lt;br /&gt;
:::- will only be available once mission 60 has been performed at a system&lt;br /&gt;
:*62 - deliver security software payload to pirate rock hermit that track all ships coming and going from the station&lt;br /&gt;
:::- need to use cloaking device to dock with hermit. going red alert within 50k of station will result in mission failure.&lt;br /&gt;
:::&amp;gt;&amp;gt; TEST	&lt;br /&gt;
:*63 - (from non galcop stations) deliver software payload to main station that will disrupt the trade computers (allowing all commodities to be purchased for 1 cr). (possible) for a period of 2 weeks&lt;br /&gt;
:::- when installing the software you will be asked what amount to set commodity prices to. You must enter the number specified in the mission description (either 1 or 99).&lt;br /&gt;
:::- you have to launch within 2 minutes of installing the software (and not redock again for 24 hours) otherwise GalCop will be able to trace the upload and you'll get hit with a massive fine (10000cr, 200 bounty)&lt;br /&gt;
:*64 - (from non galcop stations) deliver software payload to main station that will disrupt the equipment page, preventing any access for a period of 2 weeks.&lt;br /&gt;
:::- you have to launch within 2 minutes of installing the software (and not redock again for 24 hours) otherwise GalCop will be able to trace the upload and you'll get hit with a massive fine (10000cr, 200 bounty)&lt;br /&gt;
:*65 - get galcop system software &lt;br /&gt;
:::Player needs to do a multi-step process in order to get the software:&lt;br /&gt;
:::1. go to destination (a multi-gov of lower system with TL &amp;gt; 7) and pick up customised escape pod from any non-GalCop station (mission screen will inform player of installation)&lt;br /&gt;
:::2. return to system and use customised escape pod at more than 100000k from main station&lt;br /&gt;
:::3. after redocking, launch and wait for the next police ship to launch&lt;br /&gt;
:::4. follow police ship - it will self-destruct after 5-10 minutes, spewing an escape pod and a cargo item. &lt;br /&gt;
:::5. Scoop the cargo item and return it to the source station.&lt;br /&gt;
:66 - Perform scan of rock hermits, possibly while cloaked, return collected data&lt;br /&gt;
:::- need to create scanning equipment item&lt;br /&gt;
:::- harvest phase scanner code from Smugglers for general operating params&lt;br /&gt;
:67 - Perform scan of main station, possibly while cloaked, return collected data&lt;br /&gt;
	&lt;br /&gt;
''Solar activity system missions''&lt;br /&gt;
:*70 - Use scan equipment to take close up measurements of sun&lt;br /&gt;
:::get to fuel scoop dist = ((system.sun.collisionRadius * system.sun.collisionRadius) / system.sun.position.squaredDistanceTo(player.ship.position)) &amp;gt; 0.75;&lt;br /&gt;
:::prime scanning device, activate&lt;br /&gt;
:::await completion&lt;br /&gt;
:::If player retreats before scan is complete, scan will stop, but will restart automatically when in range again (ie it won't start from the beginning)&lt;br /&gt;
:*71 - Recover data cache in low orbit over sun&lt;br /&gt;
:::find data cache&lt;br /&gt;
:::transmit security code&lt;br /&gt;
:::await data package&lt;br /&gt;
:72 - Launch monitoring devices (special cargo or missiles)&lt;br /&gt;
:::must deploy 2 special cargo items from within fuel scoop range, one on the planet side, the other on the far side of the sun.&lt;br /&gt;
:*73 - Variation on 70: Go to another system to pick up new equipment, then bring it back and scan the sun&lt;br /&gt;
:*74 - Take solar data to hi-tech system for analysis&lt;br /&gt;
:75 - return analysed solar data to original system?&lt;br /&gt;
:76 - Recover derelict ship near the sun (derelict will be given a high heat shield rating to prevent destruction)&lt;br /&gt;
:::- Use DeepSpaceDredger for equipment/process of ship recovery?&lt;br /&gt;
&lt;br /&gt;
''Charity missions''&lt;br /&gt;
:*80/81/82/83 - Give credits to entity&lt;br /&gt;
:*84/85/86/87 - purchase and give commodity to entity (slaves for AI, any for the others)&lt;br /&gt;
:88 - purchase any commodity (not slaves, firearms or narcs) and give to AI&lt;br /&gt;
:89 - donation to nationalist entity of system&lt;br /&gt;
:::- reward of better commodity prices?&lt;br /&gt;
:::maybe just better prices on illegals?&lt;br /&gt;
:::- reward of better equipment prices?&lt;br /&gt;
:::- reward of better ship prices?&lt;br /&gt;
:? - donation to religious entity&lt;br /&gt;
&lt;br /&gt;
''War zone missions''&lt;br /&gt;
:*90 - evacuate refugees&lt;br /&gt;
:*91 - transfer injured&lt;br /&gt;
:92 - import weapons&lt;br /&gt;
&lt;br /&gt;
''Earthquake system missions''&lt;br /&gt;
:*100 - Use scan equipment (seismic resonance scanner) to scan planet in 3-4 locations&lt;br /&gt;
:::player must get in low enough orbit to perform scan successfully&lt;br /&gt;
:::have some way of informing the player where the scan points are - waypoints, must be within 2km of waypoints&lt;br /&gt;
:*101 - transport injured people to hi-techlevel system for treatment &lt;br /&gt;
:*102 - destroy a number of asteroids around the planet. The gravitational effect of the asteroids means instability on the surface&lt;br /&gt;
:103 - collect and deliver special equipment&lt;br /&gt;
:*104 - take seismic data to hi-techlevel system for data analysis &lt;br /&gt;
&lt;br /&gt;
''Satellite missions (when Satellites OXP is installed)''&lt;br /&gt;
:*110 - Extract data&lt;br /&gt;
:*111 - Install new firmware&lt;br /&gt;
:*112 - Destroy satellite&lt;br /&gt;
:*113 - Hack satellite&lt;br /&gt;
:*114 - insert data&lt;br /&gt;
&lt;br /&gt;
''Investigations''&lt;br /&gt;
:*130 - a stash of cargo pods with precious metals/gems&lt;br /&gt;
:*131 - a ship graveyard&lt;br /&gt;
:*132 - a damaged escape pod&lt;br /&gt;
:*133 - a pirate base&lt;br /&gt;
:*134 - a thargoid trap&lt;br /&gt;
:*135 - a proximity mine that causes a fuel leak&lt;br /&gt;
:*136 - a spooky noise/comms&lt;br /&gt;
:*137 - a pirate trap&lt;br /&gt;
:*138 - an asteroid field with blackbox&lt;br /&gt;
:139 - (currently unused)&lt;br /&gt;
:*140 - destroy pirate base&lt;br /&gt;
:*141 - deliver goodbye messages&lt;br /&gt;
&lt;br /&gt;
''Defence/escort missions''&lt;br /&gt;
:*150 - defend anaconda from pirates&lt;br /&gt;
:151 - defend liner from pirates (need liners OXP installed)&lt;br /&gt;
:*152 - defend main station from pirates&lt;br /&gt;
:153 - defend other galcop station from pirates (OXP required)&lt;br /&gt;
:*154 - defend main station from thargoids&lt;br /&gt;
:155 - defend other station from thargoids (OXP's required)&lt;br /&gt;
:*156 - defend witchpoint beacon from thargoids&lt;br /&gt;
&lt;br /&gt;
:160 Scan planet from low orbit&lt;br /&gt;
:::requires to maintain a low orbit for a certain amount of time, with some possibility of attack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Download [[Media:GalCopMissions_0.14.oxz|GalCopMissions_0.14.oxz]] (downloaded {{#downloads:GalCopMissions_0.14.oxz}} times).&amp;lt;br/&amp;gt;&lt;br /&gt;
Download [https://app.box.com/s/wo2nfn3j1xkkjinfu3ytgn810r7gkr2v GalCopMissions.zip] v0.14 (extract OXP folder to AddOns)&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 4.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/&lt;br /&gt;
&lt;br /&gt;
Thanks to Svengali and Disembodied for their PhraseGen tool.&amp;lt;br/&amp;gt;&lt;br /&gt;
Thanks to Ramirez for his remote mine model (from the &amp;quot;Missiles and Bombs&amp;quot; OXP).&amp;lt;br/&amp;gt;&lt;br /&gt;
Thanks to these forum members who have submitted bug reports or suggestions that have helped make the OXP better: Nite Owl, herodotus, Astrobe, Damocles Edge, Cody, Bogatyr, pagroove, gsagostinho, Cmd. Northgate, Balisongdalo, javirodriguez, and lohcek.gsagostinho, Cmd. Northgate, Balisongdalo, javirodriguez, and lohcek.&amp;lt;br/&amp;gt;&lt;br /&gt;
Special thanks to cim who has very kindly given permission to include his &amp;quot;Black Box&amp;quot; model from [[RRS_Group|Rescue Stations]] in this OXP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No entry sign image from http://simpleicon.com/no_entry_sign_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Warning sign image from http://simpleicon.com/warning-2.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Tick image from http://simpleicon.com/ok_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Pill image from http://simpleicon.com/pill_3.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Star badge from https://www.iconfinder.com/icons/1031361/award_badge_best_prize_reward_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Round badge from https://www.iconfinder.com/icons/465072/achievement_award_label_medal_politic_win_winner_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Star medal from https://www.iconfinder.com/icons/111092/medal_icon#size=512  (CC BY-SA 3.0)&amp;lt;br/&amp;gt;&lt;br /&gt;
Star medal on ribbon from https://www.iconfinder.com/icons/316245/medal_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Trophy image from http://simpleicon.com/trophy_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Cup image from http://simpleicon.com/cup.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Candle image from http://simpleicon.com/candle-2.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Family image from http://simpleicon.com/chat_10.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Education image from http://simpleicon.com/wp-content/uploads/knowledge.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Head image from https://www.shareicon.net/download/2016/04/17/751132_people_512x512.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Raining image from http://simpleicon.com/wp-content/uploads/lightning__raining_2.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Biohazard image from https://www.freepik.com/free-vector/biohazard-yellow-circle-sign-graphic-illustration_2631298.htm#fromView=search&amp;amp;page=1&amp;amp;position=0&amp;amp;uuid=040f7aab-af6b-4231-9d3d-7f20cc869cd0&amp;quot; Image by rawpixel.com on Freepik&amp;lt;br/&amp;gt;&lt;br /&gt;
Tractor beam sound effect by Finnolia Productions Inc from http://www.soundeffectsplus.com (see licence here: https://www.soundeffectsplus.com/content/license/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/jmorrisoncafe330/sounds/110097/ (license https://creativecommons.org/licenses/sampling+/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/klankbeeld/sounds/169334/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/klankbeeld/sounds/239633/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/flint10/sounds/197547/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/Robinhood76/sounds/219853/ (license https://creativecommons.org/licenses/by-nc/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/Robinhood76/sounds/333230/ (license https://creativecommons.org/licenses/by-nc/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/staticpony1/sounds/249597/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/TheBillinator3000/sounds/333845/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/InSintesi/sounds/346295/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/lennyboy/sounds/275186/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/AlienXXX/sounds/168511/ (license https://creativecommons.org/licenses/by/3.0/)&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
This OXP is discussed at this forum link: https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18745&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
0.14&lt;br /&gt;
* Market prices on disease outbreak systems now boosted, and quantities reduced. If you can get there, it's probably worth it.&lt;br /&gt;
* Added a hint for the player if they attempt to jump into a quarantined system and are blocked by GalCop.&lt;br /&gt;
* Suppressed Rescue Stations ambience for disease systems, to prevent confusion over lockdowns.&lt;br /&gt;
&lt;br /&gt;
0.13&lt;br /&gt;
* Added ability to call functions when testing conditions.&lt;br /&gt;
&lt;br /&gt;
0.12&lt;br /&gt;
* Added Galactic Navy as a reputation entity, and added it to some missions.&lt;br /&gt;
&lt;br /&gt;
0.11&lt;br /&gt;
* Fixed issue with &amp;quot;Recover stolen items&amp;quot; mission, when recovering the stolen documents, where the mission could not be completed.&lt;br /&gt;
* Darkened overlay images for better compatibility with Oolite 1.92.&lt;br /&gt;
&lt;br /&gt;
0.10&lt;br /&gt;
* Fixed more issues with the Satellite missions.&lt;br /&gt;
&lt;br /&gt;
0.9&lt;br /&gt;
* Really corrected issue preventing some satellite missions from being completable if the Galactic Almanac OXP is installed.&lt;br /&gt;
* Sound now plays when a fuel leak occurs.&lt;br /&gt;
* Tweaks to the reputation system to allow for complete localisation through descriptions.plist.&lt;br /&gt;
* Made some reputations visible on the reputations screen, even if the actual reputation value is zero.&lt;br /&gt;
* Fixed issue where some missions with a minimum player score were being offered to players under that value.&lt;br /&gt;
* Moved as much text as possible into descriptions.plist for slightly easier localisation.&lt;br /&gt;
* Added prebuilt descriptions for each mission that uses PhraseGen, so PhraseGen can be avoided when translating text. See notes in descriptions.plist or galcopbb_missiondetails.js for details.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.8.2&lt;br /&gt;
* Fixed referencing errors in spawning scripts for &amp;quot;Recover special cargo&amp;quot; (type 24) and &amp;quot;Black Box recovery&amp;quot; (type 22) missions.&lt;br /&gt;
* Fixed issue with mission state not being correctly recorded when the derelict is destroyed in black box recovery missions (types 22/23).&lt;br /&gt;
* Fixed issue with invalid functions calls for meet ship missions (type 30).&lt;br /&gt;
* Fixed issue with the meet ship mission, delivered by email (type 30), that wouldn't generate a second mission when you meet the target.&lt;br /&gt;
* Added clarity to &amp;quot;Computer Delivery&amp;quot; mission (type 42), so when the target ship is destroyed, the mission is failed.&lt;br /&gt;
* Removed &amp;quot;Computer Delivery&amp;quot; from being a follow-up mission.&lt;br /&gt;
* Fixed reference error bugs with investigation missions (types 130-138).&lt;br /&gt;
* Fixed issue with email missions causing a JS exception.&lt;br /&gt;
* Fixed invalid descriptions lookup key.&lt;br /&gt;
* Grammar corrections.&lt;br /&gt;
&lt;br /&gt;
0.8.1&lt;br /&gt;
* Fixed referencing error in data cache missions (type 41) that was preventing the mission from being completable.&lt;br /&gt;
&lt;br /&gt;
0.8&lt;br /&gt;
* Added a 10% penalty to cargo recovery missions (type 6) for each cargo pod the player destroys.&lt;br /&gt;
* Destroying a cargo pod in a &amp;quot;Cargo Recovery&amp;quot; mission will now trigger a mission status update.&lt;br /&gt;
* Fixed multiple issues with the descriptive text for &amp;quot;Cargo Recovery&amp;quot; missions (type 6).&lt;br /&gt;
* For type 6/7 missions, changed reward calculation to be based on the value of the commodity being collected.&lt;br /&gt;
* Excluded escape pods from being considered in the &amp;quot;Pirates for Hire&amp;quot; mission (type 8) when slaves are being sought.&lt;br /&gt;
* Adjusted spawning rules for ship with stolen items (type 33), to ensure they always spawn in scanner range of the player.&lt;br /&gt;
* Fixed bug in special delivery mission (type 40) that was preventing key information from being updated.&lt;br /&gt;
* Tweaked special delivery mission (type 40) so mission complete percentage doesn't go above 100%.&lt;br /&gt;
* Added missing position to a &amp;quot;Computer delivery&amp;quot; mission (type 42) description.&lt;br /&gt;
* Bug fixes in disease outbreak script (types 50-52).&lt;br /&gt;
* Fixed issue with disease outbreak systems, where system traffic wasn't being reduced, and GalCop station docking wasn't being prevented, in the case where the player doesn't have a valid permit.&lt;br /&gt;
* Added a screen displayed when docking at a station to inform player of disease lockdown systems with 7LY.&lt;br /&gt;
* Fixed grammar in descriptive text for &amp;quot;Hacking the witchpoint&amp;quot; mission (type 60).&lt;br /&gt;
* Fixed issues with mission details and grammar for station disrupt missions (type 63).&lt;br /&gt;
* Fixed issues preventing the disrupt station missions (type 63/64) from being completable.&lt;br /&gt;
* Reduced eject distance for the &amp;quot;Acquire GalCop Software&amp;quot; mission (type 65).&lt;br /&gt;
* Fixed issues preventing the &amp;quot;Acquire GalCop Software&amp;quot; mission (type 65) from being completable.&lt;br /&gt;
* Beacon labels are now turned off after collecting data from Solar Monitors (type 71).&lt;br /&gt;
* Updated manifest and BB status entries for donation missions (types 80-87) so that after a partial donation the status shows how much is remaining to donate.&lt;br /&gt;
* Removed waypoints from terminated or failed Seismic Scan missions (type 100).&lt;br /&gt;
* Fixed issue with manifest entry for &amp;quot;Asteroids in low orbit&amp;quot; mission (type 102), where it did not show progress towards completion.&lt;br /&gt;
* Fixed issue with completing the &amp;quot;Deliver Seismic Scan Data&amp;quot; mission (type 104), where the equipment item wasn't being removed.&lt;br /&gt;
* Destroying a satellite will now update the mission objectives (types 110-124).&lt;br /&gt;
* Corrected issue preventing some satellite missions from being completable if the Galactic Almanac OXP is installed.&lt;br /&gt;
* Fixed bug when spawning satellite defenders that was preventing the AI from being switched.&lt;br /&gt;
* Tweaked how far you have to go past the reference point before the unidentified signal is started in an Investigation mission (type 130-138).&lt;br /&gt;
* Tweaked descriptions for investigation missions to include a &amp;quot;reference point&amp;quot; past which a fair distance must be travelled in order to find the signal.&lt;br /&gt;
* Tweaked the location of unidentified signals in Investigation missions (type 130-138).&lt;br /&gt;
* Fixed spelling in &amp;quot;Defend station from attack&amp;quot; mission (type 152) description.&lt;br /&gt;
* Added some lurking pirates outside pirate bases.&lt;br /&gt;
* Added some extra details to manifest entry for missions that send to you a specific location in a system.&lt;br /&gt;
* Ejection damper now includes &amp;quot;uses left&amp;quot; in a console message when turned on and again when used.&lt;br /&gt;
* Switched a few mission types to stop the clock when complete.&lt;br /&gt;
* Switched a lot of mission types to be completable at any main station.&lt;br /&gt;
* Fixed issue that was preventing the Range Finder equipment from detecting mission-based escape pods.&lt;br /&gt;
* Fixed issue that was preventing the Range Finder equipment from detecting derelict ships.&lt;br /&gt;
* Added a simplified directional indicator to the Range Finder for when scanned items are less then 50km distant.&lt;br /&gt;
* Fixed issue where cargo collected for missions wasn't being handed over correctly and removed from the player's hold.&lt;br /&gt;
* Fixed issue where scooping more cargo than the mission requirement would cause some display and calculation irregularities.&lt;br /&gt;
* Fixed issue where the F5F5 manifest page wasn't getting updated correctly for missions that have multiple items to collect if items had been destroyed.&lt;br /&gt;
* Fixed various other grammar issues in mission text.&lt;br /&gt;
* Fixed grammar in readme.txt.&lt;br /&gt;
* Set global debug flag to false.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
0.7.0&lt;br /&gt;
* Fixed bug in &amp;quot;Extract telescope data&amp;quot; mission, where the wrong satellite types were being used in the calculations.&lt;br /&gt;
&lt;br /&gt;
0.6.9&lt;br /&gt;
* Fixed issue where scooped Thargoid metal fragments were not being counted towards mission objective (type 13).&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.6.8&lt;br /&gt;
* Fixed referencing errors with hit team docking notifications.&lt;br /&gt;
* Fixed JS error when in interstellar space while a slave rescue mission is active.&lt;br /&gt;
* Fixed JS error for disease outbreak systems.&lt;br /&gt;
* Fixed description for blackbox secondary mission that wasn't putting location into the details.&lt;br /&gt;
* Will now try up to 10 times to create a secondary mission after meeting a ship.&lt;br /&gt;
* When no secondary mission can be created after meeting a ship, a message providing some explanation is now given.&lt;br /&gt;
* Improved process for detecting and flagging alloys as having come from Thargoid vessels (type 13).&lt;br /&gt;
* Hit teams bug fixes.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.6.7&lt;br /&gt;
* Added mission type 18 to available missions.&lt;br /&gt;
* Fixed spelling error in function names for Collect ingredients mission (type 53).&lt;br /&gt;
* Fixed issue with possibly changing the status of the &amp;quot;defend the anaconda&amp;quot; mission (type 150) after completing it successfully.&lt;br /&gt;
&lt;br /&gt;
0.6.6&lt;br /&gt;
* Turned off debug flag on investigation missions.&lt;br /&gt;
&lt;br /&gt;
0.6.5&lt;br /&gt;
* Completing some missions will now reduce the players bounty.&lt;br /&gt;
&lt;br /&gt;
0.6.4&lt;br /&gt;
* Fixed issue with the Reputations screen not showing some items.&lt;br /&gt;
&lt;br /&gt;
0.6.3&lt;br /&gt;
* Removed customised PhraseGen code, made GNN a requirement for the OXP.&lt;br /&gt;
&lt;br /&gt;
0.6.2&lt;br /&gt;
* Fixed a bug with donation missions and integration with Market Observer.&lt;br /&gt;
&lt;br /&gt;
0.6.1&lt;br /&gt;
* Fixed error when repairing the Range Finder.&lt;br /&gt;
* Tweak to cargo stopper process for mild performance improvements when selecting targets.&lt;br /&gt;
* Fixes to the descriptions for slave repatriation missions (type 84).&lt;br /&gt;
* Fixes to the description for the Destroy Satellites mission (type 122).&lt;br /&gt;
* Donating cargo or slaves to charities will now update Market Observer (if installed).&lt;br /&gt;
* Adjusted time limit for satellite download missions.&lt;br /&gt;
* Tweaked manifest descriptions on satellite missions to better communicate distinct requirements for missions.&lt;br /&gt;
* Range Finder now compatible with GalTech Escape Pods.&lt;br /&gt;
&lt;br /&gt;
0.6.0&lt;br /&gt;
* Cargo stopper is now activated automatically when cargo is targeted, in front of the player ship and in range, negating the need for priming and activating the equipment.&lt;br /&gt;
* Fixed stealing cargo missions, where it was possible to hand in cargo at stations other than the originating station.&lt;br /&gt;
* Improved mission status messages for stealing cargo missions to show how much has been collected.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.5.9&lt;br /&gt;
* Fixed some instances of timers being recycled while running.&lt;br /&gt;
&lt;br /&gt;
0.5.8&lt;br /&gt;
* Fixed issue with delivery missions, where comms relay was not being spawned due to a Javascript error.&lt;br /&gt;
&lt;br /&gt;
0.5.7&lt;br /&gt;
* Fixed some issues with retrieving data from stored settings used when the system populator runs.&lt;br /&gt;
* Cleaned up the process of setting ship scripts in all script files to prevent scripts not being present when required.&lt;br /&gt;
&lt;br /&gt;
0.5.6&lt;br /&gt;
* Bug fix in spawning routine for derelict ships for black box missions (type 22).&lt;br /&gt;
* Fix to (hopefully) prevent scenario where mission ships were not being spawned.&lt;br /&gt;
&lt;br /&gt;
0.5.5&lt;br /&gt;
* Small text adjustments for game consistency.&lt;br /&gt;
* Fix JS error in satellite missions.&lt;br /&gt;
&lt;br /&gt;
0.5.4&lt;br /&gt;
* Improved logic for adding ships to a system.&lt;br /&gt;
* Fixed invalid reference error when generating missions.&lt;br /&gt;
* Better use of new functions available in later versions of Oolite.&lt;br /&gt;
* Corrected use of samplePrice method.&lt;br /&gt;
&lt;br /&gt;
0.5.3&lt;br /&gt;
* The number of asteroids required to complete the Asteroid Removal missions (type 1) is now restricted to be less than the number of asteroids currently in the system.&lt;br /&gt;
* Fixed bug in the Hit Teams script where the definition of the &amp;quot;$initiateInvestigation&amp;quot; routine was inaccurately declared.&lt;br /&gt;
&lt;br /&gt;
0.5.2&lt;br /&gt;
* Fixed invalid variable reference error.&lt;br /&gt;
&lt;br /&gt;
0.5.1&lt;br /&gt;
* An email will now be sent to the player when they accept their first mission to Interstellar space, offering tips on how to enter interstellar space, and what to expect when they get there.&lt;br /&gt;
&lt;br /&gt;
0.5.0&lt;br /&gt;
* Added some civil warzone missions (types 90, 91).&lt;br /&gt;
* Added defence missions (types 150, 152, 154, 156).&lt;br /&gt;
* Added a new delivery mission (type 46), which involves collecting cargo from a waypoint, and dropping it at another waypoint.&lt;br /&gt;
* Added a new investigation mission (136). Be afraid...&lt;br /&gt;
* Added secondary mission (type 74) to solar activity missions (70, 71, 73).&lt;br /&gt;
* Fixed error in description for solar activity mission (74).&lt;br /&gt;
* Fixed issue preventing the &amp;quot;gather ingredients&amp;quot; mission (53) from being created.&lt;br /&gt;
* Fixed issue with the &amp;quot;Remove Ejection Damper&amp;quot; equipment item, which wasn't removing the ejection damper equipment.&lt;br /&gt;
* Fixed issue with cargo recovery missions (6, 7), where ejecting and re-scooping cargo pods would throw the mission status out of kilter.&lt;br /&gt;
* Fixed manifest entry for the upload surveillance data mission (118) which was showing the wrong destination.&lt;br /&gt;
* Fixed some missions that were not including a player-rated bonus in their payment amounts.&lt;br /&gt;
* Defend satellite missions (124) were not being created for players with more than 64 kills.&lt;br /&gt;
* Upgrade satellite firmware missions (115) now have proper pass codes to transmit to the satellites.&lt;br /&gt;
* Tweaked the payment amount, and completion time requirement for satellite firmware update missions (115).&lt;br /&gt;
* Completing the delivery of personal messages for a dead pilot (141, secondary mission after investigation mission 132) now done manually.&lt;br /&gt;
* Limited some Thargoid missions to only be available in frontier systems.&lt;br /&gt;
* Updated description of Range Finder MFD equipment on F3 screen to include mention of cargo pods mode.&lt;br /&gt;
* Tweaks to the custom assassin AI routines to eliminate null target conditions.&lt;br /&gt;
* Various adjustments to the manifest entry for many missions.&lt;br /&gt;
* Spelling corrections.&lt;br /&gt;
* Bug fixes and code refactoring.&lt;br /&gt;
* Added a method to main script to allow for any mission to be easily tested during runtime ($testMissionType).&lt;br /&gt;
&lt;br /&gt;
0.4.0&lt;br /&gt;
* Added &amp;quot;Cargo pod&amp;quot; mode to Range Finder.&lt;br /&gt;
* Fixed error with Range Finder when scanning for Black Boxes. If non-ship entities were in range (eg planet, sun), a Javascript error would occur.&lt;br /&gt;
* Changing the Range Finder mode will now clear the MFD of previous scan results.&lt;br /&gt;
&lt;br /&gt;
0.3.7&lt;br /&gt;
* Fixed bug with missing variable declaration in failed mission function call.&lt;br /&gt;
&lt;br /&gt;
0.3.6&lt;br /&gt;
* Removed debug flag that would cause a particular mission to always be generated.&lt;br /&gt;
&lt;br /&gt;
0.3.5&lt;br /&gt;
* Fixed issue with secondary mission after investigation mission (132) not having correct destination on manifest.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.3.4&lt;br /&gt;
* Fixed title in manifest.plist file.&lt;br /&gt;
* Fixed missing reference error when completing data cache missions.&lt;br /&gt;
* Fixed missing reference error when completing black box missions.&lt;br /&gt;
* Fixed missing reference error when completing meet ship missions.&lt;br /&gt;
* Fixed missing reference error when completing hacking/restoring witchpoint beacon missions.&lt;br /&gt;
* Fixed missing reference error when completing some solar activity missions.&lt;br /&gt;
* Fixed missing reference error when completing some disease outbreak missions.&lt;br /&gt;
&lt;br /&gt;
0.3.3&lt;br /&gt;
* Added some fallback code in case cargo pods are not spawned with our preferred barrel type.&lt;br /&gt;
&lt;br /&gt;
0.3.2&lt;br /&gt;
* Fixed incorrect worldScript name references in Pirate Bases script.&lt;br /&gt;
* Added extra qualification to mission destination texts that refer to main planet, to help distinguish the main planet from any additional planets.&lt;br /&gt;
* Tweaked one investigation mission to limit its availability to more experienced players with an upgraded ship.&lt;br /&gt;
* Fixed issue with the Thargoid wreckage mission (13) which wasn't recognising wreckage collected in interstellar space.&lt;br /&gt;
* Removed debug log messages.&lt;br /&gt;
&lt;br /&gt;
0.3.1&lt;br /&gt;
* Fixed spawning issues for investigation missions (types 130-139).&lt;br /&gt;
* Tweaked the power of the proximity mine.&lt;br /&gt;
&lt;br /&gt;
0.3.0&lt;br /&gt;
* Added investigation missions (types 130-139).&lt;br /&gt;
* Switched from using a dummy alloy ship entity as a navigational beacon to using a visual effect.&lt;br /&gt;
* Code refactoring, improving code reuse.&lt;br /&gt;
* Split more mission specific functions out of general script file to associated script file.&lt;br /&gt;
* Fixed issue with some missions having a decimal amount as part of the payment. &lt;br /&gt;
* Performance improvements when generating new missions for a system.&lt;br /&gt;
* Fixed status message with drug dealer mission (15).&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.2.4&lt;br /&gt;
* Linked the MFD to Broadcast Comms MFD in the Auto-Prime Equipment OXP.&lt;br /&gt;
* Makes use of GNN OXP if installed.&lt;br /&gt;
* Improved handling of player ship death scenarios.&lt;br /&gt;
* Fixed linkage to [[Home System]].&lt;br /&gt;
&lt;br /&gt;
0.2.3&lt;br /&gt;
* Added the Ejection Damper equipment.&lt;br /&gt;
* Reduced the effective range of the Cargo Stopper to approximately 2km to make it slightly less OP.&lt;br /&gt;
* Added a sound effect for the tractor beam when activated.&lt;br /&gt;
&lt;br /&gt;
0.2.2&lt;br /&gt;
* Tweaks to the positioning of ships for &amp;quot;Special Delivery&amp;quot; missions (40/41).&lt;br /&gt;
* Fixed issue with &amp;quot;Special Delivery&amp;quot; mission (40), where the target ship was not responding to the &amp;quot;I don't have any more&amp;quot; comms message.&lt;br /&gt;
* Tweaks to the scavenger AI, so the target ship doesn't jump out of the system prematurely.&lt;br /&gt;
* Added Advanced Space Compass as a requirement for &amp;quot;Special Delivery&amp;quot; missions (40).&lt;br /&gt;
* Removed some debug messages.&lt;br /&gt;
&lt;br /&gt;
0.2.1&lt;br /&gt;
* Fixed issue with escape pod rescue missions (21, 22, 25) not being completable.&lt;br /&gt;
* Moved more interstellar populator routines into the correct methods.&lt;br /&gt;
* Removed some hard-coded scanner range values.&lt;br /&gt;
* Spelling corrections.&lt;br /&gt;
&lt;br /&gt;
0.2.0&lt;br /&gt;
* Fixed issues with the &amp;quot;Collect cargo&amp;quot; (6/7) missions, where scooped cargo was being counted as destroyed instead of collected.&lt;br /&gt;
* Fixed issue with &amp;quot;Special Delivery&amp;quot; (40) missions where, if cargo was dumped and then re-scooped because it was drifting out of range, when the cargo was re-dumped the target ship was ignoring it.&lt;br /&gt;
* Fixed issues with missions that have multiple stages (types 41, 63, 64, 65, and 73) that weren't being initialised correctly and so would never start.&lt;br /&gt;
* Fixed issues with escape pod rescue missions (20) and runaway escape pod missions (25) that was preventing the escape pods from being spawned.&lt;br /&gt;
* Added a new device, a Comms Relay Beacon Switch, that is issued to the player for any &amp;quot;Collect data cache&amp;quot; (31) or &amp;quot;Special delivery&amp;quot; (41) mission. This device will turn on the comms relay beacon again after the initial transmission period has expired, although using it will incur a 5% payment reduction.&lt;br /&gt;
* Added a new device, the &amp;quot;Cargo Stopper&amp;quot;, primable equipment available from TL6 systems, which, when pointed at moving cargo and then activated, will bring the cargo to a stop.&lt;br /&gt;
* Fixed issue where I.T.H.A. reputation was not being removed from the F5 page correctly when reputations were set to be moved to the &amp;quot;Reputations and Awards&amp;quot; page. &lt;br /&gt;
* Forced bonus payment calculations to return an integer, rather than a decimal.&lt;br /&gt;
* Some mission text tweaks.&lt;br /&gt;
&lt;br /&gt;
0.1.5&lt;br /&gt;
* Adjustments to the population routines for interstellar space.&lt;br /&gt;
* Fixed bug where reputation was not being applied correctly for missions where multiple reputation entities were defined.&lt;br /&gt;
* Fixed bug with distance calculation in the Disease Outbreak script.&lt;br /&gt;
* Adjusted time calculation for travel between threatened satellites during a satellite defend mission.&lt;br /&gt;
* Added reputation links to [[Home System]] OXP.&lt;br /&gt;
* Better handling of Combat Simulator.&lt;br /&gt;
&lt;br /&gt;
0.1.4&lt;br /&gt;
* Adjusted calculation of the number of deaths from a disease outbreak.&lt;br /&gt;
* Fixes to secondary missions sourced from black boxes or escape pods or passing ships having a termination penalty.&lt;br /&gt;
&lt;br /&gt;
0.1.3&lt;br /&gt;
* Reworked all the cargo collection mission types (8,9,10,11,13,14,15) so that mission updates happen when cargo is handed in, not when it is scooped (although a notification will still be given to the player that the cargo was suitable for the mission). Expiry time has also been removed, and maximum quantity can now be greater than the player's available cargo hold.&lt;br /&gt;
* Fixed issues with Thargoid wreckage collection missions, so alloys can now be successfully handed in, and (hopefully) alloys from any Thargoid warship (including OXP Thargoids) should now be acceptable.&lt;br /&gt;
* Applied some fixes for the &amp;quot;Stranded ship&amp;quot; mission to stop the ship from moving before receiving help.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.1.2&lt;br /&gt;
* Tweaked the energy drain of the Range Finder.&lt;br /&gt;
* Added sound for when the Range Finder scan is stopped.&lt;br /&gt;
* Removed debug flag from &amp;quot;Thargoid wreckage&amp;quot; missions, so they shouldn't appear as frequently.&lt;br /&gt;
* Fixed cargo dontation charity missions that were only being made available if the local market had slaves.&lt;br /&gt;
* Code refactoring and (hopefully) performance improvements.&lt;br /&gt;
&lt;br /&gt;
0.1.1&lt;br /&gt;
* Fixed bug with Thargoid wreckage mission that was preventing the wreckage from being recognised.&lt;br /&gt;
* Made the &amp;quot;Collect Thargoid wreckage&amp;quot; mission have no expiry, and provided a means by which you can hand over incomplete amounts and continue.&lt;br /&gt;
* Removed debug flag from &amp;quot;Interstellar escape pod rescue&amp;quot; missions, so they shouldn't appear as frequently.&lt;br /&gt;
&lt;br /&gt;
0.1.0&lt;br /&gt;
* Added some missions using Satellites OXP (types 110, 111, 113, 115, 122, 124).&lt;br /&gt;
* Fixed issue where emailed missions, or missions delivered via another ship, were not checking all the conditions, giving the player a mission they couldn't complete.&lt;br /&gt;
* Fixed issue with &amp;quot;Request for meeting&amp;quot; missions, where the target would not respond when the passcode was transmitted.&lt;br /&gt;
* Added additional text to mission briefing for missions that require an interstellar space destination to make it clearer this is required.&lt;br /&gt;
* Added additional text to mission briefing to make it clearer when a mission requires the player to return to the source system in order to complete it.&lt;br /&gt;
* Applied distance and player score bonuses to Special delivery missions (type 40).&lt;br /&gt;
* Fixed issue with the WBSA device not being startable when the beacon is targeted.&lt;br /&gt;
* Fixed issue with the Range Finder not creating an energy drain.&lt;br /&gt;
* Mission text tweaks.&lt;br /&gt;
&lt;br /&gt;
0.0.9&lt;br /&gt;
* Added &amp;quot;Gather ingredients&amp;quot; mission (type 53).&lt;br /&gt;
* Fixed issue where missions with a deposit could have a negative net payment if the player's reputation is low.&lt;br /&gt;
* Fixed issue with manifest entries not reflecting the state of progress correctly.&lt;br /&gt;
* Reworked how textures are specified in mission definitions.&lt;br /&gt;
* Added overlay images to charity missions.&lt;br /&gt;
* Added routines to control the creation of asteroid fields, so they will be created in the same place in each system, and reused for future missions.&lt;br /&gt;
* Fixed issues with mission descriptions missing some text elements.&lt;br /&gt;
* Fixed issue with cargo recovery mission text containing &amp;quot;&amp;gt;undefined&amp;quot;.&lt;br /&gt;
* Fixed issue with RRS reputations causing a JavaScript error when opening the &amp;quot;Reputation and Awards&amp;quot; F4 screen.&lt;br /&gt;
* Headings on the reputations page will now be suppressed if there are no related items to display.&lt;br /&gt;
* Converted text for mission types 74, 100, 101 and 102 to use the PhraseGen tool.&lt;br /&gt;
* Some tweaks/fixes to mission text.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.0.8&lt;br /&gt;
* Better logic for determining what is a witchpoint buoy.&lt;br /&gt;
* Better client name generation using PhraseGen tool.&lt;br /&gt;
* Fixed minor text issue with the &amp;quot;decline mission&amp;quot; for escape pod messages.&lt;br /&gt;
* No mission accept/complete confirmation emails will be sent for secondary missions when the source of the mission is an NPC from an escape pod or a ship.&lt;br /&gt;
* If player ejects escape pod while in pod occupant is communicating, conversation will stop and mission offering will be correctly terminated.&lt;br /&gt;
* Fixed error when scooping escape pod with no &amp;quot;crew&amp;quot; set (ie equivalent to scooping 1t slaves)&lt;br /&gt;
* Improved robustness of &amp;quot;Rescue Stricken Ship&amp;quot; missions.&lt;br /&gt;
* Fixed issue where stricken ships were not communicating with player correctly.&lt;br /&gt;
* Fixed error when firing on the stricken ship after it was repaired.&lt;br /&gt;
&lt;br /&gt;
0.0.7&lt;br /&gt;
* Better logic for determining if a pirate ship has just been destroyed.&lt;br /&gt;
* Added a &amp;quot;+/-&amp;quot; indicator on the Range Finder MFD, to make it clearer in which direction the player is moving in relation to the target.&lt;br /&gt;
&lt;br /&gt;
0.0.6&lt;br /&gt;
* Prevented Cargo Shepherd magnets from being targeted by delivery ships.&lt;br /&gt;
* Corrected issues with intergrating to the Smugglers Black Market script.&lt;br /&gt;
&lt;br /&gt;
0.0.5&lt;br /&gt;
* Fixed mess left after code refactoring. :(&lt;br /&gt;
&lt;br /&gt;
0.0.4&lt;br /&gt;
* Fixed issue with escape pod missions not being complete-able.&lt;br /&gt;
* Turned off lights on derelict ships.&lt;br /&gt;
* Code refactoring to reduce the chance of scripts for various mission types conflicting with another.&lt;br /&gt;
* More robust logic for connecting with Smugglers Black Market.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.0.3&lt;br /&gt;
* Made compatible with Oolite v1.84.&lt;br /&gt;
&lt;br /&gt;
0.0.2&lt;br /&gt;
* Initial public release.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quick Facts ==&lt;br /&gt;
{{OXPLevel|1|4}}{{IconOXP|ooVersion=&amp;quot;1.84&amp;quot;|oxpCPU=&amp;quot;Average&amp;quot;|oxpMEM=&amp;quot;Average&amp;quot;|oxpGPU=&amp;quot;Low&amp;quot;|oxpIsConfigurable=true}}&lt;br /&gt;
{|class=&amp;quot;floatright&amp;quot; style=&amp;quot;alignment:right;margin: 0 auto;&amp;quot;&lt;br /&gt;
|[[Image:IconLib.png|48px|right|link=Library OXP|alt=Config options available through 'Library']]&lt;br /&gt;
|[[Image:IconBB.png|48px|right|link=Bulletin Board System|alt=Missions offered through the 'Bulletin Board System']]&lt;br /&gt;
|[[Image:IconGNN.png|48px|right|link=GNN|alt=News items displayed through GNN]]&lt;br /&gt;
|}&lt;br /&gt;
{{Infobox OXPb| title = GalCopMissions.oxz&lt;br /&gt;
|version = 0.14&lt;br /&gt;
|release = 2026-04-20&lt;br /&gt;
|license = CC BY-NC-SA 4.0&lt;br /&gt;
|features = Missions&lt;br /&gt;
|category = Missions OXPs&lt;br /&gt;
|author = [[User:phkb|phkb]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18745 Oolite BB]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance indicator ==&lt;br /&gt;
[[File:Tag-colour-green.png]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=GalCop_Missions&amp;diff=90052</id>
		<title>GalCop Missions</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=GalCop_Missions&amp;diff=90052"/>
		<updated>2026-07-28T11:19:07Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* What else is in the box? */ Added concealed &amp;quot;spoiler&amp;quot; list of all missions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:gcm_mission_example.png|right|500px|Sample mission]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This OXP adds some local missions to the [[Bulletin Board System]], to hopefully add more things to do in and around each system. Very little by way of new ships, stations, equipment or AI's has been added to the game. The idea was to simply make use of the existing assets in new and (hopefully) interesting ways. &lt;br /&gt;
&lt;br /&gt;
There are a number of different missions available, and the availability of these missions depends on a number of factors (score, system tech level, government type, installed equipment etc). Missions can be offered in a number of ways: via the Bulletin Board, from scooped escape pods, from passing ships, or from emails.&lt;br /&gt;
&lt;br /&gt;
This OXP also includes the concept of &amp;quot;mission chains&amp;quot;, in that completing one mission may trigger a second mission, which could then trigger a third mission, and so on. Sometimes the player is given an option as to whether they want to perform the secondary mission, and sometimes they won't be.&lt;br /&gt;
&lt;br /&gt;
Generally, all the missions are optional. If you don't visit the Bulletin board, you won't see what's on offer, and very little in the game will change if you don't do the missions (although see the two sections below: Gameplay Impacts and Disease Outbreaks). You may occasionally be offered a mission when scooping escape capsules, and sometimes passing ships will pass on requests.&lt;br /&gt;
&lt;br /&gt;
===Gameplay impacts=== &lt;br /&gt;
Some of the missions in this pack can impact on other areas of the game. For instance, one type of mission, if completed successfully, will result in a higher frequency of mis-jumps to a particular system. Some missions can effect the commodities of a station, or the availability of equipment at a station. It will hopefully be obvious when these changes take place (ie as a result of completing a mission).&lt;br /&gt;
&lt;br /&gt;
===Disease Outbreaks===&lt;br /&gt;
Another potential impact is on systems that are reported to have disease outbreaks. If a major outbreak occurs, GalCop might choose to lock down the system, preventing the disease from spreading off-world. When this happens, you might find you can’t jump to a particular system without a permit. Some pilots have reported there are ways around GalCop’s restrictions, but even if you do, you might find that GalCop stations in that system will physically prevent you from docking, and inattentive pilots might find their ship taking damage rather than entering the docking slot. &lt;br /&gt;
&lt;br /&gt;
When a disease outbreak restriction is in effect, there might be missions you can undertake that will grant you the required permissions and passcodes to successfully enter the system and dock at the main station. These missions will likely be in systems close to where the outbreak is occurring.&lt;br /&gt;
&lt;br /&gt;
==Mission Categories==&lt;br /&gt;
This mission pack contains over 80 different missions and variations, but most of the missions fall into one of these general categories.&lt;br /&gt;
* '''Hunter''' - Hunt down and destroy certain ships (asteroids, pirates, traders, Thargoids, police, etc).&lt;br /&gt;
* '''Recovery''' - Find and collect certain items (cargo, derelicts, black boxes, data packets, etc).&lt;br /&gt;
* '''Rescue''' - Locate and collect escape pods, deliver critical equipment to stricken ships, deliver medical supplies.&lt;br /&gt;
* '''Delivery''' - Take cargo between one point and another, but outside the normal cargo mission system.&lt;br /&gt;
* '''Covert''' - Install spying software, disrupt station economies, hack witchpoint beacons.&lt;br /&gt;
* '''Donation''' - Donate money or cargo to charities to gain economic or legal advantages.&lt;br /&gt;
&lt;br /&gt;
==Required Equipment==&lt;br /&gt;
[[Fuel_Scoops|Fuel/Cargo scoops]] and the [[Advanced_Space_Compass|Advanced Space Compass]]  are required for many of the missions. If your ship lacks these items, certain missions will be unavailable.&lt;br /&gt;
&lt;br /&gt;
[[BroadcastComms_MFD|Broadcast Comms MFD]] is a requirement for many of the missions, as it provides an interface for ship-to-ship communications. If you have not purchased this item, some of the missions will be unavailable.&lt;br /&gt;
&lt;br /&gt;
==New Equipment==&lt;br /&gt;
Some new equipment has been added with this OXP.&lt;br /&gt;
[[File:Range Finder (1).png|right|320px]]&lt;br /&gt;
[[File:Range Finder (2).png|right|320px]]&lt;br /&gt;
===Range Finder MFD===&lt;br /&gt;
When this item is purchased, installed and primed, you can press the &amp;quot;b&amp;quot; key (Mode) to switch the mode between escape capsules, black boxes, asteroids, ships, communication relays and cargo pods. Pressing the &amp;quot;n&amp;quot; (Activate) key will initiate a scan of the local area, up to a distance of 200km. The scan will take approximately 2 seconds to run, but will be run continuously until deactivated with the &amp;quot;n&amp;quot; key again. Any objects of the selected type within range will be displayed, along with the distance to the object. A &amp;quot;+&amp;quot; or &amp;quot;-&amp;quot; indicator will be displayed next to each item, showing whether you are moving away from (+), or towards (-), the target. When the target is less than 50km away, a simplified directional indicator will be shown instead, but outside this distance, the range finder does not provide directional information. The information returned by the scan is displayed in an MFD, so you will need to select an MFD slot (using the &amp;quot;:&amp;quot; key) and then select the Range Finder MFD (using the &amp;quot;;&amp;quot; key).&lt;br /&gt;
&lt;br /&gt;
  Direction indicators when distance &amp;lt; 50km: &lt;br /&gt;
    O - Target is generally ahead of you&lt;br /&gt;
    o - Target is ahead of you.&lt;br /&gt;
    X - Target is directly ahead of you.&lt;br /&gt;
    &amp;lt; - Target is to the left&lt;br /&gt;
    &amp;gt; - Target is to the right&lt;br /&gt;
    ^ - Target is above you&lt;br /&gt;
    v - Target is below you&lt;br /&gt;
    A - Target is behind you (ie Aft)&lt;br /&gt;
&lt;br /&gt;
  Range Finder MFD&lt;br /&gt;
  Techlevel: 5&lt;br /&gt;
  Price: 250 cr&lt;br /&gt;
&lt;br /&gt;
Note: When the Range Finder is activated, there will be a drain on your ships energy. If the [[Ship Configuration OXP|Ship Configuration OXP]] is installed, engaging the Range Finder will also generate cabin heat.&lt;br /&gt;
&lt;br /&gt;
===Range Finder Extender===&lt;br /&gt;
An additional device, a Range Finder Extender, which increases the range of the scanner to 500km, as well as boosting the range for the simplified directional indicator to 75km.&lt;br /&gt;
&lt;br /&gt;
  Range Finder Extender&lt;br /&gt;
  Techlevel: 9&lt;br /&gt;
  Price: 2650 cr&lt;br /&gt;
&lt;br /&gt;
===Comms Relay Beacon Switch===&lt;br /&gt;
This device will be issued to the player when attempting particular missions, although it can also be purchased independently from TL3 systems for 60cr. It is a primable piece of equipment that will communicate with any communication relays in the system and request the beacon to be switched on for a short period of time. The device can be used 3 times before needing to be recharged. Using the device will incur a 5% penalty on whatever mission the communication relay relates to.&lt;br /&gt;
&lt;br /&gt;
  Comms Relay Beacon Switch&lt;br /&gt;
  Techlevel: 3&lt;br /&gt;
  Price: 60 cr&lt;br /&gt;
&lt;br /&gt;
===Comms Relay Beacon Switch Recharge===&lt;br /&gt;
This item will replace all the degraded parts of the switch, allowing it to be used 3 more times. The cost will vary, based on how degraded the current parts are. It is available in all systems.&lt;br /&gt;
&lt;br /&gt;
===Cargo Stopper===&lt;br /&gt;
This device makes use of the [[Tractor Beam|tractor beam]] which forms part of the cargo scoops. When your ship is aimed at cargo cannisters that are floating away, it will automatically use the tractor beam to bring the cargo to a stop. Cargo must be within 2km of your ship, and in the centre area of your front viewscreen, otherwise the tractor beam can't reach it.&lt;br /&gt;
&lt;br /&gt;
  Cargo Stopper&lt;br /&gt;
  Techlevel: 6&lt;br /&gt;
  Price: 30 cr&lt;br /&gt;
&lt;br /&gt;
===Ejection Damper===&lt;br /&gt;
This device attaches to the end of the cargo scoop, and when engaged, will apply some force to any ejected item so that it will slow to a stop within a short period of time, rather than floating away at a constant rate. &lt;br /&gt;
&lt;br /&gt;
Once purchased, the unit must be turned on before any cargo will be impacted. Prime the &amp;quot;Ejection Damper&amp;quot; equipment, and press either the &amp;quot;Mode&amp;quot; (b) or &amp;quot;Activate&amp;quot; (n) key to turn the unit on. Pressing those keys a second time will turn the unit off. The unit is automatically turned off whenever your ship docks. &lt;br /&gt;
&lt;br /&gt;
When the unit is on, all cargo ejected will be slowed to a stop. The device can be used on 50 ejected items before it needs to be replaced. &lt;br /&gt;
&lt;br /&gt;
  Ejection Damper&lt;br /&gt;
  Techlevel: 7&lt;br /&gt;
  Price: 100cr&lt;br /&gt;
&lt;br /&gt;
==Required OXP's==&lt;br /&gt;
The following OXP's are listed as required:&lt;br /&gt;
* [[Bulletin Board System]] - Required as all missions are accessed through this interface.&lt;br /&gt;
* [[BroadcastComms_MFD|BroadcastComms MFD]] - Required for missions that need ship-to-ship communications to take place. Also used for accepting or declining secondary missions.&lt;br /&gt;
* [[Email_System_OXP|Email System]] - Provides another interface for missions to be offered.&lt;br /&gt;
* [[GNN]] - Provides text randomisation system used for mission descriptions. Plus, some news items will be published periodically, which can add some flavour to game events.&lt;br /&gt;
&lt;br /&gt;
==Recommended OXP's==&lt;br /&gt;
The following OXP's are listed as recommended, in that additional text and/or gameplay options will become available if they are installed.&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=17846 Manifest Scanner] - Can aid with finding cargo in other ships, which can be very important if you are on a mission to steal certain cargo.&lt;br /&gt;
* [[Cargo_Scanner_OXP|Cargo Scanner]] - Can help with some missions to identify the contents of cargo containers.&lt;br /&gt;
* [[Black Market]] - Some additional opportunities are available through the Black Market interface in this OXP.&lt;br /&gt;
* [[Satellites]] - Some missions are available related to the various satellites created by this OXP.&lt;br /&gt;
&lt;br /&gt;
[[File:F4 Reputation.png|thumb|right|300px|After blasting some local pirates on a number of visits (no missions involved), this Jameson became a &amp;quot;Casual Acquaintance&amp;quot; of Ararus]]&lt;br /&gt;
==What else is in the box?==&lt;br /&gt;
'''Reputations:''' The missions available to the player originate from a number of different entities - governments, corporations, factions of every stripe. As missions are performed for these entities your reputation will increase. However, given the number of entities involved, a new F4 interface screen has been created that combines all reputation information into an easy to read display. Also, any awards received can be displayed as well.&lt;br /&gt;
&lt;br /&gt;
If you have the [[Library OXP]] installed, you additionally have the option of importing a variety of internal and OXP reputations into the screen, rather than having those reputations displayed on the F5F5 Manifest screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Spoiler: show mission list&amp;quot; data-collapsetext=&amp;quot;Hide list&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
This is Phkb's working list, taken from his GalCopBB_Missions.js (April 2026 version) with inclusions from the other scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There seem to be 81 fully functional missions (presumably those with the blue blobs!), with much code already written for the others (I have assumed that the satellite missions are all fully functional). (''Cholmondeley 12:19, 28 July 2026 (BST)'')&lt;br /&gt;
&lt;br /&gt;
''Mission types''&lt;br /&gt;
:*1 - &amp;quot;Cleanup the spaceways&amp;quot;: destroy x number of asteroids in the current system&lt;br /&gt;
:::any system, max of 1 mission of this type&lt;br /&gt;
:*2 - &amp;quot;Making the system safer&amp;quot;: destroy x number of pirates in system y.&lt;br /&gt;
:::any safe system within 7 LY of a feudal or anarchy&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*3 - &amp;quot;Disrupting trade (System authority)&amp;quot;: destroy x number of traders in system y.&lt;br /&gt;
:::any multi-gov or worse, near a safe system&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*4 - &amp;quot;Disrupting trade (Pirate authority)&amp;quot;: destroy x number of traders in system y.&lt;br /&gt;
:::record when mission is accepted and only offer another one to the same system after 10 days&lt;br /&gt;
:*5 - &amp;quot;Thargoid hunt&amp;quot; - intentionally misjump between system X and Y and destroy N number of thargoid motherships (not tharglets)&lt;br /&gt;
:*6 - &amp;quot;Collect the deposit&amp;quot; (System authority): find dumped cargo in system X, deliver to system Y.&lt;br /&gt;
:::- cargo will be guarded by x number of high quality ships&lt;br /&gt;
:*7 - &amp;quot;Collect the deposit&amp;quot; (Pirate authority)&lt;br /&gt;
:*8 - &amp;quot;Pirates for hire (System authority)&amp;quot;: attack trader ships in system X to get their cargo (n tons required), &lt;br /&gt;
:::return to system Y&lt;br /&gt;
:*9 - &amp;quot;Pirates for hire (Pirate authority)&amp;quot;: attack trader ships in system X to get their cargo (n tons required), return to system Y&lt;br /&gt;
:*10 - &amp;quot;Pirate specific commodity (System authority)&amp;quot;: find an amount of a particular commodity but only when in a particular system and only from piracy (not purchased from stations)&lt;br /&gt;
:*11 - &amp;quot;Pirate specific commodity (Pirate authority)&amp;quot;: find an amount of a particular commodity but only when in a particular system and only from piracy (not purchased from stations)	&lt;br /&gt;
:*12 - &amp;quot;Free slaves&amp;quot;: (if IGT is installed) target all ships entering Communist or higher system, and if carrying slaves, demand cargo.&lt;br /&gt;
:::(Recommend the &amp;quot;Manifest Scanner&amp;quot; be installed)&lt;br /&gt;
:::Use BroadcastCommsMFD to &amp;quot;Demand slaves&amp;quot;&lt;br /&gt;
:::Ship will then have the ability to respond: either &amp;quot;OK&amp;quot; (and slaves are dumped), or &amp;quot;I'm not carrying slaves&amp;quot;, or &amp;quot;Get lost&amp;quot;&lt;br /&gt;
:*13 - &amp;quot;Collect Thargoid wreckage&amp;quot; destroy thargoids and collect wreckage in interstellar space&lt;br /&gt;
:::add scenario where alloys are destroyed during flight&lt;br /&gt;
:::&amp;gt;&amp;gt; prevent thargoid alloys from being relabelled by Smugglers&lt;br /&gt;
:::&amp;gt;&amp;gt; prevent thargoid alloys from being put into storage by SC&lt;br /&gt;
:*14 - Gun runner: attack ships in target looking for firearms&lt;br /&gt;
:*15 - Drug dealer: attack ships in target looking for narcotics&lt;br /&gt;
:*16 - Civil unrest (pirate authority): destroy as many police ships in current system as you can&lt;br /&gt;
:*17 - Garbage scow: dump radioactive waste containers near sun so they are destroyed by heat&lt;br /&gt;
:*18 - Rival gang war (ie pirate hunt) (pirate authority)&lt;br /&gt;
&lt;br /&gt;
''Escape Pods, Black Boxes &amp;amp; Derelicts''&lt;br /&gt;
:*20 - Find escape pod in particular system and rescue occupant&lt;br /&gt;
:::- when in range, send out a distress signal to the player&lt;br /&gt;
:*21 - interstellar escape pod rescue&lt;br /&gt;
:*22 - Find black box in particular system and collect it &lt;br /&gt;
:::- make this different from Rescue Stations by making the black box be inside the hulk of a destroyed ship&lt;br /&gt;
:::- need some way of locating ship hulk - maybe an intermittent comms signal?&lt;br /&gt;
::::- have console message appear saying &amp;quot;Weak navigation beacon signal (&amp;quot;U&amp;quot;) being picked up.&amp;quot;&lt;br /&gt;
::::- player switches ASC to find &amp;quot;U&amp;quot;, gets a heading, then signal disappears. The further away the player is, the more inaccurate the ASC heading is.&lt;br /&gt;
::::- repeat until the player finds the hulk (ie is comes within scanner range)&lt;br /&gt;
::::- give player the option of selling black box on the black market	&lt;br /&gt;
:*23 - interstellar black box recovery&lt;br /&gt;
:*24 - Destroy derelict ship, scoop data cache (special cargo pod) and return it to station&lt;br /&gt;
:*25 - catch runaway escape pod - escape pod ended up with a massive ejection speed and is on it's way to interstellar space. &lt;br /&gt;
:::a regular waypoint will be set showing the pods last position&lt;br /&gt;
&lt;br /&gt;
''Ship-to-ship''	&lt;br /&gt;
:*30 - Find and meet a particular ship in a particular system, will lead to secondary mission&lt;br /&gt;
:::- via BB as a mission&lt;br /&gt;
:::- via email when created as a primary mission&lt;br /&gt;
:::- via a random trader along space lane or at witchpoint&lt;br /&gt;
:*31 - go to waypoint in system y, receive message from comms relay&lt;br /&gt;
:*32 - Meet ship in system X, give them info package&lt;br /&gt;
:*33 - intercept ship carrying stolen data cache,  (use Broadcast comms to demand data pack), which must then be scooped&lt;br /&gt;
:34 - track ship from witchpoint to station, then return&lt;br /&gt;
:::- if player gets with 25 km of target and appears to be following them (eg heading is roughly the same and the player is behind them) they will detect player and flee (mission failed)&lt;br /&gt;
:::- player can get closer if they are cloaked&lt;br /&gt;
:::this needs to be more interesting that just following them to the station. &lt;br /&gt;
:36 - Find ship in system X by sending a pass phrase to any/all ships - one of which will reply with a message with details of where to find special cargo to be returned to system Y&lt;br /&gt;
:37 - Find ship in system X by sending a pass phrase to any/all ships - one of which will reply with a message with details of where to find data point to be returned to system Y&lt;br /&gt;
&lt;br /&gt;
''Delivery-type missions''&lt;br /&gt;
:*40 - Special delivery - player given unique cargo (poss using Smugglers illegal goods) or equipment, must deliver to remote point in destination, paid in precious metals/gems given to the player at the drop point&lt;br /&gt;
:*41 - Special delivery - player given cargo or equipment, must go to system X to find a data point, to get location of drop point in system Y, paid in previous metals/gems given to the player at the drop point&lt;br /&gt;
:*42 - special delivery: transport special computer equipment to ship, without docking at a station (docking will render the mission void)&lt;br /&gt;
:*43	- transport vital equipment to stricken ship to enable it to continue flying&lt;br /&gt;
:::- have option of giving player secondary mission here&lt;br /&gt;
:*44	- transport vital equipment to stricken ship in interstellar space to enable it to continue flying and escape&lt;br /&gt;
:45 - Special delivery (only used for a secondary mission. similar to 40 but without giving cargo) - player told to get Xt of commodity, then deliver to a remote point in destination, paid is precious metals/gems&lt;br /&gt;
:46 - pickup cargo from waypoint, delivery to another waypoint&lt;br /&gt;
:::will need a cargo shepherd, cargo stopper for ejection damper&lt;br /&gt;
:::arrival at one or other of waypoints could result in an ambush&lt;br /&gt;
:47 - (only used for a secondary mission. similar to 41 but without giving cargo) - player told to get Xt of commodity, go to X to find data point to get location of drop point in Y, paid in precious metals/gems&lt;br /&gt;
	&lt;br /&gt;
''Medical missions''&lt;br /&gt;
:*50 - deliver critical medical supplies to systems with &amp;quot;disease&amp;quot; as part of their description&lt;br /&gt;
:::- each day do a check for&lt;br /&gt;
:::(a) is a disease outbreak starting on a system?&lt;br /&gt;
::::only have, at most 2-3 outbreaks at any one time&lt;br /&gt;
::::when starting the outbreak, send a news item to snoopers, and define the end point for the outbreak (2-3 months ahead), define propagation chance&lt;br /&gt;
::::if a player transports medical supplies, take a day off the end point, reduce the propagation chance&lt;br /&gt;
:::(b) is a disease outbreak stopping on a system?&lt;br /&gt;
::::send an item to snoopers&lt;br /&gt;
:::(c) is disease spreading to a neighbouring system&lt;br /&gt;
::::there is a chance disease will spread to a neighbouring system - add it to the outbreak list, with a news item and end point&lt;br /&gt;
::::- medical supply missions offered only from hi-tech worlds (TL 12 and above)&lt;br /&gt;
::::expiry time is based on the volatility of the antibiotics being carried.&lt;br /&gt;
:*51 - Transport critically ill patients from disease system to high tech level destination&lt;br /&gt;
:*52 - Transport virus specimens&lt;br /&gt;
:*53 - collect 3 components for an experimental antidote from different parts of the galaxy&lt;br /&gt;
&lt;br /&gt;
''Software hacking: Witchpoint beacons/stations''&lt;br /&gt;
:*60 - Hacking witchpoints&lt;br /&gt;
:::System authorities in system X are concerned about the flow of pirate traffic through their system. They want to hack into the witchpoint beacons of all systems within a 7LY range, that will enable them to monitor traffic flows into their system, outside of GalCop's purview.&lt;br /&gt;
:::- will require getting within 200m of witchpoint marker, targeting the marker and initiating the special equipment (prime, activate)&lt;br /&gt;
:*61 - Restoring witchpoints&lt;br /&gt;
:::GalCop has become aware of an illegal data stream emanating from witchpoint markers around system X. You need to go to each of the systems listed, and clean the illegal code from the units. &lt;br /&gt;
:::- will require getting within 200m of witchpoint marker, targeting the marker and initiating the special equipment (prime, activate)&lt;br /&gt;
:::- will only be available once mission 60 has been performed at a system&lt;br /&gt;
:*62 - deliver security software payload to pirate rock hermit that track all ships coming and going from the station&lt;br /&gt;
:::- need to use cloaking device to dock with hermit. going red alert within 50k of station will result in mission failure.&lt;br /&gt;
:::&amp;gt;&amp;gt; TEST	&lt;br /&gt;
:*63 - (from non galcop stations) deliver software payload to main station that will disrupt the trade computers (allowing all commodities to be purchased for 1 cr). (possible) for a period of 2 weeks&lt;br /&gt;
:::- when installing the software you will be asked what amount to set commodity prices to. You must enter the number specified in the mission description (either 1 or 99).&lt;br /&gt;
:::- you have to launch within 2 minutes of installing the software (and not redock again for 24 hours) otherwise GalCop will be able to trace the upload and you'll get hit with a massive fine (10000cr, 200 bounty)&lt;br /&gt;
:*64 - (from non galcop stations) deliver software payload to main station that will disrupt the equipment page, preventing any access for a period of 2 weeks.&lt;br /&gt;
:::- you have to launch within 2 minutes of installing the software (and not redock again for 24 hours) otherwise GalCop will be able to trace the upload and you'll get hit with a massive fine (10000cr, 200 bounty)&lt;br /&gt;
:*65 - get galcop system software &lt;br /&gt;
:::Player needs to do a multi-step process in order to get the software:&lt;br /&gt;
:::1. go to destination (a multi-gov of lower system with TL &amp;gt; 7) and pick up customised escape pod from any non-GalCop station (mission screen will inform player of installation)&lt;br /&gt;
:::2. return to system and use customised escape pod at more than 100000k from main station&lt;br /&gt;
:::3. after redocking, launch and wait for the next police ship to launch&lt;br /&gt;
:::4. follow police ship - it will self-destruct after 5-10 minutes, spewing an escape pod and a cargo item. &lt;br /&gt;
:::5. Scoop the cargo item and return it to the source station.&lt;br /&gt;
:66 - Perform scan of rock hermits, possibly while cloaked, return collected data&lt;br /&gt;
:::- need to create scanning equipment item&lt;br /&gt;
:::- harvest phase scanner code from Smugglers for general operating params&lt;br /&gt;
:67 - Perform scan of main station, possibly while cloaked, return collected data&lt;br /&gt;
	&lt;br /&gt;
''Solar activity system missions''&lt;br /&gt;
:*70 - Use scan equipment to take close up measurements of sun&lt;br /&gt;
:::get to fuel scoop dist = ((system.sun.collisionRadius * system.sun.collisionRadius) / system.sun.position.squaredDistanceTo(player.ship.position)) &amp;gt; 0.75;&lt;br /&gt;
:::prime scanning device, activate&lt;br /&gt;
:::await completion&lt;br /&gt;
:::If player retreats before scan is complete, scan will stop, but will restart automatically when in range again (ie it won't start from the beginning)&lt;br /&gt;
:*71 - Recover data cache in low orbit over sun&lt;br /&gt;
:::find data cache&lt;br /&gt;
:::transmit security code&lt;br /&gt;
:::await data package&lt;br /&gt;
:72 - Launch monitoring devices (special cargo or missiles)&lt;br /&gt;
:::must deploy 2 special cargo items from within fuel scoop range, one on the planet side, the other on the far side of the sun.&lt;br /&gt;
:*73 - Variation on 70: Go to another system to pick up new equipment, then bring it back and scan the sun&lt;br /&gt;
:*74 - Take solar data to hi-tech system for analysis&lt;br /&gt;
:75 - return analysed solar data to original system?&lt;br /&gt;
:76 - Recover derelict ship near the sun (derelict will be given a high heat shield rating to prevent destruction)&lt;br /&gt;
:::- Use DeepSpaceDredger for equipment/process of ship recovery?&lt;br /&gt;
&lt;br /&gt;
''Charity missions''&lt;br /&gt;
:*80/81/82/83 - Give credits to entity&lt;br /&gt;
:*84/85/86/87 - purchase and give commodity to entity (slaves for AI, any for the others)&lt;br /&gt;
:88 - purchase any commodity (not slaves, firearms or narcs) and give to AI&lt;br /&gt;
:89 - donation to nationalist entity of system&lt;br /&gt;
:::- reward of better commodity prices?&lt;br /&gt;
:::maybe just better prices on illegals?&lt;br /&gt;
:::- reward of better equipment prices?&lt;br /&gt;
:::- reward of better ship prices?&lt;br /&gt;
:? - donation to religious entity&lt;br /&gt;
&lt;br /&gt;
''War zone missions''&lt;br /&gt;
:*90 - evacuate refugees&lt;br /&gt;
:*91 - transfer injured&lt;br /&gt;
:92 - import weapons&lt;br /&gt;
&lt;br /&gt;
''Earthquake system missions''&lt;br /&gt;
:*100 - Use scan equipment (seismic resonance scanner) to scan planet in 3-4 locations&lt;br /&gt;
:::player must get in low enough orbit to perform scan successfully&lt;br /&gt;
:::have some way of informing the player where the scan points are - waypoints, must be within 2km of waypoints&lt;br /&gt;
:*101 - transport injured people to hi-techlevel system for treatment &lt;br /&gt;
:*102 - destroy a number of asteroids around the planet. The gravitational effect of the asteroids means instability on the surface&lt;br /&gt;
:103 - collect and deliver special equipment&lt;br /&gt;
:*104 - take seismic data to hi-techlevel system for data analysis &lt;br /&gt;
&lt;br /&gt;
''Satellite missions (when Satellites OXP is installed)''&lt;br /&gt;
:*110 - Extract data&lt;br /&gt;
:*111 - Install new firmware&lt;br /&gt;
:*112 - Destroy satellite&lt;br /&gt;
:*113 - Hack satellite&lt;br /&gt;
:*114 - insert data&lt;br /&gt;
&lt;br /&gt;
''Investigations''&lt;br /&gt;
:*130 - a stash of cargo pods with precious metals/gems&lt;br /&gt;
:*131 - a ship graveyard&lt;br /&gt;
:*132 - a damaged escape pod&lt;br /&gt;
:*133 - a pirate base&lt;br /&gt;
:*134 - a thargoid trap&lt;br /&gt;
:*135 - a proximity mine that causes a fuel leak&lt;br /&gt;
:*136 - a spooky noise/comms&lt;br /&gt;
:*137 - a pirate trap&lt;br /&gt;
:*138 - an asteroid field with blackbox&lt;br /&gt;
:139 - (currently unused)&lt;br /&gt;
:*140 - destroy pirate base&lt;br /&gt;
:*141 - deliver goodbye messages&lt;br /&gt;
&lt;br /&gt;
''Defence/escort missions''&lt;br /&gt;
:*150 - defend anaconda from pirates&lt;br /&gt;
:151 - defend liner from pirates (need liners OXP installed)&lt;br /&gt;
:*152 - defend main station from pirates&lt;br /&gt;
:153 - defend other galcop station from pirates (OXP required)&lt;br /&gt;
:*154 - defend main station from thargoids&lt;br /&gt;
:155 - defend other station from thargoids (OXP's required)&lt;br /&gt;
:*156 - defend witchpoint beacon from thargoids&lt;br /&gt;
&lt;br /&gt;
:160 Scan planet from low orbit&lt;br /&gt;
:::requires to maintain a low orbit for a certain amount of time, with some possibility of attack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Download [[Media:GalCopMissions_0.14.oxz|GalCopMissions_0.14.oxz]] (downloaded {{#downloads:GalCopMissions_0.14.oxz}} times).&amp;lt;br/&amp;gt;&lt;br /&gt;
Download [https://app.box.com/s/wo2nfn3j1xkkjinfu3ytgn810r7gkr2v GalCopMissions.zip] v0.14 (extract OXP folder to AddOns)&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 4.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/&lt;br /&gt;
&lt;br /&gt;
Thanks to Svengali and Disembodied for their PhraseGen tool.&amp;lt;br/&amp;gt;&lt;br /&gt;
Thanks to Ramirez for his remote mine model (from the &amp;quot;Missiles and Bombs&amp;quot; OXP).&amp;lt;br/&amp;gt;&lt;br /&gt;
Thanks to these forum members who have submitted bug reports or suggestions that have helped make the OXP better: Nite Owl, herodotus, Astrobe, Damocles Edge, Cody, Bogatyr, pagroove, gsagostinho, Cmd. Northgate, Balisongdalo, javirodriguez, and lohcek.gsagostinho, Cmd. Northgate, Balisongdalo, javirodriguez, and lohcek.&amp;lt;br/&amp;gt;&lt;br /&gt;
Special thanks to cim who has very kindly given permission to include his &amp;quot;Black Box&amp;quot; model from [[RRS_Group|Rescue Stations]] in this OXP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No entry sign image from http://simpleicon.com/no_entry_sign_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Warning sign image from http://simpleicon.com/warning-2.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Tick image from http://simpleicon.com/ok_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Pill image from http://simpleicon.com/pill_3.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Star badge from https://www.iconfinder.com/icons/1031361/award_badge_best_prize_reward_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Round badge from https://www.iconfinder.com/icons/465072/achievement_award_label_medal_politic_win_winner_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Star medal from https://www.iconfinder.com/icons/111092/medal_icon#size=512  (CC BY-SA 3.0)&amp;lt;br/&amp;gt;&lt;br /&gt;
Star medal on ribbon from https://www.iconfinder.com/icons/316245/medal_icon#size=512 (Free for commercial use)&amp;lt;br/&amp;gt;&lt;br /&gt;
Trophy image from http://simpleicon.com/trophy_1.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Cup image from http://simpleicon.com/cup.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Candle image from http://simpleicon.com/candle-2.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Family image from http://simpleicon.com/chat_10.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Education image from http://simpleicon.com/wp-content/uploads/knowledge.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Head image from https://www.shareicon.net/download/2016/04/17/751132_people_512x512.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Raining image from http://simpleicon.com/wp-content/uploads/lightning__raining_2.png&amp;lt;br/&amp;gt;&lt;br /&gt;
Biohazard image from https://www.freepik.com/free-vector/biohazard-yellow-circle-sign-graphic-illustration_2631298.htm#fromView=search&amp;amp;page=1&amp;amp;position=0&amp;amp;uuid=040f7aab-af6b-4231-9d3d-7f20cc869cd0&amp;quot; Image by rawpixel.com on Freepik&amp;lt;br/&amp;gt;&lt;br /&gt;
Tractor beam sound effect by Finnolia Productions Inc from http://www.soundeffectsplus.com (see licence here: https://www.soundeffectsplus.com/content/license/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/jmorrisoncafe330/sounds/110097/ (license https://creativecommons.org/licenses/sampling+/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/klankbeeld/sounds/169334/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/klankbeeld/sounds/239633/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/flint10/sounds/197547/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/Robinhood76/sounds/219853/ (license https://creativecommons.org/licenses/by-nc/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/Robinhood76/sounds/333230/ (license https://creativecommons.org/licenses/by-nc/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/staticpony1/sounds/249597/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/TheBillinator3000/sounds/333845/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/InSintesi/sounds/346295/ (license https://creativecommons.org/licenses/by/3.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/lennyboy/sounds/275186/ (license https://creativecommons.org/publicdomain/zero/1.0/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Sound effect from https://freesound.org/people/AlienXXX/sounds/168511/ (license https://creativecommons.org/licenses/by/3.0/)&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
This OXP is discussed at this forum link: https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18745&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
0.14&lt;br /&gt;
* Market prices on disease outbreak systems now boosted, and quantities reduced. If you can get there, it's probably worth it.&lt;br /&gt;
* Added a hint for the player if they attempt to jump into a quarantined system and are blocked by GalCop.&lt;br /&gt;
* Suppressed Rescue Stations ambience for disease systems, to prevent confusion over lockdowns.&lt;br /&gt;
&lt;br /&gt;
0.13&lt;br /&gt;
* Added ability to call functions when testing conditions.&lt;br /&gt;
&lt;br /&gt;
0.12&lt;br /&gt;
* Added Galactic Navy as a reputation entity, and added it to some missions.&lt;br /&gt;
&lt;br /&gt;
0.11&lt;br /&gt;
* Fixed issue with &amp;quot;Recover stolen items&amp;quot; mission, when recovering the stolen documents, where the mission could not be completed.&lt;br /&gt;
* Darkened overlay images for better compatibility with Oolite 1.92.&lt;br /&gt;
&lt;br /&gt;
0.10&lt;br /&gt;
* Fixed more issues with the Satellite missions.&lt;br /&gt;
&lt;br /&gt;
0.9&lt;br /&gt;
* Really corrected issue preventing some satellite missions from being completable if the Galactic Almanac OXP is installed.&lt;br /&gt;
* Sound now plays when a fuel leak occurs.&lt;br /&gt;
* Tweaks to the reputation system to allow for complete localisation through descriptions.plist.&lt;br /&gt;
* Made some reputations visible on the reputations screen, even if the actual reputation value is zero.&lt;br /&gt;
* Fixed issue where some missions with a minimum player score were being offered to players under that value.&lt;br /&gt;
* Moved as much text as possible into descriptions.plist for slightly easier localisation.&lt;br /&gt;
* Added prebuilt descriptions for each mission that uses PhraseGen, so PhraseGen can be avoided when translating text. See notes in descriptions.plist or galcopbb_missiondetails.js for details.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.8.2&lt;br /&gt;
* Fixed referencing errors in spawning scripts for &amp;quot;Recover special cargo&amp;quot; (type 24) and &amp;quot;Black Box recovery&amp;quot; (type 22) missions.&lt;br /&gt;
* Fixed issue with mission state not being correctly recorded when the derelict is destroyed in black box recovery missions (types 22/23).&lt;br /&gt;
* Fixed issue with invalid functions calls for meet ship missions (type 30).&lt;br /&gt;
* Fixed issue with the meet ship mission, delivered by email (type 30), that wouldn't generate a second mission when you meet the target.&lt;br /&gt;
* Added clarity to &amp;quot;Computer Delivery&amp;quot; mission (type 42), so when the target ship is destroyed, the mission is failed.&lt;br /&gt;
* Removed &amp;quot;Computer Delivery&amp;quot; from being a follow-up mission.&lt;br /&gt;
* Fixed reference error bugs with investigation missions (types 130-138).&lt;br /&gt;
* Fixed issue with email missions causing a JS exception.&lt;br /&gt;
* Fixed invalid descriptions lookup key.&lt;br /&gt;
* Grammar corrections.&lt;br /&gt;
&lt;br /&gt;
0.8.1&lt;br /&gt;
* Fixed referencing error in data cache missions (type 41) that was preventing the mission from being completable.&lt;br /&gt;
&lt;br /&gt;
0.8&lt;br /&gt;
* Added a 10% penalty to cargo recovery missions (type 6) for each cargo pod the player destroys.&lt;br /&gt;
* Destroying a cargo pod in a &amp;quot;Cargo Recovery&amp;quot; mission will now trigger a mission status update.&lt;br /&gt;
* Fixed multiple issues with the descriptive text for &amp;quot;Cargo Recovery&amp;quot; missions (type 6).&lt;br /&gt;
* For type 6/7 missions, changed reward calculation to be based on the value of the commodity being collected.&lt;br /&gt;
* Excluded escape pods from being considered in the &amp;quot;Pirates for Hire&amp;quot; mission (type 8) when slaves are being sought.&lt;br /&gt;
* Adjusted spawning rules for ship with stolen items (type 33), to ensure they always spawn in scanner range of the player.&lt;br /&gt;
* Fixed bug in special delivery mission (type 40) that was preventing key information from being updated.&lt;br /&gt;
* Tweaked special delivery mission (type 40) so mission complete percentage doesn't go above 100%.&lt;br /&gt;
* Added missing position to a &amp;quot;Computer delivery&amp;quot; mission (type 42) description.&lt;br /&gt;
* Bug fixes in disease outbreak script (types 50-52).&lt;br /&gt;
* Fixed issue with disease outbreak systems, where system traffic wasn't being reduced, and GalCop station docking wasn't being prevented, in the case where the player doesn't have a valid permit.&lt;br /&gt;
* Added a screen displayed when docking at a station to inform player of disease lockdown systems with 7LY.&lt;br /&gt;
* Fixed grammar in descriptive text for &amp;quot;Hacking the witchpoint&amp;quot; mission (type 60).&lt;br /&gt;
* Fixed issues with mission details and grammar for station disrupt missions (type 63).&lt;br /&gt;
* Fixed issues preventing the disrupt station missions (type 63/64) from being completable.&lt;br /&gt;
* Reduced eject distance for the &amp;quot;Acquire GalCop Software&amp;quot; mission (type 65).&lt;br /&gt;
* Fixed issues preventing the &amp;quot;Acquire GalCop Software&amp;quot; mission (type 65) from being completable.&lt;br /&gt;
* Beacon labels are now turned off after collecting data from Solar Monitors (type 71).&lt;br /&gt;
* Updated manifest and BB status entries for donation missions (types 80-87) so that after a partial donation the status shows how much is remaining to donate.&lt;br /&gt;
* Removed waypoints from terminated or failed Seismic Scan missions (type 100).&lt;br /&gt;
* Fixed issue with manifest entry for &amp;quot;Asteroids in low orbit&amp;quot; mission (type 102), where it did not show progress towards completion.&lt;br /&gt;
* Fixed issue with completing the &amp;quot;Deliver Seismic Scan Data&amp;quot; mission (type 104), where the equipment item wasn't being removed.&lt;br /&gt;
* Destroying a satellite will now update the mission objectives (types 110-124).&lt;br /&gt;
* Corrected issue preventing some satellite missions from being completable if the Galactic Almanac OXP is installed.&lt;br /&gt;
* Fixed bug when spawning satellite defenders that was preventing the AI from being switched.&lt;br /&gt;
* Tweaked how far you have to go past the reference point before the unidentified signal is started in an Investigation mission (type 130-138).&lt;br /&gt;
* Tweaked descriptions for investigation missions to include a &amp;quot;reference point&amp;quot; past which a fair distance must be travelled in order to find the signal.&lt;br /&gt;
* Tweaked the location of unidentified signals in Investigation missions (type 130-138).&lt;br /&gt;
* Fixed spelling in &amp;quot;Defend station from attack&amp;quot; mission (type 152) description.&lt;br /&gt;
* Added some lurking pirates outside pirate bases.&lt;br /&gt;
* Added some extra details to manifest entry for missions that send to you a specific location in a system.&lt;br /&gt;
* Ejection damper now includes &amp;quot;uses left&amp;quot; in a console message when turned on and again when used.&lt;br /&gt;
* Switched a few mission types to stop the clock when complete.&lt;br /&gt;
* Switched a lot of mission types to be completable at any main station.&lt;br /&gt;
* Fixed issue that was preventing the Range Finder equipment from detecting mission-based escape pods.&lt;br /&gt;
* Fixed issue that was preventing the Range Finder equipment from detecting derelict ships.&lt;br /&gt;
* Added a simplified directional indicator to the Range Finder for when scanned items are less then 50km distant.&lt;br /&gt;
* Fixed issue where cargo collected for missions wasn't being handed over correctly and removed from the player's hold.&lt;br /&gt;
* Fixed issue where scooping more cargo than the mission requirement would cause some display and calculation irregularities.&lt;br /&gt;
* Fixed issue where the F5F5 manifest page wasn't getting updated correctly for missions that have multiple items to collect if items had been destroyed.&lt;br /&gt;
* Fixed various other grammar issues in mission text.&lt;br /&gt;
* Fixed grammar in readme.txt.&lt;br /&gt;
* Set global debug flag to false.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;  data-expandtext=&amp;quot;Show older&amp;quot; data-collapsetext=&amp;quot;Hide older&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
0.7.0&lt;br /&gt;
* Fixed bug in &amp;quot;Extract telescope data&amp;quot; mission, where the wrong satellite types were being used in the calculations.&lt;br /&gt;
&lt;br /&gt;
0.6.9&lt;br /&gt;
* Fixed issue where scooped Thargoid metal fragments were not being counted towards mission objective (type 13).&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.6.8&lt;br /&gt;
* Fixed referencing errors with hit team docking notifications.&lt;br /&gt;
* Fixed JS error when in interstellar space while a slave rescue mission is active.&lt;br /&gt;
* Fixed JS error for disease outbreak systems.&lt;br /&gt;
* Fixed description for blackbox secondary mission that wasn't putting location into the details.&lt;br /&gt;
* Will now try up to 10 times to create a secondary mission after meeting a ship.&lt;br /&gt;
* When no secondary mission can be created after meeting a ship, a message providing some explanation is now given.&lt;br /&gt;
* Improved process for detecting and flagging alloys as having come from Thargoid vessels (type 13).&lt;br /&gt;
* Hit teams bug fixes.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.6.7&lt;br /&gt;
* Added mission type 18 to available missions.&lt;br /&gt;
* Fixed spelling error in function names for Collect ingredients mission (type 53).&lt;br /&gt;
* Fixed issue with possibly changing the status of the &amp;quot;defend the anaconda&amp;quot; mission (type 150) after completing it successfully.&lt;br /&gt;
&lt;br /&gt;
0.6.6&lt;br /&gt;
* Turned off debug flag on investigation missions.&lt;br /&gt;
&lt;br /&gt;
0.6.5&lt;br /&gt;
* Completing some missions will now reduce the players bounty.&lt;br /&gt;
&lt;br /&gt;
0.6.4&lt;br /&gt;
* Fixed issue with the Reputations screen not showing some items.&lt;br /&gt;
&lt;br /&gt;
0.6.3&lt;br /&gt;
* Removed customised PhraseGen code, made GNN a requirement for the OXP.&lt;br /&gt;
&lt;br /&gt;
0.6.2&lt;br /&gt;
* Fixed a bug with donation missions and integration with Market Observer.&lt;br /&gt;
&lt;br /&gt;
0.6.1&lt;br /&gt;
* Fixed error when repairing the Range Finder.&lt;br /&gt;
* Tweak to cargo stopper process for mild performance improvements when selecting targets.&lt;br /&gt;
* Fixes to the descriptions for slave repatriation missions (type 84).&lt;br /&gt;
* Fixes to the description for the Destroy Satellites mission (type 122).&lt;br /&gt;
* Donating cargo or slaves to charities will now update Market Observer (if installed).&lt;br /&gt;
* Adjusted time limit for satellite download missions.&lt;br /&gt;
* Tweaked manifest descriptions on satellite missions to better communicate distinct requirements for missions.&lt;br /&gt;
* Range Finder now compatible with GalTech Escape Pods.&lt;br /&gt;
&lt;br /&gt;
0.6.0&lt;br /&gt;
* Cargo stopper is now activated automatically when cargo is targeted, in front of the player ship and in range, negating the need for priming and activating the equipment.&lt;br /&gt;
* Fixed stealing cargo missions, where it was possible to hand in cargo at stations other than the originating station.&lt;br /&gt;
* Improved mission status messages for stealing cargo missions to show how much has been collected.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.5.9&lt;br /&gt;
* Fixed some instances of timers being recycled while running.&lt;br /&gt;
&lt;br /&gt;
0.5.8&lt;br /&gt;
* Fixed issue with delivery missions, where comms relay was not being spawned due to a Javascript error.&lt;br /&gt;
&lt;br /&gt;
0.5.7&lt;br /&gt;
* Fixed some issues with retrieving data from stored settings used when the system populator runs.&lt;br /&gt;
* Cleaned up the process of setting ship scripts in all script files to prevent scripts not being present when required.&lt;br /&gt;
&lt;br /&gt;
0.5.6&lt;br /&gt;
* Bug fix in spawning routine for derelict ships for black box missions (type 22).&lt;br /&gt;
* Fix to (hopefully) prevent scenario where mission ships were not being spawned.&lt;br /&gt;
&lt;br /&gt;
0.5.5&lt;br /&gt;
* Small text adjustments for game consistency.&lt;br /&gt;
* Fix JS error in satellite missions.&lt;br /&gt;
&lt;br /&gt;
0.5.4&lt;br /&gt;
* Improved logic for adding ships to a system.&lt;br /&gt;
* Fixed invalid reference error when generating missions.&lt;br /&gt;
* Better use of new functions available in later versions of Oolite.&lt;br /&gt;
* Corrected use of samplePrice method.&lt;br /&gt;
&lt;br /&gt;
0.5.3&lt;br /&gt;
* The number of asteroids required to complete the Asteroid Removal missions (type 1) is now restricted to be less than the number of asteroids currently in the system.&lt;br /&gt;
* Fixed bug in the Hit Teams script where the definition of the &amp;quot;$initiateInvestigation&amp;quot; routine was inaccurately declared.&lt;br /&gt;
&lt;br /&gt;
0.5.2&lt;br /&gt;
* Fixed invalid variable reference error.&lt;br /&gt;
&lt;br /&gt;
0.5.1&lt;br /&gt;
* An email will now be sent to the player when they accept their first mission to Interstellar space, offering tips on how to enter interstellar space, and what to expect when they get there.&lt;br /&gt;
&lt;br /&gt;
0.5.0&lt;br /&gt;
* Added some civil warzone missions (types 90, 91).&lt;br /&gt;
* Added defence missions (types 150, 152, 154, 156).&lt;br /&gt;
* Added a new delivery mission (type 46), which involves collecting cargo from a waypoint, and dropping it at another waypoint.&lt;br /&gt;
* Added a new investigation mission (136). Be afraid...&lt;br /&gt;
* Added secondary mission (type 74) to solar activity missions (70, 71, 73).&lt;br /&gt;
* Fixed error in description for solar activity mission (74).&lt;br /&gt;
* Fixed issue preventing the &amp;quot;gather ingredients&amp;quot; mission (53) from being created.&lt;br /&gt;
* Fixed issue with the &amp;quot;Remove Ejection Damper&amp;quot; equipment item, which wasn't removing the ejection damper equipment.&lt;br /&gt;
* Fixed issue with cargo recovery missions (6, 7), where ejecting and re-scooping cargo pods would throw the mission status out of kilter.&lt;br /&gt;
* Fixed manifest entry for the upload surveillance data mission (118) which was showing the wrong destination.&lt;br /&gt;
* Fixed some missions that were not including a player-rated bonus in their payment amounts.&lt;br /&gt;
* Defend satellite missions (124) were not being created for players with more than 64 kills.&lt;br /&gt;
* Upgrade satellite firmware missions (115) now have proper pass codes to transmit to the satellites.&lt;br /&gt;
* Tweaked the payment amount, and completion time requirement for satellite firmware update missions (115).&lt;br /&gt;
* Completing the delivery of personal messages for a dead pilot (141, secondary mission after investigation mission 132) now done manually.&lt;br /&gt;
* Limited some Thargoid missions to only be available in frontier systems.&lt;br /&gt;
* Updated description of Range Finder MFD equipment on F3 screen to include mention of cargo pods mode.&lt;br /&gt;
* Tweaks to the custom assassin AI routines to eliminate null target conditions.&lt;br /&gt;
* Various adjustments to the manifest entry for many missions.&lt;br /&gt;
* Spelling corrections.&lt;br /&gt;
* Bug fixes and code refactoring.&lt;br /&gt;
* Added a method to main script to allow for any mission to be easily tested during runtime ($testMissionType).&lt;br /&gt;
&lt;br /&gt;
0.4.0&lt;br /&gt;
* Added &amp;quot;Cargo pod&amp;quot; mode to Range Finder.&lt;br /&gt;
* Fixed error with Range Finder when scanning for Black Boxes. If non-ship entities were in range (eg planet, sun), a Javascript error would occur.&lt;br /&gt;
* Changing the Range Finder mode will now clear the MFD of previous scan results.&lt;br /&gt;
&lt;br /&gt;
0.3.7&lt;br /&gt;
* Fixed bug with missing variable declaration in failed mission function call.&lt;br /&gt;
&lt;br /&gt;
0.3.6&lt;br /&gt;
* Removed debug flag that would cause a particular mission to always be generated.&lt;br /&gt;
&lt;br /&gt;
0.3.5&lt;br /&gt;
* Fixed issue with secondary mission after investigation mission (132) not having correct destination on manifest.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.3.4&lt;br /&gt;
* Fixed title in manifest.plist file.&lt;br /&gt;
* Fixed missing reference error when completing data cache missions.&lt;br /&gt;
* Fixed missing reference error when completing black box missions.&lt;br /&gt;
* Fixed missing reference error when completing meet ship missions.&lt;br /&gt;
* Fixed missing reference error when completing hacking/restoring witchpoint beacon missions.&lt;br /&gt;
* Fixed missing reference error when completing some solar activity missions.&lt;br /&gt;
* Fixed missing reference error when completing some disease outbreak missions.&lt;br /&gt;
&lt;br /&gt;
0.3.3&lt;br /&gt;
* Added some fallback code in case cargo pods are not spawned with our preferred barrel type.&lt;br /&gt;
&lt;br /&gt;
0.3.2&lt;br /&gt;
* Fixed incorrect worldScript name references in Pirate Bases script.&lt;br /&gt;
* Added extra qualification to mission destination texts that refer to main planet, to help distinguish the main planet from any additional planets.&lt;br /&gt;
* Tweaked one investigation mission to limit its availability to more experienced players with an upgraded ship.&lt;br /&gt;
* Fixed issue with the Thargoid wreckage mission (13) which wasn't recognising wreckage collected in interstellar space.&lt;br /&gt;
* Removed debug log messages.&lt;br /&gt;
&lt;br /&gt;
0.3.1&lt;br /&gt;
* Fixed spawning issues for investigation missions (types 130-139).&lt;br /&gt;
* Tweaked the power of the proximity mine.&lt;br /&gt;
&lt;br /&gt;
0.3.0&lt;br /&gt;
* Added investigation missions (types 130-139).&lt;br /&gt;
* Switched from using a dummy alloy ship entity as a navigational beacon to using a visual effect.&lt;br /&gt;
* Code refactoring, improving code reuse.&lt;br /&gt;
* Split more mission specific functions out of general script file to associated script file.&lt;br /&gt;
* Fixed issue with some missions having a decimal amount as part of the payment. &lt;br /&gt;
* Performance improvements when generating new missions for a system.&lt;br /&gt;
* Fixed status message with drug dealer mission (15).&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.2.4&lt;br /&gt;
* Linked the MFD to Broadcast Comms MFD in the Auto-Prime Equipment OXP.&lt;br /&gt;
* Makes use of GNN OXP if installed.&lt;br /&gt;
* Improved handling of player ship death scenarios.&lt;br /&gt;
* Fixed linkage to [[Home System]].&lt;br /&gt;
&lt;br /&gt;
0.2.3&lt;br /&gt;
* Added the Ejection Damper equipment.&lt;br /&gt;
* Reduced the effective range of the Cargo Stopper to approximately 2km to make it slightly less OP.&lt;br /&gt;
* Added a sound effect for the tractor beam when activated.&lt;br /&gt;
&lt;br /&gt;
0.2.2&lt;br /&gt;
* Tweaks to the positioning of ships for &amp;quot;Special Delivery&amp;quot; missions (40/41).&lt;br /&gt;
* Fixed issue with &amp;quot;Special Delivery&amp;quot; mission (40), where the target ship was not responding to the &amp;quot;I don't have any more&amp;quot; comms message.&lt;br /&gt;
* Tweaks to the scavenger AI, so the target ship doesn't jump out of the system prematurely.&lt;br /&gt;
* Added Advanced Space Compass as a requirement for &amp;quot;Special Delivery&amp;quot; missions (40).&lt;br /&gt;
* Removed some debug messages.&lt;br /&gt;
&lt;br /&gt;
0.2.1&lt;br /&gt;
* Fixed issue with escape pod rescue missions (21, 22, 25) not being completable.&lt;br /&gt;
* Moved more interstellar populator routines into the correct methods.&lt;br /&gt;
* Removed some hard-coded scanner range values.&lt;br /&gt;
* Spelling corrections.&lt;br /&gt;
&lt;br /&gt;
0.2.0&lt;br /&gt;
* Fixed issues with the &amp;quot;Collect cargo&amp;quot; (6/7) missions, where scooped cargo was being counted as destroyed instead of collected.&lt;br /&gt;
* Fixed issue with &amp;quot;Special Delivery&amp;quot; (40) missions where, if cargo was dumped and then re-scooped because it was drifting out of range, when the cargo was re-dumped the target ship was ignoring it.&lt;br /&gt;
* Fixed issues with missions that have multiple stages (types 41, 63, 64, 65, and 73) that weren't being initialised correctly and so would never start.&lt;br /&gt;
* Fixed issues with escape pod rescue missions (20) and runaway escape pod missions (25) that was preventing the escape pods from being spawned.&lt;br /&gt;
* Added a new device, a Comms Relay Beacon Switch, that is issued to the player for any &amp;quot;Collect data cache&amp;quot; (31) or &amp;quot;Special delivery&amp;quot; (41) mission. This device will turn on the comms relay beacon again after the initial transmission period has expired, although using it will incur a 5% payment reduction.&lt;br /&gt;
* Added a new device, the &amp;quot;Cargo Stopper&amp;quot;, primable equipment available from TL6 systems, which, when pointed at moving cargo and then activated, will bring the cargo to a stop.&lt;br /&gt;
* Fixed issue where I.T.H.A. reputation was not being removed from the F5 page correctly when reputations were set to be moved to the &amp;quot;Reputations and Awards&amp;quot; page. &lt;br /&gt;
* Forced bonus payment calculations to return an integer, rather than a decimal.&lt;br /&gt;
* Some mission text tweaks.&lt;br /&gt;
&lt;br /&gt;
0.1.5&lt;br /&gt;
* Adjustments to the population routines for interstellar space.&lt;br /&gt;
* Fixed bug where reputation was not being applied correctly for missions where multiple reputation entities were defined.&lt;br /&gt;
* Fixed bug with distance calculation in the Disease Outbreak script.&lt;br /&gt;
* Adjusted time calculation for travel between threatened satellites during a satellite defend mission.&lt;br /&gt;
* Added reputation links to [[Home System]] OXP.&lt;br /&gt;
* Better handling of Combat Simulator.&lt;br /&gt;
&lt;br /&gt;
0.1.4&lt;br /&gt;
* Adjusted calculation of the number of deaths from a disease outbreak.&lt;br /&gt;
* Fixes to secondary missions sourced from black boxes or escape pods or passing ships having a termination penalty.&lt;br /&gt;
&lt;br /&gt;
0.1.3&lt;br /&gt;
* Reworked all the cargo collection mission types (8,9,10,11,13,14,15) so that mission updates happen when cargo is handed in, not when it is scooped (although a notification will still be given to the player that the cargo was suitable for the mission). Expiry time has also been removed, and maximum quantity can now be greater than the player's available cargo hold.&lt;br /&gt;
* Fixed issues with Thargoid wreckage collection missions, so alloys can now be successfully handed in, and (hopefully) alloys from any Thargoid warship (including OXP Thargoids) should now be acceptable.&lt;br /&gt;
* Applied some fixes for the &amp;quot;Stranded ship&amp;quot; mission to stop the ship from moving before receiving help.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.1.2&lt;br /&gt;
* Tweaked the energy drain of the Range Finder.&lt;br /&gt;
* Added sound for when the Range Finder scan is stopped.&lt;br /&gt;
* Removed debug flag from &amp;quot;Thargoid wreckage&amp;quot; missions, so they shouldn't appear as frequently.&lt;br /&gt;
* Fixed cargo dontation charity missions that were only being made available if the local market had slaves.&lt;br /&gt;
* Code refactoring and (hopefully) performance improvements.&lt;br /&gt;
&lt;br /&gt;
0.1.1&lt;br /&gt;
* Fixed bug with Thargoid wreckage mission that was preventing the wreckage from being recognised.&lt;br /&gt;
* Made the &amp;quot;Collect Thargoid wreckage&amp;quot; mission have no expiry, and provided a means by which you can hand over incomplete amounts and continue.&lt;br /&gt;
* Removed debug flag from &amp;quot;Interstellar escape pod rescue&amp;quot; missions, so they shouldn't appear as frequently.&lt;br /&gt;
&lt;br /&gt;
0.1.0&lt;br /&gt;
* Added some missions using Satellites OXP (types 110, 111, 113, 115, 122, 124).&lt;br /&gt;
* Fixed issue where emailed missions, or missions delivered via another ship, were not checking all the conditions, giving the player a mission they couldn't complete.&lt;br /&gt;
* Fixed issue with &amp;quot;Request for meeting&amp;quot; missions, where the target would not respond when the passcode was transmitted.&lt;br /&gt;
* Added additional text to mission briefing for missions that require an interstellar space destination to make it clearer this is required.&lt;br /&gt;
* Added additional text to mission briefing to make it clearer when a mission requires the player to return to the source system in order to complete it.&lt;br /&gt;
* Applied distance and player score bonuses to Special delivery missions (type 40).&lt;br /&gt;
* Fixed issue with the WBSA device not being startable when the beacon is targeted.&lt;br /&gt;
* Fixed issue with the Range Finder not creating an energy drain.&lt;br /&gt;
* Mission text tweaks.&lt;br /&gt;
&lt;br /&gt;
0.0.9&lt;br /&gt;
* Added &amp;quot;Gather ingredients&amp;quot; mission (type 53).&lt;br /&gt;
* Fixed issue where missions with a deposit could have a negative net payment if the player's reputation is low.&lt;br /&gt;
* Fixed issue with manifest entries not reflecting the state of progress correctly.&lt;br /&gt;
* Reworked how textures are specified in mission definitions.&lt;br /&gt;
* Added overlay images to charity missions.&lt;br /&gt;
* Added routines to control the creation of asteroid fields, so they will be created in the same place in each system, and reused for future missions.&lt;br /&gt;
* Fixed issues with mission descriptions missing some text elements.&lt;br /&gt;
* Fixed issue with cargo recovery mission text containing &amp;quot;&amp;gt;undefined&amp;quot;.&lt;br /&gt;
* Fixed issue with RRS reputations causing a JavaScript error when opening the &amp;quot;Reputation and Awards&amp;quot; F4 screen.&lt;br /&gt;
* Headings on the reputations page will now be suppressed if there are no related items to display.&lt;br /&gt;
* Converted text for mission types 74, 100, 101 and 102 to use the PhraseGen tool.&lt;br /&gt;
* Some tweaks/fixes to mission text.&lt;br /&gt;
* Code refactoring.&lt;br /&gt;
&lt;br /&gt;
0.0.8&lt;br /&gt;
* Better logic for determining what is a witchpoint buoy.&lt;br /&gt;
* Better client name generation using PhraseGen tool.&lt;br /&gt;
* Fixed minor text issue with the &amp;quot;decline mission&amp;quot; for escape pod messages.&lt;br /&gt;
* No mission accept/complete confirmation emails will be sent for secondary missions when the source of the mission is an NPC from an escape pod or a ship.&lt;br /&gt;
* If player ejects escape pod while in pod occupant is communicating, conversation will stop and mission offering will be correctly terminated.&lt;br /&gt;
* Fixed error when scooping escape pod with no &amp;quot;crew&amp;quot; set (ie equivalent to scooping 1t slaves)&lt;br /&gt;
* Improved robustness of &amp;quot;Rescue Stricken Ship&amp;quot; missions.&lt;br /&gt;
* Fixed issue where stricken ships were not communicating with player correctly.&lt;br /&gt;
* Fixed error when firing on the stricken ship after it was repaired.&lt;br /&gt;
&lt;br /&gt;
0.0.7&lt;br /&gt;
* Better logic for determining if a pirate ship has just been destroyed.&lt;br /&gt;
* Added a &amp;quot;+/-&amp;quot; indicator on the Range Finder MFD, to make it clearer in which direction the player is moving in relation to the target.&lt;br /&gt;
&lt;br /&gt;
0.0.6&lt;br /&gt;
* Prevented Cargo Shepherd magnets from being targeted by delivery ships.&lt;br /&gt;
* Corrected issues with intergrating to the Smugglers Black Market script.&lt;br /&gt;
&lt;br /&gt;
0.0.5&lt;br /&gt;
* Fixed mess left after code refactoring. :(&lt;br /&gt;
&lt;br /&gt;
0.0.4&lt;br /&gt;
* Fixed issue with escape pod missions not being complete-able.&lt;br /&gt;
* Turned off lights on derelict ships.&lt;br /&gt;
* Code refactoring to reduce the chance of scripts for various mission types conflicting with another.&lt;br /&gt;
* More robust logic for connecting with Smugglers Black Market.&lt;br /&gt;
* Bug fixes.&lt;br /&gt;
&lt;br /&gt;
0.0.3&lt;br /&gt;
* Made compatible with Oolite v1.84.&lt;br /&gt;
&lt;br /&gt;
0.0.2&lt;br /&gt;
* Initial public release.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quick Facts ==&lt;br /&gt;
{{OXPLevel|1|4}}{{IconOXP|ooVersion=&amp;quot;1.84&amp;quot;|oxpCPU=&amp;quot;Average&amp;quot;|oxpMEM=&amp;quot;Average&amp;quot;|oxpGPU=&amp;quot;Low&amp;quot;|oxpIsConfigurable=true}}&lt;br /&gt;
{|class=&amp;quot;floatright&amp;quot; style=&amp;quot;alignment:right;margin: 0 auto;&amp;quot;&lt;br /&gt;
|[[Image:IconLib.png|48px|right|link=Library OXP|alt=Config options available through 'Library']]&lt;br /&gt;
|[[Image:IconBB.png|48px|right|link=Bulletin Board System|alt=Missions offered through the 'Bulletin Board System']]&lt;br /&gt;
|[[Image:IconGNN.png|48px|right|link=GNN|alt=News items displayed through GNN]]&lt;br /&gt;
|}&lt;br /&gt;
{{Infobox OXPb| title = GalCopMissions.oxz&lt;br /&gt;
|version = 0.14&lt;br /&gt;
|release = 2026-04-20&lt;br /&gt;
|license = CC BY-NC-SA 4.0&lt;br /&gt;
|features = Missions&lt;br /&gt;
|category = Missions OXPs&lt;br /&gt;
|author = [[User:phkb|phkb]]&lt;br /&gt;
|feedback = [https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=18745 Oolite BB]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay and Balance indicator ==&lt;br /&gt;
[[File:Tag-colour-green.png]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Ethics&amp;diff=90051</id>
		<title>Ethics</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Ethics&amp;diff=90051"/>
		<updated>2026-07-28T09:57:35Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: /* OXPs adding ethical choices */ Added a note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OXPNote|This Page is under construction!}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Prohip xpat1.jpg|thumb|500px|right|The Refugee Adder - do you try and protect it, or do you sell off the refugees as slaves?]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
Since the nature of Classic Elite/Oolite is a sandbox game where you make your own decisions about what the goals of your game actually should be, you decide your own ethics - and can add in OXPs which reflect this.&lt;br /&gt;
&lt;br /&gt;
There are several sets of choices which you must make as a player.&lt;br /&gt;
:1) Do you deal in illegal goods - and specifically, how do you deal with slaves?&lt;br /&gt;
:2) Do you attack innocents and act piratically, or do you only attack when you yourself are attacked (or do you do something in between?).&lt;br /&gt;
&lt;br /&gt;
These choices can be added to by adding such OXPs as Refugee Adder, Illegal Goods Tweak OXP and GalCop Missions.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Cheating]] - analysis of how one can cheat in Oolite (and relevant OXP's)&lt;br /&gt;
*[[Slaves]] - list of OXPs which affect this aspect of the game&lt;br /&gt;
*[[Piracy]] - list of OXPs which either allow a life of piracy - or which allow you to join groups fighting the pirates&lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=10857 House Rools] (2011) - listings of different approaches to Oolite: the Smuggler, the Regulator, the Gentleman, ''etc''.&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21218 Do any of you play by an &amp;quot;honor code&amp;quot;?] (2022-23)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=21391 An Ethics OXP?] (2023)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=21394 Escaping Prisoners (in Mining Pods from Commies OXP)] (2023)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=21890 NPC Detection Range] (2023)&lt;br /&gt;
&lt;br /&gt;
=== The Dark Side ===&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=250371#p250371 Bug: Player can Lead a Group, but AIs Don't Like It] 2016 (re: leading a victim to safety)&lt;br /&gt;
&lt;br /&gt;
== OXP's ==&lt;br /&gt;
=== OXPs adding ethical choices ===&lt;br /&gt;
*[[Refugee Adder]] - do you help? Or threaten/attack?&lt;br /&gt;
*[[Commies]] - this adds in the occasional escapee from the Astrogulags. Again, do you help - or attack?&lt;br /&gt;
*[[Illegal Goods Tweak OXP]] - do you try and bribe the customs to look the other way?&lt;br /&gt;
*[[GalCop Missions]] - do you accept slave-freeing missions? And also enables charitable work/donations.&lt;br /&gt;
*[[Random Hits]] - do you accept any old contract as long as it pays - or are you more selective?&lt;br /&gt;
*[[Hermitage]] - do you steal somebody else's Rock Hermit? Do you deal in illegal goods - or do you shut down the black market?&lt;br /&gt;
*[[Life in the Frontier]] allows donations to charity and a fresh selection of vices!&lt;br /&gt;
*Some of the missions also add in ethical choices - such as deciding whether to accept the [[Taranis]] mission, or the choices in [[Vector]] (you need to load up an older version of Oolite for this broken oxp).&lt;br /&gt;
&lt;br /&gt;
=== OXP's which affect cheating ===&lt;br /&gt;
*See [[Cheating]] for a list and discussion of these.&lt;br /&gt;
&lt;br /&gt;
[[Category:Factual]] [[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_System_Populator&amp;diff=90027</id>
		<title>Oolite System Populator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_System_Populator&amp;diff=90027"/>
		<updated>2026-07-26T07:08:19Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added summary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page dates from 2013: it covers the present-day populatory protocols. For ''previous'' populatory protocols (2004-13) see [[System Populator]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Oolite System Populator has three parts:&lt;br /&gt;
# Via [[planetinfo.plist]] populator and repopulator functions are defined. Different functions may be defined for different systems.&lt;br /&gt;
# The populator function is called whenever a new system (or region of interstellar space) needs populating: immediately after the [[Oolite JavaScript Reference: World script event handlers#startUp|startUp]] world event, and immediately before the [[Oolite JavaScript Reference: World script event handlers#shipWillExitWitchspace|shipWillExitWitchspace]] world event. It acts like a world event itself, but does not have a fixed name. This function should use [[Oolite JavaScript Reference: System#setPopulator|system.setPopulator()]] to set up system population.&lt;br /&gt;
# The repopulator function is called every twenty seconds of [[Time scales in Oolite#Game real time|game real time]]. This function should use functions like [[Oolite JavaScript Reference: System#addGroup|system.addGroup()]] and [[Oolite JavaScript Reference: Station#launchShipWithRole|station.launchShipWithRole()]] to add new ships to the system as required to replace those which have been destroyed, or for other new arrivals.&lt;br /&gt;
&lt;br /&gt;
== Defining populator functions ==&lt;br /&gt;
There are three &amp;quot;default&amp;quot; populator and repopulator functions.&lt;br /&gt;
* '''For normal systems''': &amp;lt;code&amp;gt;systemWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''For interstellar space''': &amp;lt;code&amp;gt;interstellarSpaceWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;interstellarSpaceWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''For nova systems''': &amp;lt;code&amp;gt;novaSystemWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;novaSystemWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OXPs which intend to add additional content to &amp;quot;normal&amp;quot; systems should define these functions in a worldscript, and use them to add to or amend the default population.&lt;br /&gt;
&lt;br /&gt;
OXPs which wish to &amp;quot;take over&amp;quot; a system or systems should use [[planetinfo.plist]] to set a different populator function which is unique to their worldscript(s). This then prevents normal system population, including modifications from other more generic OXPs (provided those OXPs have been written to use this new population method, of course)&lt;br /&gt;
&lt;br /&gt;
== The system setPopulator function ==&lt;br /&gt;
The system populator is a dictionary of populator definitions set by using the [[Oolite_JavaScript_Reference:_System#setPopulator|system.setPopulator()]] function. Existing definitions may be overwritten by specifying a new definition for that key, and the definitions set up so far may be read in [[Oolite_JavaScript_Reference:_System#populatorSettings|system.populatorSettings]]&lt;br /&gt;
&lt;br /&gt;
Each definition has the following required parameters:&lt;br /&gt;
* '''callback''' : a function which takes a single parameter, a Vector. This function when called should then add entities to the system at or near the Vector passed to it using the standard &amp;lt;code&amp;gt;system.addShips&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;system.addGroup&amp;lt;/code&amp;gt; functions.&lt;br /&gt;
&lt;br /&gt;
...and the following optional parameters:&lt;br /&gt;
* '''priority''' : a number. The default is 100. Populator definitions will be run in priority order, with ties broken randomly. Values below 100 should be considered reserved for Oolite if you are using the default populator functions, and only used with an understanding of the implications.&lt;br /&gt;
* '''location''' : a string which must either be &amp;quot;COORDINATES&amp;quot; (the default) or a region name. Region names are listed below.&lt;br /&gt;
* '''locationSeed''' : a number. The default is zero. If this is zero, the location is picked entirely randomly within the named region. Otherwise, it is picked using a seeded random number generator, guaranteed to give the same answer every time it is used in this system (but not the same answer as in other systems). If the &amp;lt;code&amp;gt;groupCount&amp;lt;/code&amp;gt; is greater than zero and a &amp;lt;code&amp;gt;locationSeed&amp;lt;/code&amp;gt; is set, an appropriate number of deterministic locations within the region will be picked, always in the same order.&lt;br /&gt;
* '''coordinates''' : this must be a valid Vector expression if &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is &amp;quot;COORDINATES&amp;quot;. It is ignored otherwise.&lt;br /&gt;
* '''groupCount''' : a number, default 1. This is the number of times the callback function will be called. It is only really useful with &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt;s other than &amp;quot;COORDINATES&amp;quot;.&lt;br /&gt;
* '''deterministic''' : a boolean, default false. If this is true (only possible when using &amp;quot;COORDINATES&amp;quot; or a non-zero &amp;lt;code&amp;gt;locationSeed&amp;lt;/code&amp;gt;, and not in nova systems or interstellar space) this is a promise to Oolite that this populator function will always be called with these parameters if the player revisits this system, provided the OXP has the power to do so, and will always have the same effect when it is called. (i.e. it has not been uninstalled, had the system populator function changed under it, has its populator entries removed by another OXP, etc.). Currently secondary stations added by deterministic populators may allow the player to save and load the game. If the player saves the game at such a station, which is then not there when they reload the game, they will be returned to the main station as a safety measure.&lt;br /&gt;
&lt;br /&gt;
=== Named regions ===&lt;br /&gt;
The following named regions exist in Oolite v.1.79 and later.&lt;br /&gt;
* '''WITCHPOINT''' : A position within scanner range of the witchpoint. In interstellar space and nova systems, all named regions are equivalent to this. Unrecognised region names will also be treated as &amp;quot;WITCHPOINT&amp;quot;&lt;br /&gt;
* '''LANE_PS''', '''LANE_WP''', '''LANE_WS''' : A position on the space lane between the planet, sun and witchpoint, within two scanner ranges of the centre of the lane, and not within three radii of the planet or sun, or scanner range of the witchpoint.&lt;br /&gt;
* '''LANE_WPS''' : Picks one of the lane parameters, weighted to the lengths of the three lanes.&lt;br /&gt;
* '''STATION_AEGIS''' : A position within two scanner ranges of the main station, but not too close to the planet.&lt;br /&gt;
* '''PLANET_ORBIT''', '''PLANET_ORBIT_HIGH''', '''PLANET_ORBIT_LOW''' : A position less than 1 radii from the main planet's surface (low orbit), between 1 and 3 radii (orbit), or between 3 and 7 radii (high orbit)&lt;br /&gt;
* '''STAR_ORBIT''', '''STAR_ORBIT_HIGH''', '''STAR_ORBIT_LOW''' : As the planet orbits, but relative to the system's star's position and radius.&lt;br /&gt;
* '''TRIANGLE''' : A position in the the triangle described by the sun, main planet, and witchpoint, at least three radii from the sun and planet and three scanner ranges from the witchpoint.&lt;br /&gt;
* '''INNER_SYSTEM''', '''INNER_SYSTEM_OFFPLANE''' : A position at least as close to the sun as the planet is, but no closer than three radii. If &amp;quot;OFFPLANE&amp;quot; is not specified, the position will be close to the plane described by the sun, main planet and witchpoint.&lt;br /&gt;
* '''OUTER_SYSTEM''', '''OUTER_SYSTEM_OFFPLANE''' : A position at least as far from the sun as the planet is, but no further than 10,000km from it. Note that coordinates in this area may take the player 15 minutes or more to reach at full torus speeds, and ships travelling at conventional speeds may take several hours or even days to reach these locations from the inner system.&lt;br /&gt;
&lt;br /&gt;
== The system repopulator function ==&lt;br /&gt;
&lt;br /&gt;
The system repopulator function will be called approximately every twenty seconds, and can be used to replace ships that have been destroyed. Generally such replacements should enter the system in a believable way - exiting witchspace near the witchpoint, by being launched from an appropriate station or the planet, or by some similar method. It is important for smooth gameplay that this function runs very quickly. If calculations are needed, run as many as possible in the populator function to save the result.&lt;br /&gt;
&lt;br /&gt;
== Location of stations ==&lt;br /&gt;
 &amp;quot;One of the reasons for the changes to the populator back in Oolite v.1.80 was to make it easier for stations to be placed individually at consistent per-system positions without them being also always being placed at the same consistent per-system positions as each other or even the same position in every system they're in. I'm not sure any of those OXPs have been updated enough since then to take advantage of that, however.&amp;quot; [https://bb.oolite.space/viewtopic.php?p=254182#p254182 Cim 2017]&lt;br /&gt;
&lt;br /&gt;
=== Stranger's World ===&lt;br /&gt;
Note that the orbital movement of planets and moons around the sun (based on &amp;quot;0,0,0&amp;quot; being at the witchpoint beacon) means that many of the stations in Stranger's World cannot be used for saving games. &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[System Populator]] - more on this&lt;br /&gt;
*[[Configurable Populator]] - OXP for adjusting some populations in-game&lt;br /&gt;
*[[Custom Populator OXP]] - utility for adjusting populations &lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=8117 System.addShips] (2010 BB discussion)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=8104 Placing objects in Oolite space - understanding the co-ords] (2010 BB discussion)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=8188 ship populator code] (2010 BB analysis)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=304792#p304792 start] of lengthy BB discussion on how to override populators from ''other'' OXPs within specific systems (2026). This runs for two pages:&lt;br /&gt;
:The &amp;quot;Police role&amp;quot; will spawn Vipers in the strict game (Viper Interceptors are added to this once OXPs are allowed: ''ie'' in a &amp;quot;non-strict&amp;quot; game). &lt;br /&gt;
:Suppose that ''eg''. Commies OXP added in &amp;quot;Thought Police&amp;quot; with such weighting that the spawning ratio becomes &amp;quot;1/102 Viper &amp;lt;&amp;gt; 1/102 Viper Interceptor &amp;lt;&amp;gt; 100/102 Thought Police&amp;quot; in a Commie system. That would then lead to &amp;quot;1/102 Viper &amp;lt;&amp;gt; 1/102 Viper Interceptor &amp;lt;&amp;gt; 100/102 ''nothing'' spawned&amp;quot; in a non-Commie system.&lt;br /&gt;
:LittleBear overrides all this (in his Assassins Guild OXP) using the &amp;quot;shipSpawned&amp;quot; world event  - rather than faffing about with the gory entrails of the populator mechanism. &lt;br /&gt;
:This is only in the specific case where you want to ''replace'' ships rather than adding them - and you don't want your ships to replace ships in the game generally, but only at particular places under particular circumstances. &lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_System_Populator&amp;diff=90026</id>
		<title>Oolite System Populator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_System_Populator&amp;diff=90026"/>
		<updated>2026-07-24T10:26:11Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added note, tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page dates from 2013: it covers the present-day populatory protocols. For ''previous'' populatory protocols (2004-13) see [[System Populator]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Oolite System Populator has three parts:&lt;br /&gt;
# Via [[planetinfo.plist]] populator and repopulator functions are defined. Different functions may be defined for different systems.&lt;br /&gt;
# The populator function is called whenever a new system (or region of interstellar space) needs populating: immediately after the [[Oolite JavaScript Reference: World script event handlers#startUp|startUp]] world event, and immediately before the [[Oolite JavaScript Reference: World script event handlers#shipWillExitWitchspace|shipWillExitWitchspace]] world event. It acts like a world event itself, but does not have a fixed name. This function should use [[Oolite JavaScript Reference: System#setPopulator|system.setPopulator()]] to set up system population.&lt;br /&gt;
# The repopulator function is called every twenty seconds of [[Time scales in Oolite#Game real time|game real time]]. This function should use functions like [[Oolite JavaScript Reference: System#addGroup|system.addGroup()]] and [[Oolite JavaScript Reference: Station#launchShipWithRole|station.launchShipWithRole()]] to add new ships to the system as required to replace those which have been destroyed, or for other new arrivals.&lt;br /&gt;
&lt;br /&gt;
== Defining populator functions ==&lt;br /&gt;
There are three &amp;quot;default&amp;quot; populator and repopulator functions.&lt;br /&gt;
* '''For normal systems''': &amp;lt;code&amp;gt;systemWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systemWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''For interstellar space''': &amp;lt;code&amp;gt;interstellarSpaceWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;interstellarSpaceWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''For nova systems''': &amp;lt;code&amp;gt;novaSystemWillPopulate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;novaSystemWillRepopulate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OXPs which intend to add additional content to &amp;quot;normal&amp;quot; systems should define these functions in a worldscript, and use them to add to or amend the default population.&lt;br /&gt;
&lt;br /&gt;
OXPs which wish to &amp;quot;take over&amp;quot; a system or systems should use [[planetinfo.plist]] to set a different populator function which is unique to their worldscript(s). This then prevents normal system population, including modifications from other more generic OXPs (provided those OXPs have been written to use this new population method, of course)&lt;br /&gt;
&lt;br /&gt;
== The system setPopulator function ==&lt;br /&gt;
The system populator is a dictionary of populator definitions set by using the [[Oolite_JavaScript_Reference:_System#setPopulator|system.setPopulator()]] function. Existing definitions may be overwritten by specifying a new definition for that key, and the definitions set up so far may be read in [[Oolite_JavaScript_Reference:_System#populatorSettings|system.populatorSettings]]&lt;br /&gt;
&lt;br /&gt;
Each definition has the following required parameters:&lt;br /&gt;
* '''callback''' : a function which takes a single parameter, a Vector. This function when called should then add entities to the system at or near the Vector passed to it using the standard &amp;lt;code&amp;gt;system.addShips&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;system.addGroup&amp;lt;/code&amp;gt; functions.&lt;br /&gt;
&lt;br /&gt;
...and the following optional parameters:&lt;br /&gt;
* '''priority''' : a number. The default is 100. Populator definitions will be run in priority order, with ties broken randomly. Values below 100 should be considered reserved for Oolite if you are using the default populator functions, and only used with an understanding of the implications.&lt;br /&gt;
* '''location''' : a string which must either be &amp;quot;COORDINATES&amp;quot; (the default) or a region name. Region names are listed below.&lt;br /&gt;
* '''locationSeed''' : a number. The default is zero. If this is zero, the location is picked entirely randomly within the named region. Otherwise, it is picked using a seeded random number generator, guaranteed to give the same answer every time it is used in this system (but not the same answer as in other systems). If the &amp;lt;code&amp;gt;groupCount&amp;lt;/code&amp;gt; is greater than zero and a &amp;lt;code&amp;gt;locationSeed&amp;lt;/code&amp;gt; is set, an appropriate number of deterministic locations within the region will be picked, always in the same order.&lt;br /&gt;
* '''coordinates''' : this must be a valid Vector expression if &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is &amp;quot;COORDINATES&amp;quot;. It is ignored otherwise.&lt;br /&gt;
* '''groupCount''' : a number, default 1. This is the number of times the callback function will be called. It is only really useful with &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt;s other than &amp;quot;COORDINATES&amp;quot;.&lt;br /&gt;
* '''deterministic''' : a boolean, default false. If this is true (only possible when using &amp;quot;COORDINATES&amp;quot; or a non-zero &amp;lt;code&amp;gt;locationSeed&amp;lt;/code&amp;gt;, and not in nova systems or interstellar space) this is a promise to Oolite that this populator function will always be called with these parameters if the player revisits this system, provided the OXP has the power to do so, and will always have the same effect when it is called. (i.e. it has not been uninstalled, had the system populator function changed under it, has its populator entries removed by another OXP, etc.). Currently secondary stations added by deterministic populators may allow the player to save and load the game. If the player saves the game at such a station, which is then not there when they reload the game, they will be returned to the main station as a safety measure.&lt;br /&gt;
&lt;br /&gt;
=== Named regions ===&lt;br /&gt;
The following named regions exist in Oolite v.1.79 and later.&lt;br /&gt;
* '''WITCHPOINT''' : A position within scanner range of the witchpoint. In interstellar space and nova systems, all named regions are equivalent to this. Unrecognised region names will also be treated as &amp;quot;WITCHPOINT&amp;quot;&lt;br /&gt;
* '''LANE_PS''', '''LANE_WP''', '''LANE_WS''' : A position on the space lane between the planet, sun and witchpoint, within two scanner ranges of the centre of the lane, and not within three radii of the planet or sun, or scanner range of the witchpoint.&lt;br /&gt;
* '''LANE_WPS''' : Picks one of the lane parameters, weighted to the lengths of the three lanes.&lt;br /&gt;
* '''STATION_AEGIS''' : A position within two scanner ranges of the main station, but not too close to the planet.&lt;br /&gt;
* '''PLANET_ORBIT''', '''PLANET_ORBIT_HIGH''', '''PLANET_ORBIT_LOW''' : A position less than 1 radii from the main planet's surface (low orbit), between 1 and 3 radii (orbit), or between 3 and 7 radii (high orbit)&lt;br /&gt;
* '''STAR_ORBIT''', '''STAR_ORBIT_HIGH''', '''STAR_ORBIT_LOW''' : As the planet orbits, but relative to the system's star's position and radius.&lt;br /&gt;
* '''TRIANGLE''' : A position in the the triangle described by the sun, main planet, and witchpoint, at least three radii from the sun and planet and three scanner ranges from the witchpoint.&lt;br /&gt;
* '''INNER_SYSTEM''', '''INNER_SYSTEM_OFFPLANE''' : A position at least as close to the sun as the planet is, but no closer than three radii. If &amp;quot;OFFPLANE&amp;quot; is not specified, the position will be close to the plane described by the sun, main planet and witchpoint.&lt;br /&gt;
* '''OUTER_SYSTEM''', '''OUTER_SYSTEM_OFFPLANE''' : A position at least as far from the sun as the planet is, but no further than 10,000km from it. Note that coordinates in this area may take the player 15 minutes or more to reach at full torus speeds, and ships travelling at conventional speeds may take several hours or even days to reach these locations from the inner system.&lt;br /&gt;
&lt;br /&gt;
== The system repopulator function ==&lt;br /&gt;
&lt;br /&gt;
The system repopulator function will be called approximately every twenty seconds, and can be used to replace ships that have been destroyed. Generally such replacements should enter the system in a believable way - exiting witchspace near the witchpoint, by being launched from an appropriate station or the planet, or by some similar method. It is important for smooth gameplay that this function runs very quickly. If calculations are needed, run as many as possible in the populator function to save the result.&lt;br /&gt;
&lt;br /&gt;
== Location of stations ==&lt;br /&gt;
 &amp;quot;One of the reasons for the changes to the populator back in Oolite v.1.80 was to make it easier for stations to be placed individually at consistent per-system positions without them being also always being placed at the same consistent per-system positions as each other or even the same position in every system they're in. I'm not sure any of those OXPs have been updated enough since then to take advantage of that, however.&amp;quot; [https://bb.oolite.space/viewtopic.php?p=254182#p254182 Cim 2017]&lt;br /&gt;
&lt;br /&gt;
=== Stranger's World ===&lt;br /&gt;
Note that the orbital movement of planets and moons around the sun (based on &amp;quot;0,0,0&amp;quot; being at the witchpoint beacon) means that many of the stations in Stranger's World cannot be used for saving games. &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[System Populator]] - more on this&lt;br /&gt;
*[[Configurable Populator]] - OXP for adjusting some populations in-game&lt;br /&gt;
*[[Custom Populator OXP]] - utility for adjusting populations &lt;br /&gt;
&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=8117 System.addShips] (2010 BB discussion)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=8104 Placing objects in Oolite space - understanding the co-ords] (2010 BB discussion)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=8188 ship populator code] (2010 BB analysis)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=304792#p304792 start] of lengthy discussion on how to override populators from ''other'' OXPs within specific systems (2026 BB discussion)&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Xs-lib_pad_xepatl1.png&amp;diff=90025</id>
		<title>File:Xs-lib pad xepatl1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Xs-lib_pad_xepatl1.png&amp;diff=90025"/>
		<updated>2026-07-23T17:37:08Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_coordinate_systems&amp;diff=90019</id>
		<title>Oolite coordinate systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_coordinate_systems&amp;diff=90019"/>
		<updated>2026-07-19T15:34:50Z</updated>

		<summary type="html">&lt;p&gt;Cholmondely: Added note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:FPS report.png|600px|thumb|[[Frame rate]] and object counter from the &amp;quot;Developer's Test Release&amp;quot; versions of Oolite]]&lt;br /&gt;
== Oolite Coordinate system ==&lt;br /&gt;
&lt;br /&gt;
By definition the witchpoint is the origin of the system with coordinate [0,0,0], and the buoy is placed at the origin. The main planet is placed on the Z-axis at a distance of about 10 to 14 times the main planet radius from the origin. (This is roughly at 300 000 to 900 000 meters from the origin). The sun is placed at a random direction from the planet, around 20 planetary radii from the planet, but never too close to the witchpoint-planet line.&lt;br /&gt;
&lt;br /&gt;
== legacy_addShipAt systems ==&lt;br /&gt;
&lt;br /&gt;
In most situations the scripter is not interested in the exact coordinates of a point but just the position relative to other system objects. For this reason offers Oolite a whole series of different coordinate systems for the scripter. These are all characterised with a 3-character code to be used in the various legacy_addShip functions.&lt;br /&gt;
&lt;br /&gt;
=== first letter ===&lt;br /&gt;
The first letter indicates the feature that is the origin of the coordinate system.&lt;br /&gt;
 w =&amp;gt; witchpoint&lt;br /&gt;
 s =&amp;gt; sun&lt;br /&gt;
 p =&amp;gt; planet&lt;br /&gt;
&lt;br /&gt;
=== second letter ===&lt;br /&gt;
The next letter indicates the feature on the 'z' axis of the coordinate system.&lt;br /&gt;
 w =&amp;gt; witchpoint&lt;br /&gt;
 s =&amp;gt; sun&lt;br /&gt;
 p =&amp;gt; planet&lt;br /&gt;
&lt;br /&gt;
Then the 'y' axis of the system is normal to the plane formed by the planet, sun and witchpoint.&lt;br /&gt;
And the 'x' axis of the system is normal to the y and z axes.&lt;br /&gt;
So:&lt;br /&gt;
 ps:  z axis = (planet -&amp;gt; sun)  y axis = normal to (planet - sun - witchpoint)  x axis = normal to y and z axes&lt;br /&gt;
 pw:  z axis = (planet -&amp;gt; witchpoint)  y axis = normal to (planet - witchpoint - sun)  x axis = normal to y and z axes&lt;br /&gt;
 sp:  z axis = (sun -&amp;gt; planet)  y axis = normal to (sun - planet - witchpoint)  x axis = normal to y and z axes&lt;br /&gt;
 sw:  z axis = (sun -&amp;gt; witchpoint)  y axis = normal to (sun - witchpoint - planet)  x axis = normal to y and z axes&lt;br /&gt;
 wp:  z axis = (witchpoint -&amp;gt; planet)  y axis = normal to (witchpoint - planet - sun)  x axis = normal to y and z axes&lt;br /&gt;
 ws:  z axis = (witchpoint -&amp;gt; sun)  y axis = normal to (witchpoint - sun - planet)  x axis = normal to y and z axes&lt;br /&gt;
&lt;br /&gt;
=== third letter ===&lt;br /&gt;
The third letter denotes the units used:&lt;br /&gt;
 m:  meters&lt;br /&gt;
 p:  planetary radii&lt;br /&gt;
 s:  solar radii&lt;br /&gt;
 u:  distance between first two features indicated from 0 to 1. Negative values or values greater that 1 are allowed. &lt;br /&gt;
(eg. spu means that u = distance from sun to the planet)&lt;br /&gt;
&lt;br /&gt;
in interstellar space (== no sun) coordinates are absolute irrespective of the system used&lt;br /&gt;
&lt;br /&gt;
== absolute coordinates ==&lt;br /&gt;
When you use the code &amp;quot;abs&amp;quot; as coordinate system, than there is no transformation and you can use coordinates in Oolite's internal coordinate system. For more in depth position calculations this native system will be the most important system.&lt;br /&gt;
&lt;br /&gt;
With the '''Vector3D.interpolate''' method you can create your own coordinate system. When you add a custom station in a system and you want to populate the spacelane between this station and the main station you can use:&lt;br /&gt;
 coordinate = Vector3D.interpolate(system.mainStation.position, cutomStation.position, fraction)&lt;br /&gt;
This results in an absolute '''coordinate''' between the two positions. Fraction runs from 0 to 1, representing the lane and values outside this range are also allowed. By using:&lt;br /&gt;
 system.legacy_addShipsAt(&amp;quot;role&amp;quot;, number, &amp;quot;abs&amp;quot;, coordinate)&lt;br /&gt;
you add the ship at exactly that calculated spot.&lt;br /&gt;
&lt;br /&gt;
=== Cim's comment ===&lt;br /&gt;
Note to OXPers: best practice is to never add anything using hard-coded absolute coordinates... Always calculate the coordinates relative to existing objects. In 1.79, you'll be able to get Oolite to give you &amp;quot;safe&amp;quot; coordinates in particular regions of space relative to the major objects. ([https://bb.oolite.space/viewtopic.php?p=205451#p205451 Cim, 2013])&lt;br /&gt;
&lt;br /&gt;
== legacy_addSystemShips ==&lt;br /&gt;
For this one you don't need to specify a coordinate system. It uses the line witchpoint to main station as its baseline. Just be aware that this line is not the same as witchpoint&amp;lt;--&amp;gt;planet. The more close to the planet the more they start to deviate from each other. Players flying straight from witchpoint to the station will find ships sooner on this route while players that first fly to the planet will find ships sooner when added on the &amp;quot;wpu&amp;quot; route. Take note that the populator adds the ships on the &amp;quot;wpu&amp;quot; route. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Oolite System Populator]]&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?t=8104 Placing objects in oolite space - understanding the co-ordinates (2010)]&lt;br /&gt;
&lt;br /&gt;
[[Oolite_JavaScript_Reference:_System|return]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite_scripting]]&lt;/div&gt;</summary>
		<author><name>Cholmondely</name></author>
		
	</entry>
</feed>