<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PG1</id>
	<title>Elite Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PG1"/>
	<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php/Special:Contributions/PG1"/>
	<updated>2026-04-12T00:17:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54496</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54496"/>
		<updated>2017-06-16T18:17:34Z</updated>

		<summary type="html">&lt;p&gt;PG1: changed link to Interactive Map to insecure one (http instead of https)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
The format of the entries is:&lt;br /&gt;
&lt;br /&gt;
: #  {system ID}. '''{name}''' ({coordinates}), { {IDs of nearby systems} } within 7.0 LY. Radius {radius of main planet} km. &lt;br /&gt;
:: {government}, {economy}. Pop. {population} B, Prod. {productivity} MCr. HC: {hub count}, TL: {tech level}, {inhabitant description}.&lt;br /&gt;
:: ''{system comments}''&lt;br /&gt;
&lt;br /&gt;
for example&lt;br /&gt;
&lt;br /&gt;
: #  7. '''Lave''' (20,173), {39,46,55,129,147,255} within 7.0 LY. Radius 4116 km. &lt;br /&gt;
:: Dictatorship, Rich Agri. Pop. 2.5 B, Prod. 7000 MCr. HC: 6, TL: 5, Human Colonials.&lt;br /&gt;
:: ''Lave is most famous for its vast rain forests and the Laveian tree grub. ''&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
* Online interactive maps.&lt;br /&gt;
** [http://bit.ly/OoliteInteractiveMap2 OOlite Interactive Map] courtesy of PhantorGorth. It does 2D &amp;amp; 3D modes for displaying the planet map and the planet data. Also there is a superb jump route calculator.&lt;br /&gt;
** [http://theramist.co.uk/ooliteinfo/oo.php OOliteInfo] from Maaarcooose is also available which not only displays the galaxy maps and all planet data, but also allows modification of the seed numbers used to generate the galaxy data. '''Note: The economy descriptions for a lot of planets are not accurately described on this resource.'''&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
=== Notes on values ===&lt;br /&gt;
&lt;br /&gt;
* For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;hub count&amp;quot; is the number of systems reachable from this system in a single jump: it will always match the number of systems in the &amp;quot;IDs of nearby systems&amp;quot; list.&lt;br /&gt;
&lt;br /&gt;
* The radius of the main planet as an in-game object is 1/100th of that listed by the system description.&lt;br /&gt;
&lt;br /&gt;
* The coordinates are in X, Y format, ranging from 0,0 (top left corner) to 255,255 (bottom right corner). When translated to the galactic maps, because they are rectangular rather than square, this means that an X coordinate step is 0.4 LY, but a Y coordinate step is only 0.2 LY&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/OoliteGalaxiesSpreadsheet spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/OoliteInteractiveMap2 interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror] -- [[Sector3/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror] -- [[Sector4/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror] -- [[Sector5/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror] -- [[Sector6/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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] -- [[Sector7/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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] -- [[Sector8/Index|The New Galaxy Guide]]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54349</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54349"/>
		<updated>2017-04-25T21:01:02Z</updated>

		<summary type="html">&lt;p&gt;PG1: Fixed link for Oolite Interactive Map&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
The format of the entries is:&lt;br /&gt;
&lt;br /&gt;
: #  {system ID}. '''{name}''' ({coordinates}), { {IDs of nearby systems} } within 7.0 LY. Radius {radius of main planet} km. &lt;br /&gt;
:: {government}, {economy}. Pop. {population} B, Prod. {productivity} MCr. HC: {hub count}, TL: {tech level}, {inhabitant description}.&lt;br /&gt;
:: ''{system comments}''&lt;br /&gt;
&lt;br /&gt;
for example&lt;br /&gt;
&lt;br /&gt;
: #  7. '''Lave''' (20,173), {39,46,55,129,147,255} within 7.0 LY. Radius 4116 km. &lt;br /&gt;
:: Dictatorship, Rich Agri. Pop. 2.5 B, Prod. 7000 MCr. HC: 6, TL: 5, Human Colonials.&lt;br /&gt;
:: ''Lave is most famous for its vast rain forests and the Laveian tree grub. ''&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
* Online interactive maps.&lt;br /&gt;
** [http://bit.ly/OoliteInteractiveMap OOlite Interactive Map] courtesy of PhantorGorth. It does 2D &amp;amp; 3D modes for displaying the planet map and the planet data. Also there is a superb jump route calculator.&lt;br /&gt;
** [http://theramist.co.uk/ooliteinfo/oo.php OOliteInfo] from Maaarcooose is also available which not only displays the galaxy maps and all planet data, but also allows modification of the seed numbers used to generate the galaxy data. '''Note: The economy descriptions for a lot of planets are not accurately described on this resource.'''&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
=== Notes on values ===&lt;br /&gt;
&lt;br /&gt;
* For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;hub count&amp;quot; is the number of systems reachable from this system in a single jump: it will always match the number of systems in the &amp;quot;IDs of nearby systems&amp;quot; list.&lt;br /&gt;
&lt;br /&gt;
* The radius of the main planet as an in-game object is 1/100th of that listed by the system description.&lt;br /&gt;
&lt;br /&gt;
* The coordinates are in X, Y format, ranging from 0,0 (top left corner) to 255,255 (bottom right corner). When translated to the galactic maps, because they are rectangular rather than square, this means that an X coordinate step is 0.4 LY, but a Y coordinate step is only 0.2 LY&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/OoliteGalaxiesSpreadsheet spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/Oolite2DMap interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror] -- [[Sector3/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror] -- [[Sector4/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror] -- [[Sector5/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror] -- [[Sector6/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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] -- [[Sector7/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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] -- [[Sector8/Index|The New Galaxy Guide]]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54348</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=54348"/>
		<updated>2017-04-25T17:47:59Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Where do these crazy names come from? */ fixed the link for the spreadsheet as a zip file now points to my website (via bit.ly) rather than Dropbox.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
The format of the entries is:&lt;br /&gt;
&lt;br /&gt;
: #  {system ID}. '''{name}''' ({coordinates}), { {IDs of nearby systems} } within 7.0 LY. Radius {radius of main planet} km. &lt;br /&gt;
:: {government}, {economy}. Pop. {population} B, Prod. {productivity} MCr. HC: {hub count}, TL: {tech level}, {inhabitant description}.&lt;br /&gt;
:: ''{system comments}''&lt;br /&gt;
&lt;br /&gt;
for example&lt;br /&gt;
&lt;br /&gt;
: #  7. '''Lave''' (20,173), {39,46,55,129,147,255} within 7.0 LY. Radius 4116 km. &lt;br /&gt;
:: Dictatorship, Rich Agri. Pop. 2.5 B, Prod. 7000 MCr. HC: 6, TL: 5, Human Colonials.&lt;br /&gt;
:: ''Lave is most famous for its vast rain forests and the Laveian tree grub. ''&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
* Online interactive maps.&lt;br /&gt;
** [http://bit.ly/Oolite2DMap OOlite Interactive Map] courtesy of PhantorGorth. It does 2D &amp;amp; 3D modes for displaying the planet map and the planet data. Also there is a superb jump route calculator.&lt;br /&gt;
** [http://theramist.co.uk/ooliteinfo/oo.php OOliteInfo] from Maaarcooose is also available which not only displays the galaxy maps and all planet data, but also allows modification of the seed numbers used to generate the galaxy data. '''Note: The economy descriptions for a lot of planets are not accurately described on this resource.'''&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
=== Notes on values ===&lt;br /&gt;
&lt;br /&gt;
* For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;hub count&amp;quot; is the number of systems reachable from this system in a single jump: it will always match the number of systems in the &amp;quot;IDs of nearby systems&amp;quot; list.&lt;br /&gt;
&lt;br /&gt;
* The radius of the main planet as an in-game object is 1/100th of that listed by the system description.&lt;br /&gt;
&lt;br /&gt;
* The coordinates are in X, Y format, ranging from 0,0 (top left corner) to 255,255 (bottom right corner). When translated to the galactic maps, because they are rectangular rather than square, this means that an X coordinate step is 0.4 LY, but a Y coordinate step is only 0.2 LY&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/OoliteGalaxiesSpreadsheet spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/Oolite2DMap interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror] -- [[Sector3/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror] -- [[Sector4/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror] -- [[Sector5/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror] -- [[Sector6/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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] -- [[Sector7/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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] -- [[Sector8/Index|The New Galaxy Guide]]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Deep_Horizons_Gas_Giant_Skimming_OXP&amp;diff=47825</id>
		<title>Deep Horizons Gas Giant Skimming OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Deep_Horizons_Gas_Giant_Skimming_OXP&amp;diff=47825"/>
		<updated>2015-06-11T22:07:24Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Background==&lt;br /&gt;
[[File:Gas_giant_skimming_header.jpg‎|thumb|left]]&lt;br /&gt;
Gravity compensators bucking like a Taargian Mule, enough atmospheric friction your hull could fry a Hoggian egg, and all for a chance to sift some quirium from a hydrogen stream. 'Ass draggin' a gas giant ain't for the weak-bladdered. And mining one?!? Leave that to the corporate 'wire-flies' if you know what's good for you. I worked on an 'Ass-Dragger' for a while. Why do you think I stay station-side now?!?&amp;quot; - Icosahedron Station Dock Worker in orbit of a gas giant&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
''The Road to Riches or the Elevator to Hell''&lt;br /&gt;
&lt;br /&gt;
Skimming gas giants to refuel a ship or mining one for rare minerals is not an easy task. But it is one that some pilots utilize to reduce their fuel costs, and a lucky (or foolhardy) few fill their holds with compressed exotic gases and other rarities. Any ship with a fuel scoop can attempt to refuel from a gas giant planet. Just get low enough in orbit and be going fast enough, and you can skim the atmosphere for Quirium ions. Or if you want to try mining, equip yourself with the necessary gas compressors and refining equipment and do the same. Keep in mind, mining requires a lower orbit than refueling. Heh... If it was easy, everyone would do it...&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
{{OXPLevel|0|3}}&lt;br /&gt;
Once the OXP is installed you can immediately start gas skimming. No extra equipment is required to the fuel scoop. The extra skimming possibility is provided by Deep Horizons Industries to all Fuel Scoop Manufacturers for low licensing costs (the scoop is a mass product after all).&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Unknown, but should still work with older releases (2011).&lt;br /&gt;
The License.txt states that v1.0.7 works with Oolite v1.75.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States license (Modified)&lt;br /&gt;
This is the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States license as detailed at &lt;br /&gt;
http://creativecommons.org/licenses/by-nc-nd/3.0/us/ with the additional terms and conditions as found in the License.txt file in the OXP package. By installing the OXP you agree to these terms and conditions.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
The [http://deephorizonindustries.com/Gas_Giant_Skimming.html latest version] is always available on the [http://deephorizonindustries.com/default.html Deep Horizons homepage]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Founded on the planet Teriar in Galaxy 3 originally, Deep Horizon Industries started as a planet-side manufacturer of large-scale farming equipment. It later expanded into early environmental modification systems to be utilized on agricultural worlds to expand growth seasons. Throughout its 200 year history, DHI has constantly expanded its product and service offerings to its consumers. Now offering State-of-the-Art optical sensors, gas refining equipment, and its traditional farming equipment to name but a few, Deep Horizon Industries is now a pan-galactic company catering to a wide array of customer needs...&lt;br /&gt;
&lt;br /&gt;
Read the [http://deephorizonindustries.com/about_company.html complete background story here].&lt;br /&gt;
== Authors ==&lt;br /&gt;
* Cmd. Cheyd&lt;br /&gt;
* Code optimizations provided by PhantorGorth&lt;br /&gt;
&lt;br /&gt;
[http://deephorizonindustries.com/contact.html Contact]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Activities_OXPs]][[Category:Mechanics_OXPs]][[Category:Oolite expansion packs]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=38883</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=38883"/>
		<updated>2014-01-11T09:44:27Z</updated>

		<summary type="html">&lt;p&gt;PG1: Changed the link back to the bit.ly address. (I do not want direct linking. DO NOT change back)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
* Online interactive maps.&lt;br /&gt;
** [http://bit.ly/Oolite2DMap OOlite Interactive Map] courtesy of PhantorGorth. It does 2D &amp;amp; 3D modes for displaying the planet map and the planet data. Also there is a superb jump route calculator.&lt;br /&gt;
** [http://theramist.co.uk/ooliteinfo/oo.php OOliteInfo] from Maaarcooose is also available which not only displays the galaxy maps and all planet data, but also allows modification of the seed numbers used to generate the galaxy data.&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/HYuwRq spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/Oolite2DMap interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=38882</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=38882"/>
		<updated>2014-01-11T09:40:17Z</updated>

		<summary type="html">&lt;p&gt;PG1: Fixed the  spellings and mentioned the planet data available from my interactive map.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
* Online interactive maps.&lt;br /&gt;
** [https://dl.dropbox.com/u/1380916/WebPages/2D%20Oolite%20Galaxy.html OOlite Interactive Map] courtesy of PhantorGorth. It does 2D &amp;amp; 3D modes for displaying the planet map and the planet data. Also there is a superb jump route calculator.&lt;br /&gt;
** [http://theramist.co.uk/ooliteinfo/oo.php OOliteInfo] from Maaarcooose is also available which not only displays the galaxy maps and all planet data, but also allows modification of the seed numbers used to generate the galaxy data.&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/HYuwRq spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/Oolite2DMap interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=36292</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=36292"/>
		<updated>2013-02-25T21:07:41Z</updated>

		<summary type="html">&lt;p&gt;PG1: Updated revision and link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. '''You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].'''&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/Wn3d8T GalCop_Rewards.1.0.2.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.2&lt;br /&gt;
|release = 2012-06-18&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics OXPs&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=35689</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=35689"/>
		<updated>2013-01-20T16:11:50Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Where do these crazy names come from? */  Added link to my Interactive Map&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. The Technology Level numbers shown in the lists are the numbers displayed to the player (range 1-15), and again ''subtract 1 from this number'' (range 0-14) to get the value entered into planetinfo.plist.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/HYuwRq spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* There is also an [http://bit.ly/Oolite2DMap interactive map] of the Oolite Galaxies including route finding (by PhantorGorth). Also includes a 3D option. Works in Firefox, Chrome, IE9+, Safari (but not v6 on a Mac), Opera (the quick zoom has a side effects caused by Opera).&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The new Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[https://www.box.com/s/ex98vikozd2gm2vsztme Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[https://www.box.com/s/sy991cllk135hqvewpnm Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=35577</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=35577"/>
		<updated>2013-01-15T00:17:15Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Fast Facts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
{{OXPConfig-small}}&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/VGCs2m Safe_Docking.1.0.1.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|1}}&lt;br /&gt;
{{Infobox OXPb| title = Safe Docking&lt;br /&gt;
|version = 1.0.1&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Manual Docking Behaviour&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12062 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=35576</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=35576"/>
		<updated>2013-01-15T00:16:44Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
{{OXPConfig-small}}&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/VGCs2m Safe_Docking.1.0.1.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|1}}&lt;br /&gt;
{{Infobox OXPb| title = Safe Docking&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Manual Docking Behaviour&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12062 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35439</id>
		<title>Oolite JavaScript Reference: Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35439"/>
		<updated>2013-01-10T23:14:23Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Quaternions for Rotations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;'''Prototype:''' &amp;lt;code&amp;gt;Object&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Subtypes:''' none&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt;''' class represents a [[quaternion]], a four-dimensional number, which is used to express rotations. Explaining quaternion mathematics is ''way'' beyond the scope of this document, but a quick overview is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Quaternions for Rotations ===&lt;br /&gt;
This is a very quick, pragmatic discussion of quaternions as they apply to rotating things in Oolite. If you’re interested in the theory, see:&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and spatial rotation]&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternion Quaternion]&lt;br /&gt;
* MathWorld: [http://mathworld.wolfram.com/Quaternion.html Quaternion]&lt;br /&gt;
&lt;br /&gt;
Consider a ship at point ''h'' oriented to face a station at point ''t''. This can be expressed as the vector from the ship to the station, ''v'' = ''t'' − ''h''. However, if the ship rolls, it is still heading along the same vector ''v'', so additional information is required: a twist angle, ''α''. A rotation quaternion is a tuple ''Q'' = (''w'', ''x'', ''y'', ''z''), such that&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;'' = cos ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
Additionally, a rotation quaternion must be normalized; that is, it must fulfill the '''normal invariant''' ''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''² = 1. Unlike with [[property list]] scripting and specifications, quaternions will not be automatically normalized for you except where specified, but a &amp;lt;code&amp;gt;[[#normalize|normalize]]()&amp;lt;/code&amp;gt; method is provided.&lt;br /&gt;
&lt;br /&gt;
An '''identity rotation''' – that is, one which, when applied, has no effect – is represented by the '''identity quaternion''' (1, 0, 0, 0). Often you will want to start with this identity quaternion before applying the methods '''rotate''', '''rotateX''', '''rotateY''' or '''rotateZ'''.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt; class provides several methods to make construction of rotations easier: &amp;lt;code&amp;gt;[[#rotate|rotate]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateX|rotateX]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateY|rotateY]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateZ|rotateZ]]()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Rotations can be combined by quaternion multiplication (see the &amp;lt;code&amp;gt;[[#multiply|multiply]]()&amp;lt;/code&amp;gt; method). Note that quaternion multiplication is not commutative; that is, ''PQ'' is not the same as ''QP''. If this seems strange, take a box or book and assign it ''x'', ''y'' and ''z'' axes. Rotate it about the ''x'' axis and then the ''y'' axis. Then, rotate it about the ''y'' axis followed by the ''x'' axis. If the results of the two rotations are the same, you’re doing it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Quaternion Expressions ===&lt;br /&gt;
All Oolite-provided functions which take a quaternion as an argument may instead be passed an array of four numbers, or an [[Oolite JavaScript Reference: Entity|Entity]] (in which case the entity’s &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is used). In specifications, this is represented by arguments typed &amp;lt;code&amp;gt;quaternionExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''w''' : Number (read/write)&lt;br /&gt;
&lt;br /&gt;
The ''w'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''x''' : Number (read/write)&lt;br /&gt;
The ''x'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''y''' : Number (read/write)&lt;br /&gt;
The ''y'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''z''' : Number (read/write)&lt;br /&gt;
The ''z'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
 '''new Quaternion'''([value : [[#Quaternion Expressions|quaternionExpression]]])&lt;br /&gt;
Create a new quaternion with the specified value. If no value is provided, the vector is initialized to the identity quaternion (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;conjugate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{oolite-method-added|1.77}}&lt;br /&gt;
 function '''conjugate'''() : Quaternion&lt;br /&gt;
Return the conjugate of the quaternion (i.e. the quaternion which when multiplied by the original quaternion returns the identity quaternion). The input quaternion must be normalized.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;dot&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''dot'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Number&lt;br /&gt;
Returns the quaternion dot product (inner product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. (For two normalized quaternions, this will be 1 if they’re equal, -1 if they’re opposite and 0 if they’re perpendicular.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;multiply&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''multiply'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Quaternion&lt;br /&gt;
Returns the standard quaternion product (Grassmann product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. This is used to concatenate rotations together.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;normalize&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''normalize'''() : Quaternion&lt;br /&gt;
Returns the quaternion adjusted to fulfill the [[#Quaternions for Rotations|normal invariant]]. Specifically, this divides each component by the square root of (''w''² + ''x''² + ''y''² + ''z''²).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotate'''(a : [[Oolite JavaScript Reference: Vector#Vector Expressions|vectorExpression]], angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the axis of &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. The vector &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; must be a normalized vector. A positive angle is anti-clockwise if the vector is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateX'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''x'' axis. A positive angle is anti-clockwise if the ''x'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateX(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([1, 0, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateY&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateY'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''y'' axis. A positive angle is anti-clockwise if the ''y'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateY(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 1, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateZ&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateZ'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''z'' axis. A positive angle is anti-clockwise if the ''z'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateZ(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 0, 1], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toArray&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''toArray'''() : Array&lt;br /&gt;
Returns an array of the quaternion’s components, in the order &amp;lt;code&amp;gt;[w, x, y, z]&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;q.toArray()&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[q.w, q.x, q.y, q.z]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorForward&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorForward'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the forward vector from the quaternion.&lt;br /&gt;
&lt;br /&gt;
To understand this, consider an entity which is aligned with the world co-ordinate system – that is, its &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is the identity quaternion (1, 0, 0, 0), and thus its ''x'' axis is aligned with the world ''x'' axis, its ''y'' axis is aligned with the world ''y'' axis and its ''z'' axis is aligned with the world ''z'' axis. If it is rotated by a quaternion ''Q'', &amp;lt;code&amp;gt;Q.vectorForward()&amp;lt;/code&amp;gt; is the forward (''z'') axis after rotation. Similarly, &amp;lt;code&amp;gt;Q.[[#vectorUp|vectorUp]]()&amp;lt;/code&amp;gt; is the up (''y'') axis after rotation, and &amp;lt;code&amp;gt;Q.[[#vectorRight|vectorRight]]()&amp;lt;/code&amp;gt; is the right (''x'') axis after rotation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorRight&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorRight'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the right vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorUp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorUp'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the up vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
== Static Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''random'''() : Quaternion&lt;br /&gt;
Returns a random normalized quaternion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35438</id>
		<title>Oolite JavaScript Reference: Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35438"/>
		<updated>2013-01-10T23:10:12Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* rotate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;'''Prototype:''' &amp;lt;code&amp;gt;Object&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Subtypes:''' none&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt;''' class represents a [[quaternion]], a four-dimensional number, which is used to express rotations. Explaining quaternion mathematics is ''way'' beyond the scope of this document, but a quick overview is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Quaternions for Rotations ===&lt;br /&gt;
This is a very quick, pragmatic discussion of quaternions as they apply to rotating things in Oolite. If you’re interested in the theory, see:&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and spatial rotation]&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternion Quaternion]&lt;br /&gt;
* MathWorld: [http://mathworld.wolfram.com/Quaternion.html Quaternion]&lt;br /&gt;
&lt;br /&gt;
Consider a ship at point ''h'' oriented to face a station at point ''t''. This can be expressed as the vector from the ship to the station, ''v'' = ''t'' − ''h''. However, if the ship rolls, it is still heading along the same vector ''v'', so additional information is required: a twist angle, ''α''. A rotation quaternion is a tuple ''Q'' = (''w'', ''x'', ''y'', ''z''), such that&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;'' = cos ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
Additionally, a rotation quaternion must be normalized; that is, it must fulfill the '''normal invariant''' ''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''² = 1. Unlike with [[property list]] scripting and specifications, quaternions will not be automatically normalized for you except where specified, but a &amp;lt;code&amp;gt;[[#normalize|normalize]]()&amp;lt;/code&amp;gt; method is provided.&lt;br /&gt;
&lt;br /&gt;
An '''identity rotation''' – that is, one which, when applied, has no effect – is represented by the '''identity quaternion''' (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt; class provides several methods to make construction of rotations easier: &amp;lt;code&amp;gt;[[#rotate|rotate]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateX|rotateX]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateY|rotateY]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateZ|rotateZ]]()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Rotations can be combined by quaternion multiplication (see the &amp;lt;code&amp;gt;[[#multiply|multiply]]()&amp;lt;/code&amp;gt; method). Note that quaternion multiplication is not commutative; that is, ''PQ'' is not the same as ''QP''. If this seems strange, take a box or book and assign it ''x'', ''y'' and ''z'' axes. Rotate it about the ''x'' axis and then the ''y'' axis. Then, rotate it about the ''y'' axis followed by the ''x'' axis. If the results of the two rotations are the same, you’re doing it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Quaternion Expressions ===&lt;br /&gt;
All Oolite-provided functions which take a quaternion as an argument may instead be passed an array of four numbers, or an [[Oolite JavaScript Reference: Entity|Entity]] (in which case the entity’s &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is used). In specifications, this is represented by arguments typed &amp;lt;code&amp;gt;quaternionExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''w''' : Number (read/write)&lt;br /&gt;
&lt;br /&gt;
The ''w'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''x''' : Number (read/write)&lt;br /&gt;
The ''x'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''y''' : Number (read/write)&lt;br /&gt;
The ''y'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''z''' : Number (read/write)&lt;br /&gt;
The ''z'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
 '''new Quaternion'''([value : [[#Quaternion Expressions|quaternionExpression]]])&lt;br /&gt;
Create a new quaternion with the specified value. If no value is provided, the vector is initialized to the identity quaternion (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;conjugate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{oolite-method-added|1.77}}&lt;br /&gt;
 function '''conjugate'''() : Quaternion&lt;br /&gt;
Return the conjugate of the quaternion (i.e. the quaternion which when multiplied by the original quaternion returns the identity quaternion). The input quaternion must be normalized.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;dot&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''dot'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Number&lt;br /&gt;
Returns the quaternion dot product (inner product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. (For two normalized quaternions, this will be 1 if they’re equal, -1 if they’re opposite and 0 if they’re perpendicular.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;multiply&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''multiply'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Quaternion&lt;br /&gt;
Returns the standard quaternion product (Grassmann product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. This is used to concatenate rotations together.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;normalize&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''normalize'''() : Quaternion&lt;br /&gt;
Returns the quaternion adjusted to fulfill the [[#Quaternions for Rotations|normal invariant]]. Specifically, this divides each component by the square root of (''w''² + ''x''² + ''y''² + ''z''²).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotate'''(a : [[Oolite JavaScript Reference: Vector#Vector Expressions|vectorExpression]], angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the axis of &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. The vector &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; must be a normalized vector. A positive angle is anti-clockwise if the vector is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateX'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''x'' axis. A positive angle is anti-clockwise if the ''x'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateX(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([1, 0, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateY&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateY'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''y'' axis. A positive angle is anti-clockwise if the ''y'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateY(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 1, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateZ&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateZ'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''z'' axis. A positive angle is anti-clockwise if the ''z'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateZ(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 0, 1], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toArray&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''toArray'''() : Array&lt;br /&gt;
Returns an array of the quaternion’s components, in the order &amp;lt;code&amp;gt;[w, x, y, z]&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;q.toArray()&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[q.w, q.x, q.y, q.z]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorForward&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorForward'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the forward vector from the quaternion.&lt;br /&gt;
&lt;br /&gt;
To understand this, consider an entity which is aligned with the world co-ordinate system – that is, its &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is the identity quaternion (1, 0, 0, 0), and thus its ''x'' axis is aligned with the world ''x'' axis, its ''y'' axis is aligned with the world ''y'' axis and its ''z'' axis is aligned with the world ''z'' axis. If it is rotated by a quaternion ''Q'', &amp;lt;code&amp;gt;Q.vectorForward()&amp;lt;/code&amp;gt; is the forward (''z'') axis after rotation. Similarly, &amp;lt;code&amp;gt;Q.[[#vectorUp|vectorUp]]()&amp;lt;/code&amp;gt; is the up (''y'') axis after rotation, and &amp;lt;code&amp;gt;Q.[[#vectorRight|vectorRight]]()&amp;lt;/code&amp;gt; is the right (''x'') axis after rotation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorRight&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorRight'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the right vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorUp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorUp'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the up vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
== Static Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''random'''() : Quaternion&lt;br /&gt;
Returns a random normalized quaternion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35437</id>
		<title>Oolite JavaScript Reference: Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35437"/>
		<updated>2013-01-10T23:09:20Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* rotateZ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;'''Prototype:''' &amp;lt;code&amp;gt;Object&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Subtypes:''' none&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt;''' class represents a [[quaternion]], a four-dimensional number, which is used to express rotations. Explaining quaternion mathematics is ''way'' beyond the scope of this document, but a quick overview is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Quaternions for Rotations ===&lt;br /&gt;
This is a very quick, pragmatic discussion of quaternions as they apply to rotating things in Oolite. If you’re interested in the theory, see:&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and spatial rotation]&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternion Quaternion]&lt;br /&gt;
* MathWorld: [http://mathworld.wolfram.com/Quaternion.html Quaternion]&lt;br /&gt;
&lt;br /&gt;
Consider a ship at point ''h'' oriented to face a station at point ''t''. This can be expressed as the vector from the ship to the station, ''v'' = ''t'' − ''h''. However, if the ship rolls, it is still heading along the same vector ''v'', so additional information is required: a twist angle, ''α''. A rotation quaternion is a tuple ''Q'' = (''w'', ''x'', ''y'', ''z''), such that&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;'' = cos ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
Additionally, a rotation quaternion must be normalized; that is, it must fulfill the '''normal invariant''' ''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''² = 1. Unlike with [[property list]] scripting and specifications, quaternions will not be automatically normalized for you except where specified, but a &amp;lt;code&amp;gt;[[#normalize|normalize]]()&amp;lt;/code&amp;gt; method is provided.&lt;br /&gt;
&lt;br /&gt;
An '''identity rotation''' – that is, one which, when applied, has no effect – is represented by the '''identity quaternion''' (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt; class provides several methods to make construction of rotations easier: &amp;lt;code&amp;gt;[[#rotate|rotate]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateX|rotateX]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateY|rotateY]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateZ|rotateZ]]()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Rotations can be combined by quaternion multiplication (see the &amp;lt;code&amp;gt;[[#multiply|multiply]]()&amp;lt;/code&amp;gt; method). Note that quaternion multiplication is not commutative; that is, ''PQ'' is not the same as ''QP''. If this seems strange, take a box or book and assign it ''x'', ''y'' and ''z'' axes. Rotate it about the ''x'' axis and then the ''y'' axis. Then, rotate it about the ''y'' axis followed by the ''x'' axis. If the results of the two rotations are the same, you’re doing it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Quaternion Expressions ===&lt;br /&gt;
All Oolite-provided functions which take a quaternion as an argument may instead be passed an array of four numbers, or an [[Oolite JavaScript Reference: Entity|Entity]] (in which case the entity’s &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is used). In specifications, this is represented by arguments typed &amp;lt;code&amp;gt;quaternionExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''w''' : Number (read/write)&lt;br /&gt;
&lt;br /&gt;
The ''w'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''x''' : Number (read/write)&lt;br /&gt;
The ''x'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''y''' : Number (read/write)&lt;br /&gt;
The ''y'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''z''' : Number (read/write)&lt;br /&gt;
The ''z'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
 '''new Quaternion'''([value : [[#Quaternion Expressions|quaternionExpression]]])&lt;br /&gt;
Create a new quaternion with the specified value. If no value is provided, the vector is initialized to the identity quaternion (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;conjugate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{oolite-method-added|1.77}}&lt;br /&gt;
 function '''conjugate'''() : Quaternion&lt;br /&gt;
Return the conjugate of the quaternion (i.e. the quaternion which when multiplied by the original quaternion returns the identity quaternion). The input quaternion must be normalized.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;dot&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''dot'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Number&lt;br /&gt;
Returns the quaternion dot product (inner product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. (For two normalized quaternions, this will be 1 if they’re equal, -1 if they’re opposite and 0 if they’re perpendicular.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;multiply&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''multiply'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Quaternion&lt;br /&gt;
Returns the standard quaternion product (Grassmann product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. This is used to concatenate rotations together.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;normalize&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''normalize'''() : Quaternion&lt;br /&gt;
Returns the quaternion adjusted to fulfill the [[#Quaternions for Rotations|normal invariant]]. Specifically, this divides each component by the square root of (''w''² + ''x''² + ''y''² + ''z''²).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotate'''(a : [[Oolite JavaScript Reference: Vector#Vector Expressions|vectorExpression]], angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the axis of &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. The vector &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; must be a normalized vector. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateX'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''x'' axis. A positive angle is anti-clockwise if the ''x'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateX(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([1, 0, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateY&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateY'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''y'' axis. A positive angle is anti-clockwise if the ''y'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateY(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 1, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateZ&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateZ'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''z'' axis. A positive angle is anti-clockwise if the ''z'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateZ(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 0, 1], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toArray&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''toArray'''() : Array&lt;br /&gt;
Returns an array of the quaternion’s components, in the order &amp;lt;code&amp;gt;[w, x, y, z]&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;q.toArray()&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[q.w, q.x, q.y, q.z]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorForward&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorForward'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the forward vector from the quaternion.&lt;br /&gt;
&lt;br /&gt;
To understand this, consider an entity which is aligned with the world co-ordinate system – that is, its &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is the identity quaternion (1, 0, 0, 0), and thus its ''x'' axis is aligned with the world ''x'' axis, its ''y'' axis is aligned with the world ''y'' axis and its ''z'' axis is aligned with the world ''z'' axis. If it is rotated by a quaternion ''Q'', &amp;lt;code&amp;gt;Q.vectorForward()&amp;lt;/code&amp;gt; is the forward (''z'') axis after rotation. Similarly, &amp;lt;code&amp;gt;Q.[[#vectorUp|vectorUp]]()&amp;lt;/code&amp;gt; is the up (''y'') axis after rotation, and &amp;lt;code&amp;gt;Q.[[#vectorRight|vectorRight]]()&amp;lt;/code&amp;gt; is the right (''x'') axis after rotation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorRight&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorRight'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the right vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorUp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorUp'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the up vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
== Static Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''random'''() : Quaternion&lt;br /&gt;
Returns a random normalized quaternion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35436</id>
		<title>Oolite JavaScript Reference: Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35436"/>
		<updated>2013-01-10T23:08:56Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* rotateY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;'''Prototype:''' &amp;lt;code&amp;gt;Object&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Subtypes:''' none&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt;''' class represents a [[quaternion]], a four-dimensional number, which is used to express rotations. Explaining quaternion mathematics is ''way'' beyond the scope of this document, but a quick overview is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Quaternions for Rotations ===&lt;br /&gt;
This is a very quick, pragmatic discussion of quaternions as they apply to rotating things in Oolite. If you’re interested in the theory, see:&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and spatial rotation]&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternion Quaternion]&lt;br /&gt;
* MathWorld: [http://mathworld.wolfram.com/Quaternion.html Quaternion]&lt;br /&gt;
&lt;br /&gt;
Consider a ship at point ''h'' oriented to face a station at point ''t''. This can be expressed as the vector from the ship to the station, ''v'' = ''t'' − ''h''. However, if the ship rolls, it is still heading along the same vector ''v'', so additional information is required: a twist angle, ''α''. A rotation quaternion is a tuple ''Q'' = (''w'', ''x'', ''y'', ''z''), such that&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;'' = cos ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
Additionally, a rotation quaternion must be normalized; that is, it must fulfill the '''normal invariant''' ''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''² = 1. Unlike with [[property list]] scripting and specifications, quaternions will not be automatically normalized for you except where specified, but a &amp;lt;code&amp;gt;[[#normalize|normalize]]()&amp;lt;/code&amp;gt; method is provided.&lt;br /&gt;
&lt;br /&gt;
An '''identity rotation''' – that is, one which, when applied, has no effect – is represented by the '''identity quaternion''' (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt; class provides several methods to make construction of rotations easier: &amp;lt;code&amp;gt;[[#rotate|rotate]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateX|rotateX]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateY|rotateY]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateZ|rotateZ]]()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Rotations can be combined by quaternion multiplication (see the &amp;lt;code&amp;gt;[[#multiply|multiply]]()&amp;lt;/code&amp;gt; method). Note that quaternion multiplication is not commutative; that is, ''PQ'' is not the same as ''QP''. If this seems strange, take a box or book and assign it ''x'', ''y'' and ''z'' axes. Rotate it about the ''x'' axis and then the ''y'' axis. Then, rotate it about the ''y'' axis followed by the ''x'' axis. If the results of the two rotations are the same, you’re doing it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Quaternion Expressions ===&lt;br /&gt;
All Oolite-provided functions which take a quaternion as an argument may instead be passed an array of four numbers, or an [[Oolite JavaScript Reference: Entity|Entity]] (in which case the entity’s &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is used). In specifications, this is represented by arguments typed &amp;lt;code&amp;gt;quaternionExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''w''' : Number (read/write)&lt;br /&gt;
&lt;br /&gt;
The ''w'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''x''' : Number (read/write)&lt;br /&gt;
The ''x'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''y''' : Number (read/write)&lt;br /&gt;
The ''y'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''z''' : Number (read/write)&lt;br /&gt;
The ''z'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
 '''new Quaternion'''([value : [[#Quaternion Expressions|quaternionExpression]]])&lt;br /&gt;
Create a new quaternion with the specified value. If no value is provided, the vector is initialized to the identity quaternion (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;conjugate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{oolite-method-added|1.77}}&lt;br /&gt;
 function '''conjugate'''() : Quaternion&lt;br /&gt;
Return the conjugate of the quaternion (i.e. the quaternion which when multiplied by the original quaternion returns the identity quaternion). The input quaternion must be normalized.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;dot&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''dot'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Number&lt;br /&gt;
Returns the quaternion dot product (inner product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. (For two normalized quaternions, this will be 1 if they’re equal, -1 if they’re opposite and 0 if they’re perpendicular.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;multiply&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''multiply'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Quaternion&lt;br /&gt;
Returns the standard quaternion product (Grassmann product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. This is used to concatenate rotations together.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;normalize&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''normalize'''() : Quaternion&lt;br /&gt;
Returns the quaternion adjusted to fulfill the [[#Quaternions for Rotations|normal invariant]]. Specifically, this divides each component by the square root of (''w''² + ''x''² + ''y''² + ''z''²).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotate'''(a : [[Oolite JavaScript Reference: Vector#Vector Expressions|vectorExpression]], angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the axis of &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. The vector &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; must be a normalized vector. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateX'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''x'' axis. A positive angle is anti-clockwise if the ''x'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateX(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([1, 0, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateY&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateY'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''y'' axis. A positive angle is anti-clockwise if the ''y'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateY(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 1, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateZ&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateZ'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''z'' axis. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateZ(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 0, 1], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toArray&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''toArray'''() : Array&lt;br /&gt;
Returns an array of the quaternion’s components, in the order &amp;lt;code&amp;gt;[w, x, y, z]&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;q.toArray()&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[q.w, q.x, q.y, q.z]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorForward&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorForward'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the forward vector from the quaternion.&lt;br /&gt;
&lt;br /&gt;
To understand this, consider an entity which is aligned with the world co-ordinate system – that is, its &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is the identity quaternion (1, 0, 0, 0), and thus its ''x'' axis is aligned with the world ''x'' axis, its ''y'' axis is aligned with the world ''y'' axis and its ''z'' axis is aligned with the world ''z'' axis. If it is rotated by a quaternion ''Q'', &amp;lt;code&amp;gt;Q.vectorForward()&amp;lt;/code&amp;gt; is the forward (''z'') axis after rotation. Similarly, &amp;lt;code&amp;gt;Q.[[#vectorUp|vectorUp]]()&amp;lt;/code&amp;gt; is the up (''y'') axis after rotation, and &amp;lt;code&amp;gt;Q.[[#vectorRight|vectorRight]]()&amp;lt;/code&amp;gt; is the right (''x'') axis after rotation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorRight&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorRight'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the right vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorUp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorUp'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the up vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
== Static Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''random'''() : Quaternion&lt;br /&gt;
Returns a random normalized quaternion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35435</id>
		<title>Oolite JavaScript Reference: Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Quaternion&amp;diff=35435"/>
		<updated>2013-01-10T23:08:30Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* rotateX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;'''Prototype:''' &amp;lt;code&amp;gt;Object&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Subtypes:''' none&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt;''' class represents a [[quaternion]], a four-dimensional number, which is used to express rotations. Explaining quaternion mathematics is ''way'' beyond the scope of this document, but a quick overview is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Quaternions for Rotations ===&lt;br /&gt;
This is a very quick, pragmatic discussion of quaternions as they apply to rotating things in Oolite. If you’re interested in the theory, see:&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and spatial rotation]&lt;br /&gt;
* Wikipedia: [http://en.wikipedia.org/wiki/Quaternion Quaternion]&lt;br /&gt;
* MathWorld: [http://mathworld.wolfram.com/Quaternion.html Quaternion]&lt;br /&gt;
&lt;br /&gt;
Consider a ship at point ''h'' oriented to face a station at point ''t''. This can be expressed as the vector from the ship to the station, ''v'' = ''t'' − ''h''. However, if the ship rolls, it is still heading along the same vector ''v'', so additional information is required: a twist angle, ''α''. A rotation quaternion is a tuple ''Q'' = (''w'', ''x'', ''y'', ''z''), such that&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;'' = cos ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
:''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' = ''v&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'' sin ''α''/2&lt;br /&gt;
Additionally, a rotation quaternion must be normalized; that is, it must fulfill the '''normal invariant''' ''Q&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''² + ''Q&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''² = 1. Unlike with [[property list]] scripting and specifications, quaternions will not be automatically normalized for you except where specified, but a &amp;lt;code&amp;gt;[[#normalize|normalize]]()&amp;lt;/code&amp;gt; method is provided.&lt;br /&gt;
&lt;br /&gt;
An '''identity rotation''' – that is, one which, when applied, has no effect – is represented by the '''identity quaternion''' (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Quaternion&amp;lt;/code&amp;gt; class provides several methods to make construction of rotations easier: &amp;lt;code&amp;gt;[[#rotate|rotate]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateX|rotateX]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateY|rotateY]]()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[#rotateZ|rotateZ]]()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Rotations can be combined by quaternion multiplication (see the &amp;lt;code&amp;gt;[[#multiply|multiply]]()&amp;lt;/code&amp;gt; method). Note that quaternion multiplication is not commutative; that is, ''PQ'' is not the same as ''QP''. If this seems strange, take a box or book and assign it ''x'', ''y'' and ''z'' axes. Rotate it about the ''x'' axis and then the ''y'' axis. Then, rotate it about the ''y'' axis followed by the ''x'' axis. If the results of the two rotations are the same, you’re doing it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Quaternion Expressions ===&lt;br /&gt;
All Oolite-provided functions which take a quaternion as an argument may instead be passed an array of four numbers, or an [[Oolite JavaScript Reference: Entity|Entity]] (in which case the entity’s &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is used). In specifications, this is represented by arguments typed &amp;lt;code&amp;gt;quaternionExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''w''' : Number (read/write)&lt;br /&gt;
&lt;br /&gt;
The ''w'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''x''' : Number (read/write)&lt;br /&gt;
The ''x'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''y''' : Number (read/write)&lt;br /&gt;
The ''y'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''z''' : Number (read/write)&lt;br /&gt;
The ''z'' component of the quaternion.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
 '''new Quaternion'''([value : [[#Quaternion Expressions|quaternionExpression]]])&lt;br /&gt;
Create a new quaternion with the specified value. If no value is provided, the vector is initialized to the identity quaternion (1, 0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;conjugate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{oolite-method-added|1.77}}&lt;br /&gt;
 function '''conjugate'''() : Quaternion&lt;br /&gt;
Return the conjugate of the quaternion (i.e. the quaternion which when multiplied by the original quaternion returns the identity quaternion). The input quaternion must be normalized.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;dot&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''dot'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Number&lt;br /&gt;
Returns the quaternion dot product (inner product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. (For two normalized quaternions, this will be 1 if they’re equal, -1 if they’re opposite and 0 if they’re perpendicular.)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;multiply&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''multiply'''(q : [[#Quaternion Expressions|quaternionExpression]]) : Quaternion&lt;br /&gt;
Returns the standard quaternion product (Grassmann product) of the target and &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;. This is used to concatenate rotations together.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;normalize&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''normalize'''() : Quaternion&lt;br /&gt;
Returns the quaternion adjusted to fulfill the [[#Quaternions for Rotations|normal invariant]]. Specifically, this divides each component by the square root of (''w''² + ''x''² + ''y''² + ''z''²).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotate'''(a : [[Oolite JavaScript Reference: Vector#Vector Expressions|vectorExpression]], angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the axis of &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. The vector &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; must be a normalized vector. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateX&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateX'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''x'' axis. A positive angle is anti-clockwise if the ''x'' axis is pointing towards you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateX(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([1, 0, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateY&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateY'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''y'' axis. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateY(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 1, 0], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rotateZ&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''rotateZ'''(angle : Number) : Quaternion&lt;br /&gt;
Returns a quaternion rotated &amp;lt;code&amp;gt;angle&amp;lt;/code&amp;gt; radians about the ''z'' axis. (FIXME: clockwise or anticlockwise?)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;q.rotateZ(angle)&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;q.[[#rotate|rotate]]([0, 0, 1], angle)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toArray&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''toArray'''() : Array&lt;br /&gt;
Returns an array of the quaternion’s components, in the order &amp;lt;code&amp;gt;[w, x, y, z]&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;q.toArray()&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;[q.w, q.x, q.y, q.z]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorForward&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorForward'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the forward vector from the quaternion.&lt;br /&gt;
&lt;br /&gt;
To understand this, consider an entity which is aligned with the world co-ordinate system – that is, its &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Entity#orientation|orientation]]&amp;lt;/code&amp;gt; is the identity quaternion (1, 0, 0, 0), and thus its ''x'' axis is aligned with the world ''x'' axis, its ''y'' axis is aligned with the world ''y'' axis and its ''z'' axis is aligned with the world ''z'' axis. If it is rotated by a quaternion ''Q'', &amp;lt;code&amp;gt;Q.vectorForward()&amp;lt;/code&amp;gt; is the forward (''z'') axis after rotation. Similarly, &amp;lt;code&amp;gt;Q.[[#vectorUp|vectorUp]]()&amp;lt;/code&amp;gt; is the up (''y'') axis after rotation, and &amp;lt;code&amp;gt;Q.[[#vectorRight|vectorRight]]()&amp;lt;/code&amp;gt; is the right (''x'') axis after rotation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorRight&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorRight'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the right vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;vectorUp&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''vectorUp'''() : [[Oolite JavaScript Reference: Vector|Vector]]&lt;br /&gt;
Returns the up vector from the quaternion. See &amp;lt;code&amp;gt;[[#vectorForward|vectorForward]]()&amp;lt;/code&amp;gt; for a definition.&lt;br /&gt;
&lt;br /&gt;
== Static Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''random'''() : Quaternion&lt;br /&gt;
Returns a random normalized quaternion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35434</id>
		<title>Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35434"/>
		<updated>2013-01-10T22:29:58Z</updated>

		<summary type="html">&lt;p&gt;PG1: Undo revision 35431 by PG1 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A quaternion is a set of four values (W X Y Z) that are used in Oolite to specify a rotation in 3D space.  To specify a particular rotation you need to think about the axis about which the rotation is made and the angle or amount by which the model is to be rotated. &lt;br /&gt;
&lt;br /&gt;
For a given axis (x y z) and angle (α), the quaternion representing a rotation of a degrees around the axis from the origin (0,0,0) to (x,y,z) is: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So a rotation of 90 degrees about the z axis (0 0 1) would be: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
X = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Y = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Z = 1 × sin 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now because quaternions are normalised (adjusted so that W × W + X × X + Y × Y + Z × Z = 1) when Oolite reads them in, you can multiply each part of a quaternion by the same value and still have it represent the same angle. So this rotation can also be represented as W = 1, X = 0, Y = 0, Z = 1 (let's use [1 0 0 1] as shorthand).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== 90 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Oolite uses quaternions to specify rotations in some parts of [[shipdata.plist]], most notably in the subentities part of an entry, like here in the relevant sub-entity entry for the [[Coriolis station (Oolite)|Coriolis station]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
subentities =&lt;br /&gt;
 ( &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 0&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 1&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 0 0 0 1&amp;quot; &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 -1&amp;quot; &lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last four numbers after the four 'arc-detail' lines are the W X Y and Z of quaternions representing rotations about the z-axis of 0 degrees, 90 degrees, 180 degrees, and 270 degrees (the first three numbers are the subentity's position relative to the station, in this case all are at the same place at the station's origin).&lt;br /&gt;
&lt;br /&gt;
=== 120 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Similarly, the shipdata of the [[Weeviloid_Hunter|Weeviloid 2]] illustrates how to place sub-entities at 3 equilateral points:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 1 0 0 0&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 0.8660254&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 -0.8660254&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given that the first entry (0 0 0 1 0 0 0) will place the sub-entity at the exact place that the model is situated (0 degrees), the next two lines reproduce it at 120 degrees and 240 degrees.&lt;br /&gt;
&lt;br /&gt;
=== 22.5 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
To display 16 sub-entities that join to make a ring, as done in the [[Ringpod]] and [[Torus station|Torus]] shipdata, these are the relevant lines: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 1 0 0 0&amp;quot;,                 // 0 degree&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9808 0.0 0.0 0.1951&amp;quot;, // 22.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9239 0.0 0.0 0.3827&amp;quot;, // 45 degrees &lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.8315 0.0 0.0 0.5556&amp;quot;, / /67.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.7071 0.0 0.0 0.7071&amp;quot;, // 90 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.5556 0.0 0.0 0.83110&amp;quot;, //112.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.3827 0.0 0.0 0.9239&amp;quot;, // 135 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.1951 0.0 0.0 0.9808&amp;quot;, // 157.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0 0 0 1&amp;quot;,                 // 180 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.1951 0.0 0.0 0.9808&amp;quot;, // 202.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.3827 0.0 0.0 0.9239&amp;quot;, // 225 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.5556 0.0 0.0 0.83110&amp;quot;, // 247.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.7071 0.0 0.0 0.7071&amp;quot;, // 270 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.8315 0.0 0.0 0.5556&amp;quot;, // 292.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9239 0.0 0.0 0.3827&amp;quot;, // 315 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9808 0.0 0.0 0.1951&amp;quot; // 337.5 degrees&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Again the 0 ° sub-entity will appear with the 0 0 0 1 0 0 0, and the next 15 lines place it at 22.5 °, 45 °, 67.5 °, 90 °, 112.5 °, 135 °, 157.5 °, 180 ° (with 0 0 0 0 0 0 1), 202.5 °, 225 °, 247.5 °, 270 °, 292.5 °, 315 ° and 337.5 °.&lt;br /&gt;
&lt;br /&gt;
=== using Java Script to calculate quaternions ===&lt;br /&gt;
&lt;br /&gt;
Oolite contains a whole set of vector and quaternion methods than can be used for easy manipulating quaternions. To generate a quaternion for a certain rotation around the z-axis we can rotate the identity quaternion around the z-axis with the command:&lt;br /&gt;
 new Quaternion(1,0,0,0).rotate(new Vector3D(0,0,1), angle)&lt;br /&gt;
With this command we can calculate our own quaternion for any rotation around the z-axis, or any other axis when desired. Angle is not in degree but in Math.PI&lt;br /&gt;
&lt;br /&gt;
=== Quaternion calculus ===&lt;br /&gt;
&lt;br /&gt;
To perform one rotation, and then another, one needs to multiply two quaternions together. &lt;br /&gt;
&lt;br /&gt;
Multiplying quaternions isn't commutative: Qa × Qb does not equal Qb × Qa&lt;br /&gt;
&lt;br /&gt;
To multiply Q₁  (w₁ , x₁ , y₁ , z₁ ) by Q₂ (w₂, x₂, y₂, z₂):&lt;br /&gt;
&lt;br /&gt;
W = w₁ × w₂ - x₁  × x₂ - y₁  × y₂ - z₁  × z₂&lt;br /&gt;
&lt;br /&gt;
X = w₁  × x₂ + x₁  × w₂ + y₁  × z₂ - z₁  × y₂&lt;br /&gt;
&lt;br /&gt;
Y = w₁  × y₂ + y₁  × w₂ + z₁  × x₂ - x₁  × z₂&lt;br /&gt;
&lt;br /&gt;
Z = w₁  × z₂ + z₁  × w₂ + x₁  × y₂ - y₁  × x₂&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine the quaternion for a rotation of α degrees/radians around an axis defined by a vector (x, y, z):&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
''or'':&lt;br /&gt;
&lt;br /&gt;
W = 1 / tan (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x&lt;br /&gt;
&lt;br /&gt;
Y = y&lt;br /&gt;
&lt;br /&gt;
Z = z&lt;br /&gt;
&lt;br /&gt;
These are equivalent because of the trigonometric identity sin x/cos x = tan x, and the fact that quaternion normalization means that multiplying each component by the same value (in this case, 1 / sin (0.5 × α)) does not affect the resulting orientation.&lt;br /&gt;
&lt;br /&gt;
=== Oolite Specifics ===&lt;br /&gt;
&lt;br /&gt;
Although Quaternions are coordinate system indifferent, Oolite, because it makes use of OpenGL, uses a [http://en.wikipedia.org/wiki/Left-handed_coordinate_system#Orientation_and_handedness left-handed coordinate system]. This means that all positive quaternion rotations about an axis, as discussed in the [[#Overview|Overview]] section above, are anti-clockwise (counter-clockwise) when the axis of rotation is pointing towards you (clockwise if pointing away from you).&lt;br /&gt;
&lt;br /&gt;
Also all Oolite ships and other entities have to be designed with forwards pointing along the z-axis, up along the y-axis and right along the x-axis. These entities have an orientation in space is given by a quaternion (the [[Oolite_JavaScript_Reference:_Entity#orientation|.orientation]] JavaScript property) that describes the transformation from this initial design orientation to the required final orientation.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Oolite JavaScript Reference: Quaternion]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternion Wikipedia page on quaternions]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Wikipedia page on quaternions and spatial rotation]&lt;br /&gt;
* [http://skal.planet-d.net/demo/matrixfaq.htm The Matrix and Quaternion FAQ]&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35431</id>
		<title>Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35431"/>
		<updated>2013-01-10T21:32:50Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Oolite Specifics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A quaternion is a set of four values (W X Y Z) that are used in Oolite to specify a rotation in 3D space.  To specify a particular rotation you need to think about the axis about which the rotation is made and the angle or amount by which the model is to be rotated. &lt;br /&gt;
&lt;br /&gt;
For a given axis (x y z) and angle (α), the quaternion representing a rotation of a degrees around the axis from the origin (0,0,0) to (x,y,z) is: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So a rotation of 90 degrees about the z axis (0 0 1) would be: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
X = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Y = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Z = 1 × sin 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now because quaternions are normalised (adjusted so that W × W + X × X + Y × Y + Z × Z = 1) when Oolite reads them in, you can multiply each part of a quaternion by the same value and still have it represent the same angle. So this rotation can also be represented as W = 1, X = 0, Y = 0, Z = 1 (let's use [1 0 0 1] as shorthand).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== 90 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Oolite uses quaternions to specify rotations in some parts of [[shipdata.plist]], most notably in the subentities part of an entry, like here in the relevant sub-entity entry for the [[Coriolis station (Oolite)|Coriolis station]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
subentities =&lt;br /&gt;
 ( &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 0&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 1&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 0 0 0 1&amp;quot; &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 -1&amp;quot; &lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last four numbers after the four 'arc-detail' lines are the W X Y and Z of quaternions representing rotations about the z-axis of 0 degrees, 90 degrees, 180 degrees, and 270 degrees (the first three numbers are the subentity's position relative to the station, in this case all are at the same place at the station's origin).&lt;br /&gt;
&lt;br /&gt;
=== 120 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Similarly, the shipdata of the [[Weeviloid_Hunter|Weeviloid 2]] illustrates how to place sub-entities at 3 equilateral points:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 1 0 0 0&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 0.8660254&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 -0.8660254&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given that the first entry (0 0 0 1 0 0 0) will place the sub-entity at the exact place that the model is situated (0 degrees), the next two lines reproduce it at 120 degrees and 240 degrees.&lt;br /&gt;
&lt;br /&gt;
=== 22.5 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
To display 16 sub-entities that join to make a ring, as done in the [[Ringpod]] and [[Torus station|Torus]] shipdata, these are the relevant lines: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 1 0 0 0&amp;quot;,                 // 0 degree&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9808 0.0 0.0 0.1951&amp;quot;, // 22.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9239 0.0 0.0 0.3827&amp;quot;, // 45 degrees &lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.8315 0.0 0.0 0.5556&amp;quot;, / /67.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.7071 0.0 0.0 0.7071&amp;quot;, // 90 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.5556 0.0 0.0 0.83110&amp;quot;, //112.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.3827 0.0 0.0 0.9239&amp;quot;, // 135 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.1951 0.0 0.0 0.9808&amp;quot;, // 157.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0 0 0 1&amp;quot;,                 // 180 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.1951 0.0 0.0 0.9808&amp;quot;, // 202.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.3827 0.0 0.0 0.9239&amp;quot;, // 225 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.5556 0.0 0.0 0.83110&amp;quot;, // 247.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.7071 0.0 0.0 0.7071&amp;quot;, // 270 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.8315 0.0 0.0 0.5556&amp;quot;, // 292.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9239 0.0 0.0 0.3827&amp;quot;, // 315 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9808 0.0 0.0 0.1951&amp;quot; // 337.5 degrees&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Again the 0 ° sub-entity will appear with the 0 0 0 1 0 0 0, and the next 15 lines place it at 22.5 °, 45 °, 67.5 °, 90 °, 112.5 °, 135 °, 157.5 °, 180 ° (with 0 0 0 0 0 0 1), 202.5 °, 225 °, 247.5 °, 270 °, 292.5 °, 315 ° and 337.5 °.&lt;br /&gt;
&lt;br /&gt;
=== using Java Script to calculate quaternions ===&lt;br /&gt;
&lt;br /&gt;
Oolite contains a whole set of vector and quaternion methods than can be used for easy manipulating quaternions. To generate a quaternion for a certain rotation around the z-axis we can rotate the identity quaternion around the z-axis with the command:&lt;br /&gt;
 new Quaternion(1,0,0,0).rotate(new Vector3D(0,0,1), angle)&lt;br /&gt;
With this command we can calculate our own quaternion for any rotation around the z-axis, or any other axis when desired. Angle is not in degree but in Math.PI&lt;br /&gt;
&lt;br /&gt;
=== Quaternion calculus ===&lt;br /&gt;
&lt;br /&gt;
To perform one rotation, and then another, one needs to multiply two quaternions together. &lt;br /&gt;
&lt;br /&gt;
Multiplying quaternions isn't commutative: Qa × Qb does not equal Qb × Qa&lt;br /&gt;
&lt;br /&gt;
To multiply Q₁  (w₁ , x₁ , y₁ , z₁ ) by Q₂ (w₂, x₂, y₂, z₂):&lt;br /&gt;
&lt;br /&gt;
W = w₁ × w₂ - x₁  × x₂ - y₁  × y₂ - z₁  × z₂&lt;br /&gt;
&lt;br /&gt;
X = w₁  × x₂ + x₁  × w₂ + y₁  × z₂ - z₁  × y₂&lt;br /&gt;
&lt;br /&gt;
Y = w₁  × y₂ + y₁  × w₂ + z₁  × x₂ - x₁  × z₂&lt;br /&gt;
&lt;br /&gt;
Z = w₁  × z₂ + z₁  × w₂ + x₁  × y₂ - y₁  × x₂&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine the quaternion for a rotation of α degrees/radians around an axis defined by a vector (x, y, z):&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
''or'':&lt;br /&gt;
&lt;br /&gt;
W = 1 / tan (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x&lt;br /&gt;
&lt;br /&gt;
Y = y&lt;br /&gt;
&lt;br /&gt;
Z = z&lt;br /&gt;
&lt;br /&gt;
These are equivalent because of the trigonometric identity sin x/cos x = tan x, and the fact that quaternion normalization means that multiplying each component by the same value (in this case, 1 / sin (0.5 × α)) does not affect the resulting orientation.&lt;br /&gt;
&lt;br /&gt;
=== Oolite Specifics ===&lt;br /&gt;
&lt;br /&gt;
Although Quaternions are coordinate system indifferent, Oolite, because it makes use of OpenGL, uses a [http://en.wikipedia.org/wiki/Left-handed_coordinate_system#Orientation_and_handedness left-handed coordinate system]. This means that all positive quaternion rotations about an axis, as discussed in the [[#Overview|Overview]] section above, are clockwise when the axis of rotation is pointing towards you (anti-clockwise if pointing away from you).&lt;br /&gt;
&lt;br /&gt;
Also all Oolite ships and other entities have to be designed with forwards pointing along the z-axis, up along the y-axis and right along the x-axis. These entities have an orientation in space is given by a quaternion (the [[Oolite_JavaScript_Reference:_Entity#orientation|.orientation]] JavaScript property) that describes the transformation from this initial design orientation to the required final orientation.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Oolite JavaScript Reference: Quaternion]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternion Wikipedia page on quaternions]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Wikipedia page on quaternions and spatial rotation]&lt;br /&gt;
* [http://skal.planet-d.net/demo/matrixfaq.htm The Matrix and Quaternion FAQ]&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35424</id>
		<title>Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35424"/>
		<updated>2013-01-10T19:12:12Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Oolite Specifics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A quaternion is a set of four values (W X Y Z) that are used in Oolite to specify a rotation in 3D space.  To specify a particular rotation you need to think about the axis about which the rotation is made and the angle or amount by which the model is to be rotated. &lt;br /&gt;
&lt;br /&gt;
For a given axis (x y z) and angle (α), the quaternion representing a rotation of a degrees around the axis from the origin (0,0,0) to (x,y,z) is: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So a rotation of 90 degrees about the z axis (0 0 1) would be: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
X = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Y = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Z = 1 × sin 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now because quaternions are normalised (adjusted so that W × W + X × X + Y × Y + Z × Z = 1) when Oolite reads them in, you can multiply each part of a quaternion by the same value and still have it represent the same angle. So this rotation can also be represented as W = 1, X = 0, Y = 0, Z = 1 (let's use [1 0 0 1] as shorthand).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== 90 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Oolite uses quaternions to specify rotations in some parts of [[shipdata.plist]], most notably in the subentities part of an entry, like here in the relevant sub-entity entry for the [[Coriolis station (Oolite)|Coriolis station]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
subentities =&lt;br /&gt;
 ( &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 0&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 1&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 0 0 0 1&amp;quot; &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 -1&amp;quot; &lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last four numbers after the four 'arc-detail' lines are the W X Y and Z of quaternions representing rotations about the z-axis of 0 degrees, 90 degrees, 180 degrees, and 270 degrees (the first three numbers are the subentity's position relative to the station, in this case all are at the same place at the station's origin).&lt;br /&gt;
&lt;br /&gt;
=== 120 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Similarly, the shipdata of the [[Weeviloid_Hunter|Weeviloid 2]] illustrates how to place sub-entities at 3 equilateral points:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 1 0 0 0&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 0.8660254&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 -0.8660254&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given that the first entry (0 0 0 1 0 0 0) will place the sub-entity at the exact place that the model is situated (0 degrees), the next two lines reproduce it at 120 degrees and 240 degrees.&lt;br /&gt;
&lt;br /&gt;
=== 22.5 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
To display 16 sub-entities that join to make a ring, as done in the [[Ringpod]] and [[Torus station|Torus]] shipdata, these are the relevant lines: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 1 0 0 0&amp;quot;,                 // 0 degree&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9808 0.0 0.0 0.1951&amp;quot;, // 22.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9239 0.0 0.0 0.3827&amp;quot;, // 45 degrees &lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.8315 0.0 0.0 0.5556&amp;quot;, / /67.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.7071 0.0 0.0 0.7071&amp;quot;, // 90 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.5556 0.0 0.0 0.83110&amp;quot;, //112.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.3827 0.0 0.0 0.9239&amp;quot;, // 135 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.1951 0.0 0.0 0.9808&amp;quot;, // 157.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0 0 0 1&amp;quot;,                 // 180 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.1951 0.0 0.0 0.9808&amp;quot;, // 202.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.3827 0.0 0.0 0.9239&amp;quot;, // 225 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.5556 0.0 0.0 0.83110&amp;quot;, // 247.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.7071 0.0 0.0 0.7071&amp;quot;, // 270 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.8315 0.0 0.0 0.5556&amp;quot;, // 292.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9239 0.0 0.0 0.3827&amp;quot;, // 315 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9808 0.0 0.0 0.1951&amp;quot; // 337.5 degrees&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Again the 0 ° sub-entity will appear with the 0 0 0 1 0 0 0, and the next 15 lines place it at 22.5 °, 45 °, 67.5 °, 90 °, 112.5 °, 135 °, 157.5 °, 180 ° (with 0 0 0 0 0 0 1), 202.5 °, 225 °, 247.5 °, 270 °, 292.5 °, 315 ° and 337.5 °.&lt;br /&gt;
&lt;br /&gt;
=== using Java Script to calculate quaternions ===&lt;br /&gt;
&lt;br /&gt;
Oolite contains a whole set of vector and quaternion methods than can be used for easy manipulating quaternions. To generate a quaternion for a certain rotation around the z-axis we can rotate the identity quaternion around the z-axis with the command:&lt;br /&gt;
 new Quaternion(1,0,0,0).rotate(new Vector3D(0,0,1), angle)&lt;br /&gt;
With this command we can calculate our own quaternion for any rotation around the z-axis, or any other axis when desired. Angle is not in degree but in Math.PI&lt;br /&gt;
&lt;br /&gt;
=== Quaternion calculus ===&lt;br /&gt;
&lt;br /&gt;
To perform one rotation, and then another, one needs to multiply two quaternions together. &lt;br /&gt;
&lt;br /&gt;
Multiplying quaternions isn't commutative: Qa × Qb does not equal Qb × Qa&lt;br /&gt;
&lt;br /&gt;
To multiply Q₁  (w₁ , x₁ , y₁ , z₁ ) by Q₂ (w₂, x₂, y₂, z₂):&lt;br /&gt;
&lt;br /&gt;
W = w₁ × w₂ - x₁  × x₂ - y₁  × y₂ - z₁  × z₂&lt;br /&gt;
&lt;br /&gt;
X = w₁  × x₂ + x₁  × w₂ + y₁  × z₂ - z₁  × y₂&lt;br /&gt;
&lt;br /&gt;
Y = w₁  × y₂ + y₁  × w₂ + z₁  × x₂ - x₁  × z₂&lt;br /&gt;
&lt;br /&gt;
Z = w₁  × z₂ + z₁  × w₂ + x₁  × y₂ - y₁  × x₂&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine the quaternion for a rotation of α degrees/radians around an axis defined by a vector (x, y, z):&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
''or'':&lt;br /&gt;
&lt;br /&gt;
W = 1 / tan (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x&lt;br /&gt;
&lt;br /&gt;
Y = y&lt;br /&gt;
&lt;br /&gt;
Z = z&lt;br /&gt;
&lt;br /&gt;
These are equivalent because of the trigonometric identity sin x/cos x = tan x, and the fact that quaternion normalization means that multiplying each component by the same value (in this case, 1 / sin (0.5 × α)) does not affect the resulting orientation.&lt;br /&gt;
&lt;br /&gt;
=== Oolite Specifics ===&lt;br /&gt;
&lt;br /&gt;
Although Quaternions are coordinate system indifferent, Oolite, because it makes use of OpenGL, uses a [http://en.wikipedia.org/wiki/Left-handed_coordinate_system#Orientation_and_handedness left-handed coordinate system]. This means that all positive quaternion rotations about an axis, as discussed in the [[#Overview|Overview]] section above, are anti-clockwise (counter-clockwise) when the axis of rotation is pointing towards you (clockwise if pointing away from you).&lt;br /&gt;
&lt;br /&gt;
Also all Oolite ships and other entities have to be designed with forwards pointing along the z-axis, up along the y-axis and right along the x-axis. These entities have an orientation in space is given by a quaternion (the [[Oolite_JavaScript_Reference:_Entity#orientation|.orientation]] JavaScript property) that describes the transformation from this initial design orientation to the required final orientation.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Oolite JavaScript Reference: Quaternion]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternion Wikipedia page on quaternions]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Wikipedia page on quaternions and spatial rotation]&lt;br /&gt;
* [http://skal.planet-d.net/demo/matrixfaq.htm The Matrix and Quaternion FAQ]&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35423</id>
		<title>Quaternion</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Quaternion&amp;diff=35423"/>
		<updated>2013-01-10T19:08:03Z</updated>

		<summary type="html">&lt;p&gt;PG1: Added Oolite Specifics section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A quaternion is a set of four values (W X Y Z) that are used in Oolite to specify a rotation in 3D space.  To specify a particular rotation you need to think about the axis about which the rotation is made and the angle or amount by which the model is to be rotated. &lt;br /&gt;
&lt;br /&gt;
For a given axis (x y z) and angle (α), the quaternion representing a rotation of a degrees around the axis from the origin (0,0,0) to (x,y,z) is: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So a rotation of 90 degrees about the z axis (0 0 1) would be: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W = cos 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
X = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Y = 0 × sin 45 ° = 0 &lt;br /&gt;
&lt;br /&gt;
Z = 1 × sin 45 ° = 0.707…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now because quaternions are normalised (adjusted so that W × W + X × X + Y × Y + Z × Z = 1) when Oolite reads them in, you can multiply each part of a quaternion by the same value and still have it represent the same angle. So this rotation can also be represented as W = 1, X = 0, Y = 0, Z = 1 (let's use [1 0 0 1] as shorthand).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== 90 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Oolite uses quaternions to specify rotations in some parts of [[shipdata.plist]], most notably in the subentities part of an entry, like here in the relevant sub-entity entry for the [[Coriolis station (Oolite)|Coriolis station]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
subentities =&lt;br /&gt;
 ( &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 0&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 1&amp;quot;, &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 0 0 0 1&amp;quot; &lt;br /&gt;
    &amp;quot;arc-detail 0 0 0 1 0 0 -1&amp;quot; &lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last four numbers after the four 'arc-detail' lines are the W X Y and Z of quaternions representing rotations about the z-axis of 0 degrees, 90 degrees, 180 degrees, and 270 degrees (the first three numbers are the subentity's position relative to the station, in this case all are at the same place at the station's origin).&lt;br /&gt;
&lt;br /&gt;
=== 120 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
Similarly, the shipdata of the [[Weeviloid_Hunter|Weeviloid 2]] illustrates how to place sub-entities at 3 equilateral points:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 1 0 0 0&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 0.8660254&amp;quot;,&lt;br /&gt;
    &amp;quot;weeviloid2-spine	0 0 0 0.5 0 0 -0.8660254&amp;quot;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given that the first entry (0 0 0 1 0 0 0) will place the sub-entity at the exact place that the model is situated (0 degrees), the next two lines reproduce it at 120 degrees and 240 degrees.&lt;br /&gt;
&lt;br /&gt;
=== 22.5 ° turns about the z-axis ===&lt;br /&gt;
&lt;br /&gt;
To display 16 sub-entities that join to make a ring, as done in the [[Ringpod]] and [[Torus station|Torus]] shipdata, these are the relevant lines: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 subentities =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 1 0 0 0&amp;quot;,                 // 0 degree&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9808 0.0 0.0 0.1951&amp;quot;, // 22.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.9239 0.0 0.0 0.3827&amp;quot;, // 45 degrees &lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.8315 0.0 0.0 0.5556&amp;quot;, / /67.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.7071 0.0 0.0 0.7071&amp;quot;, // 90 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.5556 0.0 0.0 0.83110&amp;quot;, //112.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.3827 0.0 0.0 0.9239&amp;quot;, // 135 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0.1951 0.0 0.0 0.9808&amp;quot;, // 157.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 0 0 0 1&amp;quot;,                 // 180 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.1951 0.0 0.0 0.9808&amp;quot;, // 202.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.3827 0.0 0.0 0.9239&amp;quot;, // 225 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.5556 0.0 0.0 0.83110&amp;quot;, // 247.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.7071 0.0 0.0 0.7071&amp;quot;, // 270 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.8315 0.0 0.0 0.5556&amp;quot;, // 292.5 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9239 0.0 0.0 0.3827&amp;quot;, // 315 degrees&lt;br /&gt;
    &amp;quot;torus_pod  0 0 0 -0.9808 0.0 0.0 0.1951&amp;quot; // 337.5 degrees&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Again the 0 ° sub-entity will appear with the 0 0 0 1 0 0 0, and the next 15 lines place it at 22.5 °, 45 °, 67.5 °, 90 °, 112.5 °, 135 °, 157.5 °, 180 ° (with 0 0 0 0 0 0 1), 202.5 °, 225 °, 247.5 °, 270 °, 292.5 °, 315 ° and 337.5 °.&lt;br /&gt;
&lt;br /&gt;
=== using Java Script to calculate quaternions ===&lt;br /&gt;
&lt;br /&gt;
Oolite contains a whole set of vector and quaternion methods than can be used for easy manipulating quaternions. To generate a quaternion for a certain rotation around the z-axis we can rotate the identity quaternion around the z-axis with the command:&lt;br /&gt;
 new Quaternion(1,0,0,0).rotate(new Vector3D(0,0,1), angle)&lt;br /&gt;
With this command we can calculate our own quaternion for any rotation around the z-axis, or any other axis when desired. Angle is not in degree but in Math.PI&lt;br /&gt;
&lt;br /&gt;
=== Quaternion calculus ===&lt;br /&gt;
&lt;br /&gt;
To perform one rotation, and then another, one needs to multiply two quaternions together. &lt;br /&gt;
&lt;br /&gt;
Multiplying quaternions isn't commutative: Qa × Qb does not equal Qb × Qa&lt;br /&gt;
&lt;br /&gt;
To multiply Q₁  (w₁ , x₁ , y₁ , z₁ ) by Q₂ (w₂, x₂, y₂, z₂):&lt;br /&gt;
&lt;br /&gt;
W = w₁ × w₂ - x₁  × x₂ - y₁  × y₂ - z₁  × z₂&lt;br /&gt;
&lt;br /&gt;
X = w₁  × x₂ + x₁  × w₂ + y₁  × z₂ - z₁  × y₂&lt;br /&gt;
&lt;br /&gt;
Y = w₁  × y₂ + y₁  × w₂ + z₁  × x₂ - x₁  × z₂&lt;br /&gt;
&lt;br /&gt;
Z = w₁  × z₂ + z₁  × w₂ + x₁  × y₂ - y₁  × x₂&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine the quaternion for a rotation of α degrees/radians around an axis defined by a vector (x, y, z):&lt;br /&gt;
&lt;br /&gt;
W = cos (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Y = y × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
Z = z × sin (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
''or'':&lt;br /&gt;
&lt;br /&gt;
W = 1 / tan (0.5 × α)&lt;br /&gt;
&lt;br /&gt;
X = x&lt;br /&gt;
&lt;br /&gt;
Y = y&lt;br /&gt;
&lt;br /&gt;
Z = z&lt;br /&gt;
&lt;br /&gt;
These are equivalent because of the trigonometric identity sin x/cos x = tan x, and the fact that quaternion normalization means that multiplying each component by the same value (in this case, 1 / sin (0.5 × α)) does not affect the resulting orientation.&lt;br /&gt;
&lt;br /&gt;
=== Oolite Specifics ===&lt;br /&gt;
&lt;br /&gt;
Although Quaternions are coordinate system indifferent, Oolite, because it makes use of OpenGL, uses a [http://en.wikipedia.org/wiki/Left-handed_coordinate_system#Orientation_and_handedness left-handed coordinate system]. This means that all positive quaternion rotations about an axis, as discussed in the [[#Overview|Overview]] section above, are anti-clockwise (counter-clockwise) when the axis of rotation is pointing towards you (clockwise if pointing away from you).&lt;br /&gt;
&lt;br /&gt;
Also all Oolite ships and other entities have to be designed with the forward points along the z-axis, up along the y-axis and right along the x-axis. These entities have an orientation in space is given by a quaternion (the [[Oolite_JavaScript_Reference:_Entity#orientation|.orientation]] Javascript property) that describes the transformation from this initial design orientation to the required final orientation.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Oolite JavaScript Reference: Quaternion]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternion Wikipedia page on quaternions]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Wikipedia page on quaternions and spatial rotation]&lt;br /&gt;
* [http://skal.planet-d.net/demo/matrixfaq.htm The Matrix and Quaternion FAQ]&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=33448</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=33448"/>
		<updated>2012-07-09T23:16:47Z</updated>

		<summary type="html">&lt;p&gt;PG1: Adding emphasis on requirement for other OXP that rewards points in &amp;quot;Earning Reward Points&amp;quot; section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. '''You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].'''&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/KvrXtU GalCop_Rewards.1.0.1.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.1&lt;br /&gt;
|release = 2012-06-18&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32520</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32520"/>
		<updated>2012-06-18T11:24:52Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/KvrXtU GalCop_Rewards.1.0.1.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.1&lt;br /&gt;
|release = 2012-06-18&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32518</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32518"/>
		<updated>2012-06-18T11:19:54Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/KvrXtU GalCop_Rewards.1.0.1.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32510</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32510"/>
		<updated>2012-06-18T00:15:16Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
{{OXPConfig-small}}&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/M9ZDfu Safe_Docking.1.0.0.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|1}}&lt;br /&gt;
{{Infobox OXPb| title = Safe Docking&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Manual Docking Behaviour&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12062 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32509</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32509"/>
		<updated>2012-06-18T00:08:10Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/LsHkkq GalCop_Rewards.1.0.0.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32508</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32508"/>
		<updated>2012-06-18T00:07:48Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
{{OXPConfig-small}}&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/M9ZDfu Safe_Docking.1.0.0.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|1}}&lt;br /&gt;
{{Infobox OXPb| title = Safe Docking&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Manual Docking Behaviour&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12062 BB-Link]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{mechanics-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_List&amp;diff=32507</id>
		<title>OXP List</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_List&amp;diff=32507"/>
		<updated>2012-06-18T00:01:24Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== OXP Categories ==&lt;br /&gt;
{| class=&amp;quot;wikitable&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;70px&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;Category&amp;lt;/p&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&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;Description of OXP Category&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Activities_OXPs|Activities]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Allow Commanders to carry out a new activity or task eg. racing, gas giant skimming, taking out loans&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Dockables_OXPs|Dockables]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Add new objects that the player can dock with eg. carriers, space bars, casinos, fuel stations. Also, see [[Oolite Stations]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Ambience_OXPs|Ambience]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Change or add to the scenery, visuals or sound effects eg. planet skins, add new planets/moons to systems, move suns further away, dim nebulae, add monuments&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Equipment_OXPs|Equipment]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Buy upgrades for your ship excluding weapons&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Mechanics_OXPs|Mechanics]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Change the game play in a specific way eg. alter market mechanics, add more pirates&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:HUDs_OXPs|HUDs]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Modifications of your dials, gauges and other read-outs&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Missions_OXPs|Missions]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|New missions for Commanders to undertake. For more information, see [[Oolite Missions]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Retextures_OXPs|Retextures]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Retexture existing objects, either by replacing or adding variations, but without adding objects that did not exist before&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Ships_OXPs|Ships]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|New ships, except dockable ships. Also, see [[Oolite Ships]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Systems_OXPs|Systems]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Alter multiple star systems in a number of ways eg. combinations of changing main station and local police ships, adding new stations, ships, activities, missions&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Weapons_OXPs|Weapons]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|Addons for your ship for blowing up the baddies&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; overflow: hidden; white-space: nowrap;&amp;quot;|[[:Category:Misc_OXPs|Misc]]&lt;br /&gt;
|style=&amp;quot;margin: 0px; padding: 0px; border-style: solid; border-width: 1px; border-color: #ffffff; background-color:#f0f0ff; font-size: 12px; vertical-align: top; text-align: left; white-space:normal; word-wrap: break-word;&amp;quot;|OXPs that don't fit into the other categories eg. debug consoles, internationalisations, config mechanisms, demo OXPs&lt;br /&gt;
|}&lt;br /&gt;
OXP authors: if you are unsure how to categorise your OXP or if you wish to update the details of an OXP for an author who has disappeared, please seek advice on the [http://www.aegidian.org/bb/viewforum.php?f=4 Expansion Pack Forum] before proceeding. Please put your OXP in one category only. You can edit the section below to add your OXP.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sortable Table of OXPs ==&lt;br /&gt;
The following table is optimized for a horizontal screen resolution of at least 1280px so that all OXP descriptions fit on one line.&lt;br /&gt;
{| class=&amp;quot;wikitable&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; style=&amp;quot;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; |The &amp;quot;C&amp;quot; column indicates compatibility with Oolite 1.76.1:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Y&amp;quot;=compatible, &amp;quot;Y*&amp;quot;=compatible (with caveats), &amp;quot;N&amp;quot;=incompatible, &amp;quot;N*&amp;quot;=incompatible (but a fix is described), blank=unknown/untested.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- KEEP DESCRIPTIONS (desc=...) ALPHABETICAL --&amp;gt;&lt;br /&gt;
&amp;lt;!-- KEEP LENGTHS OF DESCRIPTIONS TO THAT OF EXISTING ENTRIES OR LESS --&amp;gt;&lt;br /&gt;
{{OXPListTableHeader}}&lt;br /&gt;
&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Accessories OXP|Accessories]] replaces the textures of all Stations and non-ship objects in Oolite with a more detailed and realistic look&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-03-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Accipiter]] is the market entry from Xeceesian shipyards, a strong &amp;amp; fast all purpose vessel for experienced commanders&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|con=Staer9, Griff&lt;br /&gt;
|date=2011-05-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Aegidian%27s Specials]] adds the powerful [[Mussurana]], the [[Asp (Oolite)#Notable features|Asp Mark II Special]], and a new cargo canister&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2009-07-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Aegidian%27s X-Ships]] adds [[Python ET Special]]s, [[Cobra Mk.2 (Oolite)|Cobra Mk II]]s, [[Taipan]]s, [[Asp (Oolite)#Notable features|Asp Mark II Special]]s, and [[Sidewinder (Oolite)#Notable features|Sidewinder Special]]s&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2009-04-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[AI Trading Assistant]] monitors cargo trading, and immediately warns of unprofitable mistakes&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|con=Capt. Murphy&lt;br /&gt;
|date=2012-05-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Pirate Clan Blitzspears|Amen Brick's Pirate Clan One: The Blitzspears]] adds the [[Assassin Blitzspear|Assassin]], the [[Hoodlum]], the [[Scoundrel]], and the [[Spiv]]&lt;br /&gt;
|aut=[[User:Amen Brick|Amen Brick]]&lt;br /&gt;
|date=2008-06-30}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Amiga Replacement Sounds]] is based on the sound set used in the Amiga version of the original Elite&lt;br /&gt;
|aut=EAGLE 5&lt;br /&gt;
|date=2006-03-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Anarchies OXP|Anarchies]] overhauls legal ratings and spices up anarchies with [[Hacker Outpost]]s, [[Salvage Gang]]s, special stations &amp;amp; ships&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|con=Killer Wolf, Griff, Cdr. Wyvern, Murgh, Aegidian, 8-Bit Apocalypse&lt;br /&gt;
|date=2012-04-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9462 Another HUD] is based on Killer Wolf's Generic HUD&lt;br /&gt;
|aut=NorthenderPNE&lt;br /&gt;
|date=2011-03-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Aphid]] adds the stylish Aphid Escort Service&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|date=2005-01-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[APRIL OXP|APRIL]] is an expandable in-flight pylon reloading piece of equipment.&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-04-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Aquatics OXP|Aquatics]] adds the Aquarian Shipbuilding Corporation of Aqualina, G3 along with its ships and a mission&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-01-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Armoured Transport Type 1]] adds Gaundlet's [[Gaundlet Armoured Transport Type1|Armoured Transport Type 1]] and [[Gaundlet Armoured Escort Viper|Armoured Escort Viper]] that ferry valuables&lt;br /&gt;
|aut=[[User:Arexack|Arexack Heretic]]&lt;br /&gt;
|date=2005-12-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Armoury OXP|Armoury]] adds AMS, captured Thargons, drones, probes, a missile rack, some bombs, and the missile machine&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-03-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[The Assassins Guild OXP|Assassins Guild]] adds 21 missions involving murder to order in Galaxy 7&lt;br /&gt;
|aut=[[User:LittleBear|Littlebear]]&lt;br /&gt;
|date=2012-04-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Asteroid Storm]] adds different types of asteroids &amp;amp; a mission where a station in G1 is threatened by a large asteroid strike&lt;br /&gt;
|aut=[[User:LittleBear|Littlebear]], Charlie&lt;br /&gt;
|date=2012-05-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Aurora]] adds huge passenger ships for the wealthiest in society&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=Griff, Thargoid&lt;br /&gt;
|date=2010-11-10&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12008 Autodock] allows the player to authorise the main station to pilot his ship into the hangar on remote control for a fee when no docking computer is installed.&lt;br /&gt;
|aut=CommonSenseOTB&lt;br /&gt;
|date=2012-06-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://www.mediafire.com/?fnc65em7uh5un1d Auto ECM] fires the ECM once when a missile is fired at the player's ship. See the [http://aegidian.org/bb/viewtopic.php?p=138124#p138124 BB] for more info&lt;br /&gt;
|aut=Switeck&lt;br /&gt;
|date=2011-05-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Auto eject OXP|Auto Eject]] ejects your escape pod automatically when your energy becomes too low&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2010-06-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Automatic Chaff System]] provides an enhanced chaff-based missile countermeasure system&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2010-06-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Auto_Skim_OXP|Auto Skim]] gives the player ship an AI to automatically sun skim.&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=3171 Okti]&lt;br /&gt;
|date=2011-07-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Baakili Far Trader]] adds a dockable alien ship&lt;br /&gt;
|aut=[[User:Zieman|Zieman]]&lt;br /&gt;
|date=2010-09-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Bandersnatch]] adds a pirate capital vessel armed with 4 x fore lasers&lt;br /&gt;
|aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2009-11-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11857 Battle Damage] Improved immersive experience by adding hull damage when you take un-shielded laser fire.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-04-30&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Beer Cooler]] allows you to fit your ship with a beer cooler&lt;br /&gt;
|aut=[[User:Maik|Maik]]&lt;br /&gt;
|date=2010-08-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Behemoth]] adds a dockable Navy cruiser carrying [[Navy Asp]]s and [[Navy Viper]]s&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-01-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Behemoth Spacewar]] adds intelligence to the Behemoth and brings a combat with Thargoids&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2012-03-31&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[BGS|BGS - Background Set]] framework for images, sounds and ambient music&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|con=Pagroove, PhantorGorth&lt;br /&gt;
|date=2012-05-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11890 BigBlimpy] It's a big balloon.  Carries big cargo, or display signs.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-04-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[BigShips OXP|Big Ships]] ensures that large ships do not dock and controls population of systems with them&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2009-11-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Black Monk Monastery]] offers loans in advanced systems and adds the [[Black Monk Gunship]] to persecute defaulters&lt;br /&gt;
|aut=[[User:LittleBear|Littlebear]]&lt;br /&gt;
|date=2010-06-14&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[BlackjacksBullion OXP|Blackjack's Bullion]] starts in galaxy 2 at Telace as Commander Blackjack arrives via escape pod&lt;br /&gt;
|aut=[[User:Rustybolts|Rustybolts]]&lt;br /&gt;
|date=2012-06-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[BlOomberg Markets]] varies the in-game economy by generating random events that affect commodity prices&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2011-10-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Boomslang]] adds a mid-range multi-role ship. Used by pirates and traders alike&lt;br /&gt;
|aut=milinks, [[User:Jar|Jar]]&lt;br /&gt;
|date=2008-09-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Bounty Scanner]] adds bounty details (if any) to the targeting lock-box display when locked onto other ships&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2010-07-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[BountyStatus OXP|Bounty Status]] displays your current bounty (and your legal status) on the F5 manifest screen&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-05-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Breakable_'Standard'_Equipment_OXPs|Breakable 'Standard' Equipment]] can make standard equipment like Shields, HUD, Engines etc damageable in combat&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2012-05-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Bulk Haulers]] adds the [[Lynx Bulk Carrier (Oolite)|Lynx Bulk Carrier]], the [[Long Range Cruiser (Oolite)|Long Range Cruiser]], the [[Bulk Hauler]], and the [[Super Bulk Hauler]]&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|con=Aegidian, pagroove&lt;br /&gt;
|date=2010-04-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[BuoyRepair|Buoy Repair]] adds a [[Buoy Repair Facility]] and related ships to repair defect or destroyed nav-beacons&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|con=Svengali, Murgh, Zieman&lt;br /&gt;
|date=2012-03-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[Cabal Common Library]] is a collection of snippets and helpers for OXPs&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|con=Cdr. Cheyd, PhantorGorth&lt;br /&gt;
|date=2012-05-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Caduceus]] adds the very expensive (and deadly) Caduceus&lt;br /&gt;
|aut=[[User:ClymAngus|ClymAngus]]&lt;br /&gt;
|con=Cdr. Wyvern, another_commander, Eric Walch, Thargoid&lt;br /&gt;
|date=2010-12-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Capisastra]] adds [[Capisastra Defender]]s, [[Capisastra Hauler]]s, and [[Capisastra Warrior]]s&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2006-01-12}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Captain Berf Engineer]] adds a voice for crew members&lt;br /&gt;
|aut=[[User:Captain Berf|Captain Berf]]&lt;br /&gt;
|date=2009-12-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Captain Berf Pilot]] adds a voice for crew members&lt;br /&gt;
|aut=[[User:Captain Berf|Captain Berf]]&lt;br /&gt;
|date=2009-12-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Captain Berf Pilot Alien]] adds a voice for crew members&lt;br /&gt;
|aut=[[User:Captain Berf|Captain Berf]]&lt;br /&gt;
|date=2009-12-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Captain Berf Tactical Officer]] adds a voice for crew members&lt;br /&gt;
|aut=[[User:Captain Berf|Captain Berf]]&lt;br /&gt;
|date=2009-12-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Cargo Shepherd OXP|Cargo Shepherd]] attracts cargo pods and holds them until you can scoop them, also includes a beacon&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-04-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Cargo_Wreck_Teaser_OXP|Cargo Wreck Teaser]] adds alternative cargo pods to the system.&lt;br /&gt;
|aut=[[User:Arexack|Arexack Heretic]]&lt;br /&gt;
|date=2012-02-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[CB-HUD Mark II]] features a HUD that changes based on installed equipment. See the [http://aegidian.org/bb/viewtopic.php?p=141035#p141035 BB post] for more information&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2011-09-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11502 CCR-HUD] is the stand-alone version of the Coluber Red Racer HUD&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2012-01-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Chopped Cobra]] adds a chopped version of Griff's Cobra and also includes Enforcer and S9 variants by Smivs.&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|con=Smivs&lt;br /&gt;
|date=2011-07-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Chupacabra]] is a bird-like ship featuring the ChupaCabraHUD&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-11-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[ChupacabraHUD]] has central curved bar gauges, custom missile displays and shield capacitor gauges&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-10-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Clippers]] Long-legged variants of the Python and Boa 2, with new features! Replaces Boa Clipper OXP.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-06-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11678 Cloak Repair] Allows a damaged Cloaking Device to be replaced at TL15 systems.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-02-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9157 Cobra AC] is a faithful reproduction of the Cobra on the cover of the Dark Wheel novella with improved specs&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Cobra Clipper SAR]] adds a custom Cobra Mk III to rescue stranded Commanders&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2010-04-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Cobra III NjX]] adds a faster, tougher variation on the Classic Cobra Mk III&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2006-08-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Cobra 3.5]] adds the Cobra Mk 3.5, a slightly faster and tougher variant with a reduced cargo bay&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2006-12-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Cobra Mark III-XT]] Cobra3 with revamped architecture and upgraded systems to boost performance&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-07-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/cobra4.htm Cobra MkIV] is [[Isis Interstellar]]'s successor to the Cobra MkIII, available in trader and fighter variants&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2010-11-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11974 Colonial Viper Mark 1] adds a single seater fighter from GalTech Industries Corporation&lt;br /&gt;
|aut=[[User:Shipbuilder|Shipbuilder]]&lt;br /&gt;
|date=2012-05-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11206 Coluber Ships] adds the [[Coluber Blue Racer|Blue Racer]], a medium cargo ship, and the Red Racer, a fast, heavy, long-range fighter&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2011-12-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[CombatHUD|Combat HUD]] A stylish, logically arranged HUD designed to give clear information during combat.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-01-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[OosoundsCombined OXP|Combined Murgh, Wiggy &amp;amp; xaotik's sounds]] combines the 3 available packs from Murgh, Wiggy and xaotik&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|con=Murgh, Wiggy, xaotik&lt;br /&gt;
|date=2009-09-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Commies]] Adds [[Astro Mines]], [[CZGF|Factories]], [[SLAPU|Production Units]], [[Worker%27s Commuter|Commuters]] &amp;amp; special police ships to Communist systems&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|con=Ramirez, Murgh, johnsmith, HueijRevisited&lt;br /&gt;
|date=2010-05-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[CompactHUD|Compact HUD]] provides an alternative HUD with a clean look&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Condor]] adds a very powerful police and Navy Cruiser&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2010-10-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Console HUD]] Azure themed semi-transparent HUD with balanced array of indicators&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-12-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Contractor ZZ1 | Contractor Mk II]] Very fast combat 'stealth' ship. Appears in-game as a Bounty-hunter and rarely as Pirate. Buyable&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-01-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Copperhead]] Redux of core ship in Archimedes Elite slightly modified. NPC and player buyable&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-05-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Coyote's_Run|Coyote's Run]] brings [[:User:El Viejo|El Viejo]]'s novella [[:Category:Oolite stories#El Viejo|Coyote]] to life as an exciting mission OXP&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|con=El Viejo, Smivs, Wyvern&lt;br /&gt;
|date=2011-12-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Croydon Starsoarer]] adds a ship that is similar to the Asp in specification&lt;br /&gt;
|aut=[[User:Simon B|SimonB]]&lt;br /&gt;
|con=pagroove&lt;br /&gt;
|date=2010-05-08&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11129 Cruzer] adds ace's Cruzer&lt;br /&gt;
|aut=ace\56&lt;br /&gt;
|con=Staer9&lt;br /&gt;
|date=2011-11-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[CustomSounds OXP|CustomSounds]] replaces/adds 40+ sounds, featuring music &amp;amp; extensive use of calm female computer voice for warnings&lt;br /&gt;
|aut=milinks&lt;br /&gt;
|date=2006-12-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10842 Dark Rainbow] is an 'uberfied' and tweaked version of the [[Caduceus]] with more turrets, pylons, and cargo&lt;br /&gt;
|aut=sdrubble&lt;br /&gt;
|date=2011-09-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[DWCobra|Dark Wheel Cobra]] is a custom Cobra Mk III model, as seen on the cover of the Elite Manual&lt;br /&gt;
|aut=[[User:Ramon|Ramon]]&lt;br /&gt;
|date=2006-11-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Darkspace]] removes the nebula from the sky and limits the number of stars visible to improve game performance&lt;br /&gt;
|aut=[[User:Gimi|Gimi]]&lt;br /&gt;
|date=2011-12-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[Debug OXP]] is a special OXP that enables JavaScript console support in test releases of Oolite (1.70 and later)&lt;br /&gt;
|aut=[[User:Ahruman|Ahruman]]&lt;br /&gt;
|date=2011-12-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[http://deephorizonindustries.com/Gas_Giant_Skimming.html Deep Horizon - Gas Giants Skimming] allows to skim gas giants to refuel a ship or mine them for rare minerals&lt;br /&gt;
|aut=[[User:Cmd. Cheyd|Cdr. Cheyd]]&lt;br /&gt;
|date=2010-07-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://deephorizonindustries.com/Lights_Down.html Deep Horizon - Lights Down] lowers ambient light within system to give more natural feel to planets and ships&lt;br /&gt;
|aut=[[User:Cmd. Cheyd|Cdr. Cheyd]]&lt;br /&gt;
|date=2010-07-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://deephorizonindustries.com/Nav_Buoy.html Deep Horizon - Nav Buoy 1.0] replaces Witchpoint, Station, and other Nav Buoys with a new model&lt;br /&gt;
|aut=[[User:Cmd. Cheyd|Cdr. Cheyd]]&lt;br /&gt;
|date=2011-07-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://deephorizonindustries.com/Pirate_Ambushes.html Deep Horizon - Pirate Ambushes] adds pirates that ambush the player upon exit from witchspace&lt;br /&gt;
|aut=[[User:Cmd. Cheyd|Cdr. Cheyd]]&lt;br /&gt;
|date=2010-07-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://deephorizonindustries.com/DH-Systems.html Deep Horizon - Systems] textures the main planet of a system as well as adding moons and additional planets&lt;br /&gt;
|aut=[[User:Cmd. Cheyd|Cdr. Cheyd]]&lt;br /&gt;
|date=2010-07-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Deep Space Dredger]] adds dockable Space Dredgers, defended by [[Sabre]] fighters, and a missile to salvage derelict ships&lt;br /&gt;
|aut=[[User:Sabre|Sabre]]&lt;br /&gt;
|date=2011-01-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[DeepSpacePirates|Deep Space Pirates]] adds pirates and asteroids outside the space lanes&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2010-01-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Deepspace Ships#Deepspace HUDs|Deepspace HUD]] is an alternative HUD with two versions&lt;br /&gt;
|aut=DeepSpace&lt;br /&gt;
|date=2010-02-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Deepspace Ships]] replaces the default ships with new textures&lt;br /&gt;
|aut=DeepSpace&lt;br /&gt;
|date=2010-02-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Delightful Docking]] Improved docking experience. Slower stations. View the station when queueing. Better music.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-02-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Deposed OXP|Deposed]] is a series of missions set in Galaxy 4 for an experienced Commander&lt;br /&gt;
|aut=[[User:Cmdr. Wombat|Cdr. Wombat]]&lt;br /&gt;
|con=Commander McLane, Eric Walch&lt;br /&gt;
|date=2009-03-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Dictators OXP|Dictators]] adds a range of ships and stations to each dictatorship and offers new trading opportunities to players&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2011-07-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Diso OXP|Diso]] adds extra planets and stations to the Diso system in Galaxy 1&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2010-11-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Display reputation OXP|Display Reputation]] lets you know your current reputations in the passenger ferrying and the cargo contract market&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2010-03-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance]] enables the docking clearance protocol for all stations&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2008-12-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Docklights OXP|Docklights]] adds a trail of green docking lights to tech 3+ main stations, which turn red on station launches&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-06-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Griff Industries|Dodo Stations]] adds new textures for Dodecahedron stations&lt;br /&gt;
|aut=[[User:Griff|Griff]], [[User:CaptKev|CaptKev]]&lt;br /&gt;
|date=2010-05-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Dr HUD OXP|Dr HUD]] is an alternative HUD&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2006-12-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Dragon|Dragon Assault Craft]] adds a heavy combat ship, and the Military Smart Missile, an improved hard head&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2008-11-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Dragon#Download|Dragon Military Missile]] adds an enhanced hardhead, seeks priority targets when ECM'd&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2008-11-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.mediafire.com/?rllzzcbkwgm Dragonfly/Firefly S.T] adds [[Dragonfly S.T]] &amp;amp; much faster [[Firefly S.T]]. Ideal small fast ships for pirates or bounty hunters&lt;br /&gt;
|aut=[[User:Rustybolts|Rustybolts]]&lt;br /&gt;
|date=2009-10-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Eagle Mk II]] adds the cheap Eagle Mk II escort vessel in several different versions, including an enhanced SE&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2006-03-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[ADCK%27s Eagles|Eagles Mk I to IV]] adds four Eagle Long Range Fighters to the game&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|date=2010-04-07&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11935 Elbereth] Large, unusual cargo hauler.  Lights up pretty.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-05-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[https://www.box.com/s/6470a1bcc4fce34919db EnergyBombfor1.77.oxp] makes the Energy Bomb available on 'unrestricted play' mode in Oolite 1.77+ (Trunk/Nightly)&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt. Murphy]]&lt;br /&gt;
|date=2012-04-24&lt;br /&gt;
|work=N*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Energy Equipment OXP|Energy Equipment]] adds a pylon-mounted automatically triggered top-up for when the juice runs low&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-03-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Enhanced_Misjump_OXP|Enhanced Misjump]] changes the effect of the jump tunnel when having a misjump&lt;br /&gt;
|aut=[[User:cim|cim]]&lt;br /&gt;
|date=2011-12-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Escape Pod Locator OXP|Escape Pod Locator v1.4.1]] is a piece of equipment to allow tracking of escape pods in system&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2012-06-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Escort Contracts OXP|Escort Contracts v1.5.6]] allows players to enter into short-term escort contracts with NPC lone wolf traders&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2012-05-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[ETT Homing Beacon]] marks a position in space by deploying a pylon-mounted beacon&lt;br /&gt;
|aut=Twisted&lt;br /&gt;
|con=Lone_Wolf&lt;br /&gt;
|date=2011-04-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Executive SpaceWays]] adds [[Delta Long-Range Escort|Delta]]/[[Gemini Escort|Gemini]] Escorts, [[Starseeker Personal Shuttle|Starseeker]]/[[Trident Executive Shuttle|Trident Exec]] Shuttles, [[Strelka Cruise Liner]]s&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2010-06-19&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Explorers' Club OXP|Explorers' Club]] v1.3.2 keeps a record of the systems you have visited and gives you an explorer rank&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2012-03-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[ExtraFuelTanks]] Re-fillable extra fuel tanks fitted inside your ship. 1LY Reserve or 3LY Auxiliary tanks available.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-04-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.box.net/shared/moreq536ht#/shared/moreq536ht/1/71484311/786362645/1 Extra Thargoids] adds some types of Thargoid ship, each of which packs surprises.&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2628 UK_Eliter]&lt;br /&gt;
|date=2012-06-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Factions OXP|Factions]] from anarchy, feudal, dictatorship &amp;amp; communist systems meet in multi-government systems and start fighting&lt;br /&gt;
|aut= m4r35n357&lt;br /&gt;
|date=2012-04-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Famous Planets OXP|Famous Planets]] adds unique textures, new descriptions, and theme tunes for many planets in G1 and G2&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=Cdr. Cheyd, Stromboli, Pangloss, CaptKev, Drew Wagar, Thargoid, Svengali, Lestradae, UK Eliter&lt;br /&gt;
|date=2010-09-30&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Famous Planets Liners OXP|Famous Planets Liners]] adds Spaceway Liners on the 4 spaceways from Lave to Zadies&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=Ramirez, Presti70, Thargoid&lt;br /&gt;
|date=2009-03-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Far Arm ships|Far Arm Ships]] adds [[Far Arm Sunracer|Sunracer]]s, [[Far Arm Scow|Scow]]s, [[Far Arm Tanker|Tanker]]s, [[Far Arm Corsair|Corsair]]s, [[Far Arm Dart|Dart]]s, [[Far Arm Hunter|Hunter]]s, [[Far Arm Cruiser|Cruiser]]s, [[Far Arm Titan|Titan]]s, [[Far Arm Manchi Vulture|Vulture]]s, and [[Far Arm Manchi Wasp|Wasp]]s&lt;br /&gt;
|aut=[[User:Zieman|Zieman]]&lt;br /&gt;
|date=2010-10-02&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Far Star Murderer]] adds a mid-range fighter / trader, with a fair sized cargo bay&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2011-11-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Far Sun OXP|Far Sun]] places suns further away from the planet than standard Oolite&lt;br /&gt;
|aut=[[User:Kaks|Kaks]]&lt;br /&gt;
|date=2010-05-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.box.net/shared/moreq536ht Fer de Lance 3G] adds player &amp;amp; NPC Fer de Lance versions with custom paint jobs &amp;amp; altered specs&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2628 UK_Eliter]&lt;br /&gt;
|date=2012-06-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Fer de Lance NG]] adds a more powerful version of the Fer de Lance with several custom paint jobs&lt;br /&gt;
|aut=alien&lt;br /&gt;
|date=2005-03-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11626 Feramborini] Fast, unarmed, and fast.  For Rich folk.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-02-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Ferdepai]] adds a new fighter / trader to Galaxy 2&lt;br /&gt;
|aut=[[User:Johnsmith|johnsmith]]&lt;br /&gt;
|date=2006-12-17&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Feudal States]] adds the [[Jäger]], the [[Korvette]], the [[Zerstörer]], a [[Royal Hunting Lodge]] and other elements to feudal systems&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2011-12-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Fighter HUD (Oolite)|Fighter HUD]] is an alternative HUD&lt;br /&gt;
|aut=[[User:CaptKev|CaptKev]]&lt;br /&gt;
|date=2008-05-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11933 FireAnt] Killer bug series.  Tiny fighter, with tiny ball turrets, and above average speed.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-05-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11437 Firebird] adds a ship inspired by an early 70s Pontiac Firebird&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-01-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11642 Firefly (Serenity)] adds the Firefly from Serenity&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2012-02-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Firewasp]] adds a fast interceptor&lt;br /&gt;
|aut=[[User:Draco Caeles|Draco_Caeles]]&lt;br /&gt;
|date=2006-05-10&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Fireworks OXP|Fireworks]] allows you a joyful celebration of whatever it is you want to celebrate&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-05-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Flight Log OXP|Flight Log]] adds a log of the last 10 systems visited&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-01-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Flying Dutchman OXP|Flying Dutchman]] adds the small chance to meet a Ghost Ship in the Ooniverse&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|con=Griff&lt;br /&gt;
|date=2011-04-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[Freaky Thargoids OXP|Freaky Thargoids]] is a shader demonstration for Oolite&lt;br /&gt;
|aut=[[User:Ahruman|Ahruman]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-02-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Free Trade Zone]] adds an independent trading post of dubious legality to Multi-Government systems&lt;br /&gt;
|aut=[[User:Disembodied|Disembodied]]&lt;br /&gt;
|con=Commander McLane&lt;br /&gt;
|date=2010-10-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Frog Space Rickshaw]] adds a chatty space taxi service to the safer systems&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2006-01-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Fuel Collector OXP|Fuel Collector]] scoops fuel from killed ships and collects fuel while cruising, even in witch space&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|con=Commander McLane&lt;br /&gt;
|date=2011-07-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Fuel Station OXP|Fuel Station]] adds fly-thru Fuel Stations and Fuel Satellites near the witchpoint and along route one&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-01-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Fuel Tank]] mounts in place of a missile, to top up 3 light years of fuel&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2008-05-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Furball OXP|Furball]] adds barroom brawls that've got out of hand. Furious fugitives flee from pissed off police on the station's doorstep&lt;br /&gt;
|aut=Caracal&lt;br /&gt;
|con=m4r35n357&lt;br /&gt;
|date=2012-04-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Galactic Hyperdrive OXP|Galactic Hyperdrive]] is a free upgrade to the core game's equipment. Improves usability, costs nothing&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2012-06-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Galactic_Misjump_OXP|Galactic Misjump]] allows intergalactic space to be reached by the brave&lt;br /&gt;
|aut=[[User:cim|cim]]&lt;br /&gt;
|date=2012-06-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[Galactic Navy OXP|Galactic Navy]] adds more ships and stations to the arsenal of the Galactic Navy. Allows to join the Navy Reserves&lt;br /&gt;
|aut=[[User:Nemoricus|Nemoricus]]&lt;br /&gt;
|date=2011-10-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9530 Galaxy Info] helps you search for systems by criteria you select and will try to locate the nearest one&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=3171 Okti]&lt;br /&gt;
|date=2012-01-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[GalCop Rewards]] adds a loyalty reward scheme with a lottery.&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2456 PhantorGorth]&lt;br /&gt;
|date=2012-06-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[GalDrivePod]] A portable Galactic Hyperdrive unit, allowing you to complete the &amp;quot;Lost Worlds Grand Tour&amp;quot;&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-03-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Gates OXP|Gates]] adds short-cut jump gates to suitable systems, speeding journeys between the main station and witchpoint&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-10-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Generation Ships OXP|Generation Ships]] adds encounters with the mythical Generation Ships from time to time&lt;br /&gt;
|aut=[[User:Draco Caeles|Draco_Caeles]]&lt;br /&gt;
|con=Commander McLane&lt;br /&gt;
|date=2011-04-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11438 Genesis] adds a huge player-flyable trader with 8 ball-turrets. The NPC version comes with 6 SunBat Mk II escorts&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-01-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[GHOST Gunship]] is GHOST's entry into the ship market, a good value for money ship with multiple front lasers&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-10-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11135 GHOST Raptor] is a very light dog-fighter with high speed capabilities and decent shielding and energy banks&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-11-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Globe station|Globe Station]] is a new type of stations that appears in advanced systems&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2009-10-22&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10073 Graffiti Asteroids] add asteroids with graffitis&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-06-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Greek Ships OXP|Greek Ships]] adds [[Penelope Class Freighter]]s, [[Telemachus Class Escort]]s, and [[Ulysses Class Interceptor]]s&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|date=2005-07-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.box.net/shared/oqpkkzbl30jmm14vj2bo Green Gecko] features the Green Knights of Lago in their awesome twin-laser Geckos&lt;br /&gt;
|aut=[[User:El Viejo|El Viejo]]&lt;br /&gt;
|date=2011-09-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11960 GreenHornet] Largest in the Killer Insect series.  Good for hauling, or mauling.&lt;br /&gt;
|date=2012-05-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Griff ArcElite|Griff's ArcElite]] adds versions of native Oolite ships textured &amp;amp; shaded to resemble the Acorn Archimedes version of Elite&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|date=2008-09-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Griff Boa]] contains the famous Griff Boa&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|date=2011-10-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://www.box.com/shared/k2lvh3enuy Griff's Explosion Debris] adds new alloy &amp;amp; debris models to exploding ships&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|con=Thargoid&lt;br /&gt;
|date=2009-02-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Griff Krait]] adds a heavily modified Krait, similar in design to the Griff Boa&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|date=2010-06-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Griff Industries|Griff's Normalmapped Ships]] adds some of the best looking ships, stations, and flotsam available in Oolite&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|date=2012-02-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Griff's No Shaders Shipset|Griff's No Shaders Shipset]] Texture mod of Griff's normalmapped ships&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|con=CaptSolo&lt;br /&gt;
|date=2012-05-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Griffin Two (Oolite)|Griffin Two]] adds the Griffin Mk II from Frontier&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2005-10-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Gritty Coriolis OXP|Gritty Coriolis]] alternates the Coriolis stations with two elaborate gritty Corioli&lt;br /&gt;
|aut=xaotik&lt;br /&gt;
|date=2006-02-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://wiki.alioth.net/images/2/2d/G-HUD_Mk2.oxp.zip G-HUD Mk2] adds an alternative HUD&lt;br /&gt;
|aut=[[User:Gunney Plym|Gunney Plym]]&lt;br /&gt;
|date=2008-07-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11050 Halloween Witch] adds a witch that fires pumpkins at the player&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|con=CommonSenseOTB, Eric Walch&lt;br /&gt;
|date=2011-10-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Halsis]] features a female cockpit voice, sometimes called Hal's Hot Sister&lt;br /&gt;
|aut=[[User:Ovvldc|Ovvldc]]&lt;br /&gt;
|date=2006-08-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[BoyRacer|Hatchling BoyRacers]] adds the  talkative (and often insulting) [[BoyRacer]]s to more advanced systems&lt;br /&gt;
|date=2006-01-13&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Staer9 haulerp30|Hauler P30]] is a very large cargo ship made by Staer9 Industries&lt;br /&gt;
|date=2011-07-15&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Hawksound]] features a quality female computer voice, new weapon, damage and some station interface sounds&lt;br /&gt;
|aut=[[User:Hawkstrom|Hawkstrom]]&lt;br /&gt;
|date=2008-11-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Herald Military Gunboat|Herald]] adds the [[Herald Military Gunboat]], a powerful police and Navy interceptor&lt;br /&gt;
||aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2005-01-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Hired Guns OXP|Hired Guns]] adds escort ships that can be contracted to accompany you on your next journey&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-01-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Hognose|Hognose Tugships]] adds the [[Hognose]], a chatty tug ship that can be seen towing broken down ships&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Jonnycuba&lt;br /&gt;
|date=2006-03-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[HoOpy Casino]]s appear near the station in advanced systems. You can win or lose credits in games of chance&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2012-04-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11106 Hornet] adds ace's Hornet&lt;br /&gt;
|aut=ace\56&lt;br /&gt;
|con=Staer9&lt;br /&gt;
|date=2011-11-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Hotrods OXP|Hotrods]] adds custom paint jobs to classic Elite ships, racing vehicles, and a space gang that doesn't like the player&lt;br /&gt;
|aut=[[User:Kaks|Kaks]]&lt;br /&gt;
|con=Arexack_Heretic, Murgh&lt;br /&gt;
|date=2011-12-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[HyperCargo OXP|HyperCargo]] adds an extended and expanded cargo handling system&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-04-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Hyperradio js OXP|Hyperradio]] is an expandable music-player&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|date=2011-12-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[I_Missile |I-Missile OXP]] Adds a very fast &amp;quot;interceptor&amp;quot; missile to the players arsenal&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-10-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Icarus (Oolite)|Icarus]] adds a small fighter / trader based on blueprints from the lost Solice system&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2007-07-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Icesteroids]] are like normal asteroids but are frozen lumps of water instead&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|con=Griff&lt;br /&gt;
|date=2011-10-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Illegal_Goods_Tweak_OXP|Illegal Goods Tweak v1.7.3]] adds interactions with Galcop customs on docking at a main station with Contraband in the hold&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2012-05-30&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Illicit Unlock OXP|Illicit Unlock]] allows the player to fly all the classic Elite ships&lt;br /&gt;
|aut=tgape&lt;br /&gt;
|date=2005-10-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Griff_Industries#Related_OXP's_by_Other_Authors|Illicit Unlock - Griff Version]] allows the player to fly [[Griff Industries#Griff's Normalmapped Ships OXP|Griff's]] pirate/viper Ships&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|con=dertien&lt;br /&gt;
|date=2011-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Imperial Courier (Oolite)|Imperial Courier]] adds the powerful Imperial Courier from Frontier, constructed by [[Seldar Shipyards]]&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|con=Commander McLane&lt;br /&gt;
|date=2007-06-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Imperial_Star_Destroyer|Imperial Star Destroyer]] adds a battleship&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-06-05&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Imperial Trader (Oolite)|Imperial Trader]] adds the powerful Imperial Trader from Frontier&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|date=2010-06-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Interstellar help OXP|Interstellar Help]] allows you to help out traders who got stuck in interstellar space without fuel&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-03-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://www.box.com/shared/moreq536ht Interstellar Tweaks] modifies what happens in interstellar space.&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2628 UK_Eliter]&lt;br /&gt;
|date=2012-06-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Ionics OXP|Ionics]] adds a series of missions featuring the Ionics Company of Zaria, the Ramaza Liberation Front and The Link&lt;br /&gt;
|aut=[[User:Galileo|Galileo]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2010-08-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[IronHide OXP|IronHide]] introduces the new range of IronHide ship armour from the Aquarian Shipbuilding Corporation&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-02-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Iron Raven]] is a multi-stage mission to investigate a dangerous conspiracy on behalf of GalCop High Command&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2011-11-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Ixian Ships|Ixian Military Ships]] adds Ixian [[Ixian Battle Cruiser|Battle Cruiser]]s, [[Ixian Bezerka|Bezerka]]s, [[Ixian Gunship|Gunship]]s and [[Ixian No-Ship Mark I|No-Ship]]s from Dune&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2009-03-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Ixian Ships#Ixian Freighter|Ixian Freighter]] adds a civilian freighter to the universe&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|date=2005-01-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Jabberwocky]] adds the powerful Jabberwocky fighter / trader&lt;br /&gt;
|aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2006-03-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[JellyBaby Dispenser]] adds a handy Jellybaby Dispenser for your cockpit&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-03-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Kestrel &amp;amp; Falcon OXP|Kestrel &amp;amp; Falcon]] adds buyable Star Wars style [[Falcon_%28Oolite%29|Falcon]] for pirates/traders and the [[Kestrel]], a police/navy interceptor&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|con=Kaks&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Kestros Mk4]] is a medium-sized fighter, the result of the Kestros project.&lt;br /&gt;
|aut=[[Ryan Hoots]]&lt;br /&gt;
|date=2011-12-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Killer_Wolf's_Dynamic_HUD|Killer Wolf's Dynamic HUD]] adds a version of the dynamic HUD first seen in Killer Wolf's Werewolf ships, to all ships&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|con=Thargoid&lt;br /&gt;
|date=2010-07-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Killit_OXP|Killit]] adds a bunch of insane super weapons&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-05-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://purgatori.net/kingcobra.htm King Cobra] is [[Isis Interstellar]]'s Cobra MkVI, with new missiles and a custom HUD&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2012-01-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Kirin]] adds a heavy military hauler, CV &amp;amp; XM versions used by both pirates &amp;amp; traders&lt;br /&gt;
|aut=[[User:ClymAngus|ClymAngus]]&lt;br /&gt;
|con=Cdr. Wyvern&lt;br /&gt;
|date=2009-09-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Klepto-HUD OXP|Klepto-HUD]] is a different take on a HUD with precise crosshairs&lt;br /&gt;
|aut=Kleptoid&lt;br /&gt;
|date=2006-03-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Koneko Kobra]] is [[Koneko Industries | Koneko Industries's]] variant of the Cobra Mk3.&lt;br /&gt;
|aut=[[Ryan Hoots]]&lt;br /&gt;
|date=2011-12-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://sancho.dk/oolite/lane_legal.zip ''Lane Legal Racers''] adds NPC versions of [[Krait]]s, [[Mamba]]s, and [[Sidewinder]]s from different [[Racers#Listing_of_sponsored_teams|racing teams]]&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-09-27&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Lave OXP|Lave]] is a system make-over for Lave, adding all features described in The Dark Wheel novella included with original Elite&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2009-12-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Lave Academy OXP|Lave Academy]] adds Lave Academy Station above Lave &amp;amp; other planets, with 3 mini-games to test Commanders' skills&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-12-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=130015#p130015 LinkG7] is a mission in Galaxy 7&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-02-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Liners]] adds some beautiful and very large vessels to the spacelanes.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|con=pagroove, Thargoid, Griff, Eric Walch&lt;br /&gt;
|date=2012-05-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Llama]] adds the Llama fighter / trader. Updated from the version of Oosat1 to fix a small bug&lt;br /&gt;
|aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2006-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://www.boxcn.net/shared/bpl582x1hu Long Range Target Scanner] shows all ships currently in your system and allows to target them&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-05-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[LongWay_OXP|Long Way Around]] adds a transport mission well suited to the novice in Galaxy 1&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2009-04-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Lovecats.oxp|Lovecats]] is a mission about love &amp;amp; betrayal amongst the feline races of Galaxy 4. Fast ship &amp;amp; hard heart required!&lt;br /&gt;
|aut=[[User:Johnsmith|johnsmith]]&lt;br /&gt;
|date=2011-07-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Second-hand ships|M-Pack (rusties)]] adds rusty banger versions of all Classic Elite ships in poor condition but still can haul cargo&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2006-01-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Manta]] adds the Manta light escort craft&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11290 Marauder] is a small ship with huge engines, intended to be an escort, or a speed mission runner.&lt;br /&gt;
|aut=Mandoman&lt;br /&gt;
|date=2011-12-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Marett Space Corporation OXP|Marett Space Corporation]] releases [[Adder Mk II]], [[Mosquito Trader]], [[Mosquito Sport]], new fighters / medium traders&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://www.crimsonforge.co.uk/cloister/MedusaHud.oxp.zip Medusa HUD] is an alternative HUD&lt;br /&gt;
|aut=[[User:ClymAngus|ClymAngus]]&lt;br /&gt;
|date=2009-01-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Mega-Walnut Dashboard OXP|Mega-Walnut Dashboard]] is a generic version of the fabled Fer de Lance HUD&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2005-07-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11959 Megaladon] It's a huge shark ship.  Nasty looking, but really just a cargo ship.&lt;br /&gt;
|aut=Mandoman&lt;br /&gt;
|date=2012-05-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Merlin_(Oolite)|Merlin]] Ships are interceptors used by the Police &amp;amp; Navy, but also available on the open market&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[MFLPS]] introduces player flyable versions of NPC ships with multiple forward lasers&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-10-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[MildAudio]] Sound Set&lt;br /&gt;
|aut=xaotik&lt;br /&gt;
|date=2006-02-15&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Military_Fiasco|Military Fiasco]] adds a navy mission for Commanders with &amp;gt; 1,000 kills. Also equips Navy with powerful cruisers&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-01-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Military Fuel Injectors OXP|Military Fuel Injectors]] is an upgrade to the vanilla injectors that gives a velocity boost and recaptures unburnt fuel&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-07-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Military station|Military Station]] adds well armed Military Stations to the more advanced systems&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Military Stingray Mk. II|Military Stingray]] adds an ex-military ship that may show up in pirate hands or for the player to buy&lt;br /&gt;
|aut=[[User:CaptKev|CaptKev]]&lt;br /&gt;
|date=2007-03-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12050 Military Targetting System] is a modern up to date style of targetting for oolite aquiring up to 16 targets of a particular type simultaneously at the push of a button.&lt;br /&gt;
|aut=CommonSenseOTB&lt;br /&gt;
|date=2012-06-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[MilHUD 4000]] is a fork of Milspec HUD with updated script and new features&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2012-04-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Milspec HUD]] is an alternative HUD with targeting aids and an emphasis on functionality&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2011-12-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Misjump Analyser]] scans witchspace &amp;amp; on detection of disturbances sounds an alarm &amp;amp; logs location of disturbance&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2010-05-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=135619#p135619 Misjump Inducer] can turn on/off misjumps on demand&lt;br /&gt;
|aut=Switeck&lt;br /&gt;
|date=2011-04-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Missile_Analyser|Missile Analyser]] scans incoming missiles &amp;amp; sets target to incoming missile when it is no standard missile&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2010-05-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10151 Missile Spoof] is an ECM system that employs flares to deter hardened missiles&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2011-12-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Missiles_and_Bombs|Missiles &amp;amp; Bombs]] adds a wide variety of missiles &amp;amp; bombs that are are available to player &amp;amp; NPCs alike&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2011-12-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Missionaries OXP|Missionaries]] adds clerics of four faiths who spam Commanders with requests to worship their Gods&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Moccasin]] adds light escort craft from Xeceesian Shipyards modeled after ArcElite core ship&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-06-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Mod-HUD]] is a slight modification / re-organization of the standard Oolite HUD without surround boxes&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-05-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/monument.zip Monument] sometimes adds a monument to famous Commanders close to the Sun&lt;br /&gt;
|aut=[[User:Dajt|dajt]]&lt;br /&gt;
|date=2005-05-28&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Morrigan]] adds a vast trade ship to the Universe&lt;br /&gt;
|aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2009-12-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Oosounds2_OXP|Murgh's Replacement Sounds]] contains 10 new sounds&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2005-08-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Murgh_Xships OXP|Murgh's X-Ships]] adds [[Bandy-Bandy]], [[Chuckwalla]], [[Eel Rapier]], [[Taipan]] (fast courier craft &amp;amp; 2 light escort ships)&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2009-09-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[NavalGrid OXP|Naval Grid]] enhances recharging rates by linking the naval energy unit to military-boosted shields&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-03-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Naval Torpedo]] is slower and less maneuverable but is more destructive than standard missiles&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-07-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Neolite Ships]] is an Oolite ships replacement set. Version 1.1.1 is available.&lt;br /&gt;
|aut=[[User:Simon B|SimonB]]&lt;br /&gt;
|date=2012-06-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[New_Cargoes|New Cargoes]] adds special cargoes and markets for them with high risk high profit trading opportunities&lt;br /&gt;
|aut=[[User:cim|cim]]&lt;br /&gt;
|date=2012-05-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/newships.oxp.zip ''New Ships''] adds [[Hamadryad]], [[Josher]], [[Naga]], [[Ringhals]] (mining and trade ships from previous versions of Elite)&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2006-05-15&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[http://www.box.net/shared/moreq536ht Nexus missile] adds multiple versions of a multi-warhead, 'anti-hostile' (or, in one case, anti-thargoid) missile&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2628 UK_Eliter]&lt;br /&gt;
|date=2012-06-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/hud_ng.oxp.zip NG HUD] is an alternate HUD. All standard functions, but with a personal view&lt;br /&gt;
|aut=alien&lt;br /&gt;
|date=2005-03-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11075 Night Adder] adds ace's Night Adder, a fully shadered, light escort player ship&lt;br /&gt;
|aut=ace\56&lt;br /&gt;
|con=Staer9&lt;br /&gt;
|date=2011-11-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11142 NovaBat] is a 3x enlarged version of the SunBat with larger cargo capacity, higher speed, and better weapons&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-11-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[NPC-shields OXP|NPC-shields]] gives shields to NPCs, together with a nice glow effect&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2012-01-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Numeric_Style_HUDs|Numeric Style HUDs]] numeric gauges, now version 3.&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2012-04-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/nuvipers.zip Nu Vipers] increases the types of Viper patrol ships with [[GalCop Viper Mark II]], [[GalCop Viper Cruiser]]&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Nukes.oxp|Nuclear Torpedos]] adds some powerful, but slow moving, missiles&lt;br /&gt;
|aut=[[User:Eric Walch|E. Walch]], [[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2012-01-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Offender traders OXP|Offender Traders]] makes some traders into offenders/fugitives&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-04-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Old Ships]] adds Elite-A [[Bushmaster Miner]]s, [[Cat (Oolite)|Cat]]s, [[Chameleon (Oolite)|Chameleon]]s, [[Ghavial (Oolite)|Ghavial]]s, [[Iguana (Oolite)|Iguana]]s, [[Monitor (Oolite)|Monitor]]s, [[Ophidian (Oolite)|Ophidian]]s, [[Salamander (Oolite)|Salamander]]s&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2006-08-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Old Ships 2010]] is a retextured version of [[Old Ships]], adding the bonus Monitor 2 ship&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=Murgh, ADCK, Simon B, Lestradae&lt;br /&gt;
|date=2011-02-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Oo-Haul]] adds vast bulk [[L-Crate Hauler]]s to the space lanes and offers missions at [[Your Ad Here!|constores]] to safely escort them&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|con=Eric Walch, Ark&lt;br /&gt;
|date=2009-02-21&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[ooCheat_OXP|ooCheat]] adds a cheat menu to the game&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-02-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[http://marc-schaffer.ch/data/OoliteGerman_V0.3.zip Oolite auf Deutsch] is a German Oolite localization&lt;br /&gt;
|aut=[[User:SwissMÃ¤c|SwissMäc]]&lt;br /&gt;
|date=2009-06-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=4490 Oolite Italiano] is an Italian Oolite localization&lt;br /&gt;
|aut=[[User:Another commander|another_commander]]&lt;br /&gt;
|date=2012-01-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=Oolite in Russian: [http://www.roolite.org Roolite.org] provides localizations of Oolite 1.74.2 and some OXPs. Also check [http://www.elite-games.ru/conference/viewtopic.php?t=48476&amp;amp;start=0 Elite Games]&lt;br /&gt;
|aut=Seventh&lt;br /&gt;
|date=2009-03-26&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=8216 Orbits] positions planets on orbits around the sun&lt;br /&gt;
|date=2012-04-21&lt;br /&gt;
|aut=[[User:Ebi|Ebi]]&lt;br /&gt;
|con=Kaks, Wildeblood&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Ore Processor]] extracts valuable materials from asteroid fragments when mounted to a ship's fuel scoop&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|con=Ark, Kaks, Eric Walch&lt;br /&gt;
|date=2012-02-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Orisis]] BigTraders are new passenger liners that ferry passengers around&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=ADCK, Thargoid&lt;br /&gt;
|date=2010-01-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Outrider (Oolite)|Outrider]] is a medium fighter produced by the [[Taranis Corporation HQ (Oolite)|Taranis Corporation]]&lt;br /&gt;
|aut=[[User:Roberto|Roberto]]&lt;br /&gt;
|date=2006-08-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[OXPConfig]] provides menus to configure supported OXPs, to recognize errors, or to avoid clashes&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|date=2012-05-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[P.A. Groove Stations OXP|P.A. Groove Stations]] adds lots of different types of Coriolis and Dodec Stations&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|con=Griff, Commander McLane&lt;br /&gt;
|date=2010-04-16&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Pallas]] adds a fast but lightly shielded fighter.&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2011-10-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Pelamis]] adds the Pelamis trade ship&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2006-04-24&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Phoenix]] is a strange ship, built from salvaged parts from various Serpent Class ships&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2007-01-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Pie_Chart_Style_HUDs|Pie Chart Style HUDs]] New invention=&amp;gt;pie gauges.&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-05-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Pirate Coves OXP|Pirate Coves]] adds rock hermits that have been taken over by pirates in more dangerous systems&lt;br /&gt;
|aut=lazygun&lt;br /&gt;
|date=2012-04-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/piratetraps.oxp.zip Pirate Traps] are dummy traders which transmit details of pirates firing on them to the police&lt;br /&gt;
|aut=popsch&lt;br /&gt;
|date=2006-01-04&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Planetfall_OXP|Planetfall]] allows the player to land on and trade at the planets and moons of each system&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-04-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Pods_OXP|Pods]] adds fuel, missile, bulk &amp;amp; empty cargo pods and pods which jam, explode, have trumbles or take a few scoops&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-03-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Police_IFF_Scanner_Upgrade|Police IFF Scanner Upgrade v 1.3.1]] highlights offender and fugitive ships with custom IFF scanner colours&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2011-12-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[PovrayPlanets OXP|Povray Planets]] adds procedurally generated textures to planets in galaxies 1, 2, 4 and 5&lt;br /&gt;
|aut=submersible&lt;br /&gt;
|date=2012-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11338 Primable Laser] adds a secondary forward laser&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=3171 Okti]&lt;br /&gt;
|date=2011-12-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Pteradyne Technologies Ships OXP|Pteradyne Technologies Ships]] adds the [[Excalibur]], a buyable combat ship and the [[Paladin]], a military version&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2006-12-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://www.boxcn.net/shared/bpl582x1hu Pylon Based Equipment Remover] allows to remove a selected piece of equipment from your pylons&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-04-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Python Class Cruiser]] is a large powerful trade ship, which can also hold its own in battle&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2007-07-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Q-Charger]] is a Quirium supercharger which promises a 100% speed gain with twice the fuel efficiency of fuel injectors&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-08-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/racers.oxp.zip Racers] adds [[Chicaneer Mk II]], [[Chicaneer Mk IV]], [[Dragster Mk I]], and [[Dragster Mk II]] racing ships&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|date=2006-01-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Weapons&lt;br /&gt;
|desc=[[Railgun OXP|Railgun]] introduces a revolutionary new weapons system to the Ooniverse&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-05-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Ramon's Anaconda]] is a fantastic re-imagining of the Anaconda freighter. Check out its special features&lt;br /&gt;
|aut=[[User:Ramon|Ramon]]&lt;br /&gt;
|con=Griff&lt;br /&gt;
|date=2009-04-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Random_Docking_Music_OXP|Random Docking Music]] plays a random music track from a pre-set list on activating docking computers&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2010-05-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Random Hits OXP|Random Hits]] adds [[Space Bar|seedy space bars]] to anarchy systems that offer large bounties on the galaxy's Most Wanted Criminals&lt;br /&gt;
|aut=[[User:LittleBear|Littlebear]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-11-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Randomshipnames OXP|Random Ship Names]] adds randomly generated names to all normal ship classes&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|con=Disembodied&lt;br /&gt;
|date=2012-04-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://terrastorage.ath.cx/Marmagka/e8e9ce360da6bb40f5952cbe00f02501/RedSet.zip RedSet] contains red-themed backgrounds for the UI screens&lt;br /&gt;
|aut=[[User:Another commander|another_commander]]&lt;br /&gt;
|date=2010-06-18&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/reduxedvamps.htm Reduxed Vampires] adds reworked versions of the Vampire Mk I and Mk II and a Reaper &amp;quot;Gold Edition&amp;quot;&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2010-10-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[RegistrationID|Registration ID]] adds ID tags to all Oolite standard ships&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2010-02-28&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Remorse_Of_Conscience_v2|Remorse Of Conscience]] is a trade ship with a large hold, that can hold its own in combat&lt;br /&gt;
|aut=8-bit Apocalypse&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2011-11-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Renegade Pirates OXP|Renegade Pirates]] adds rare, very well-armed, high bounty pirate versions of Classic Elite ships&lt;br /&gt;
|aut=[[User:LittleBear|Littlebear]]&lt;br /&gt;
|con=Aegidian, Griff&lt;br /&gt;
|date=2006-12-03&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[RVandGS|Renegade Viper + Grass Snake]] adds [[Renegade Viper|stolen Vipers]] which earn large bounties &amp;amp; [[Grass Snake]], a large pirate trade ship&lt;br /&gt;
|aut=8-bit Apocalypse&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2011-10-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Repair_Bots_OXP|Repair 'Bots]] adds a pylon mounted canister of repair nanobots which attempt to fix damaged equipment in mid-flight&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-03-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Systems&lt;br /&gt;
|desc=[[RRS Group|Rescue Stations]] adds Rescue Stations to stable systems, for rescue and recovery.&lt;br /&gt;
|aut=[[User:cim|cim]]&lt;br /&gt;
|date=2012-03-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Resistance Commander]] gives players a chance to command a squadron in combat&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2012-02-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Retro Rockets OXP|Retro Rockets]] are a handy little piece of equipment which gives your ship a backwards boost out of trouble&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-07-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Ringpod|Ring Pod]] adds a series of racing rings to the Galaxy 1 systems of Lave and Zaonce&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-10-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Ring_Racer_OXP|Ring Racer]] adds the Corporate Systems Ring Racing League to Galaxy 1&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-04-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Rock Hermit Locator]] adds equipment to locate Rock Hermits&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2011-03-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11791 Romulan Bird of Prey] is a rendition of the ship from the first Star Trek series&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-03-30&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10869 RXSoftware Shipset] is a remake of all standard player ships plus 18 new ships, most of them player useable&lt;br /&gt;
|aut=commanderxairon&lt;br /&gt;
|date=2011-10-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Safe Docking]] allows you to earn GalCop Reward Points for safe manual docking.&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=2456 PhantorGorth]&lt;br /&gt;
|date=2012-06-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11921 SafeJumps] Warns the player if they are about to jump to a Nova system&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2012-05-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Saleza Aeronautics]] adds [[Bellatrix Cruiser]]s, [[Rigel Bomber|Rigel Tactical Bomber]]s, and [[Saiph Interceptor]]s to high tech corporate systems&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2010-10-24&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Santa]] adds very rare Santa Sledge to space lanes escorted by plasma gun toting reindeer space bikers!&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2010-05-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[Save Anywhere]] allows you to save your game at any OXP Station&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2011-12-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Scimitar]] Adds a fast and nimble ship well kitted out for the serious bounty hunter&lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2012-01-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/scorpius.htm Scorpius] adds a heavily armoured private trading and transport vessel, protected by Vampire escorts&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|con=Griff&lt;br /&gt;
|date=2011-08-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Scourge of the Black Baron]] features combat &amp;amp; transport Galaxy 1 missions&lt;br /&gt;
|aut=[[User:Rxke|Rxke]]&lt;br /&gt;
|con=Kaks, Thargoid&lt;br /&gt;
|date=2010-08-07&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Scout]] is a cheap but good looking ship from Staer9 that shares a lot of technology with the [[Xeikil]]&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-05-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Second Wave OXP|Second Wave]] adds variants of Thargoid Warship, Thargon Robot Fighter and alien ships&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-12-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Selezen's S-Ships]] adds [[GalCop SWAT Viper]]s and [[Oresrian Trader]]s&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2007-07-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Sell equipment OXP|Sell Equipment]] allows, for a small fee, resale of equipment at 60% price at suitable tech level world&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11123 Sensible Lasers] allows to sell a laser weapon and leave the weapon mounting point empty&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-11-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Sensible Sun|Sensible Sun]] creates suns 2.75 times further from the planet than the default configuration&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-11-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[[Shady Cobra OXP|Shady Cobra]] adds shader effects to Cobra Mk III&lt;br /&gt;
|aut=[[User:Ahruman|Ahruman]]&lt;br /&gt;
|date=2007-07-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Shady Sungs]] adds replacement textures for all Classic Elite Ships&lt;br /&gt;
|aut=[[User:Sung|Sung]], [[User:ADCK|ADCK]]&lt;br /&gt;
|con=Micha&lt;br /&gt;
|date=2012-01-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Shield_Equalizer_%26_Capacitors_OXP|Shield Equalizer &amp;amp; Capacitors]] balances shield energy and stores unused shield energy&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-07-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Skrounk All-Stars Limited]] adds [[All Stars Large Freighter|Large Freighter]], [[Seymour Class Sled]], [[Starbelly Class Sled]], [[Starhawk]] &amp;amp; [[Starwolf_Mark_I|Starwolf Mk I]]&lt;br /&gt;
|aut=goji62&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11890 SmallBlimpy] Smaller than BigBlimpy, but looks just as silly.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-12-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Smivs%27_ShipSet|Smivs' Shipset v4.1.3]] re-textures all the core ships, with non-shader lighting effects and stunning visual SFX. &lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-06-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11387 Snapper] is a VERY large ship, able to move at 250LM, while hauling around 760 tons of cargo&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-12-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Snark]] is a powerful fighter/trader, often used by pirates and bounty hunters&lt;br /&gt;
|aut=[[User:Flying Circus|Flying_Circus]]&lt;br /&gt;
|date=2006-06-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Sniper Camera System HUD|Sniper Camera System]] Zoomable camera for surveillance and long-range sniping.&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-08-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[SniperLock]] More accurate targeting by automatically keeping ship's aim on target longer.&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-12-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11542 Sniper Sight] is the Ooniverse's most customizable precision gun sight. (A variant is included in [[MilHUD 4000]])&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2012-04-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Snoopers]] adds the galactic news network channels&lt;br /&gt;
|aut=[[User:Daddyhoggy|DaddyHoggy]]&lt;br /&gt;
|con=Disembodied, Drew, Svengali&lt;br /&gt;
|date=2012-01-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Solid Gold Cobra Mk.3]] is a limited edition Cobra Mk3 to celebrate its 25 years anniversary&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|date=2010-06-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Solo's Silver Ships]] Adds three ships with silver themed textures &lt;br /&gt;
|aut=[[User:CaptSolo|CaptSolo]]&lt;br /&gt;
|date=2011-08-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://www.purgatori.net/Sothis.htm Sothis Space Station] is a station from [[Isis Interstellar]] with a compact design of comparable size to a standard Coriolis&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2010-08-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Spearhead Interceptor Mk.I]] is a pure fighter, fast and nippy but with weak shields and without cargo bay&lt;br /&gt;
|aut=Rendell&lt;br /&gt;
|date=2011-11-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[S.I.R.F.|Special Interstellar Repair Facilities]] offer different trading strategies &amp;amp; repair facilities on uncommon trading routes&lt;br /&gt;
|aut=Tinker&lt;br /&gt;
|date=2010-07-02&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/spectres.htm Spectre] adds [[Isis Interstellar]]'s Vampire Mk V, a secret military vessel fighting Thargoids in witch space&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2011-01-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Spy Hunter OXP|Spy Hunter]] is a mission for Galactic Navy for Commander with rating of 'Dangerous' or above&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|date=2009-04-11&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[[Staer9's Shipset]] replaces the same ships as [[Neolite Ships]] using a style similar to Griff's to be used alongside his shipset&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|con=Griff&lt;br /&gt;
|date=2012-05-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Staer9 Spectre]] is a cheap small fighter with high maneuverability that flopped in the market&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-05-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Star-Jelly]] Beautiful translucent organisms sometimes found in Asteroid fields&lt;br /&gt;
|aut=[[User:Smivs|Smivs]],[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2012-03-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11963 StarMoth] Colorful trader ship for brightening your Ooniverse.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-05-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Star Wars Ships]] adds [[A-Wing]], [[B-Wing]], [[Lambda Shuttle]], [[Tie-Fighter]], [[Tie-Interceptor]], [[X-Wing]], [[Y-Wing]]&lt;br /&gt;
|aut=Azzameen&lt;br /&gt;
|date=2006-05-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Status Quo Q-bomb OXP|Status Quo Q-bomb]] changes the behaviour of Q-bombs according to the [[Status Quo]] novel&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[S.T.E]] is a step up from the Cobra III with improved trading capabilities and increased speed&lt;br /&gt;
|aut=[[User:Rustybolts|Rustybolts]]&lt;br /&gt;
|date=2009-07-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Stealth OXP|Stealth]] is a small G3 mission showcasing new scanner capabilities &amp;amp; introducing stealth ships&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-07-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://www.purgatori.net/Steampunk%20HUD.htm Steampunk HUD] adds a steampunk style HUD by [[Isis Interstellar]]&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2010-01-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Stellar Serpents OXP|Stellar Serpents]] adds huge space-born serpent monsters which move from system to system and are good hunting prey&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-02-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11373 Submersible Nebulae] replaces the traditional four nebulae textures&lt;br /&gt;
|aut=submersible&lt;br /&gt;
|date=2011-12-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11054 SunBat] is a black, fast fighter, now packing aft laser.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-10-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11305&amp;amp;hilit=SunBatMkII SunBat MkII] is a black, faster than SunBat fighter, and very hard to kill.&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2011-12-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://sancho.dk/oolite/sunskimmers.zip Sunskimmers] adds ships to the sun/planet corridor&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-08-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[SuperCobra]] is larger, faster with stronger hull than Cobra Mk III&lt;br /&gt;
|aut=8-Bit Apocalypse&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2010-10-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Superhub]] from GASEC is the first station that is capable of transporting itself to its destination&lt;br /&gt;
|aut=[[User:Pagroove|pagroove]]&lt;br /&gt;
|date=2012-03-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Swarm OXP|Swarm]] adds a new swarming variant on the Thargoid mothership and thargons.&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-02-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Swift]] is a very fast ship often used by pirates or bounty hunters with limited cargo space &amp;amp; nominal shields&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Switeck's Shipping OXP|Switeck's Shipping]] tweaks ships, market prices and NPC behavior. Adds Medium, Hard, and Harder Jameson saves&lt;br /&gt;
|aut=Switeck&lt;br /&gt;
|date=2011-07-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[System Demux (Oolite)|System Demux]] textures home planet, adds planet/moon combination to systems&lt;br /&gt;
|aut=[[User:DrBeeb|DrBeeb]]&lt;br /&gt;
|date=2010-07-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[System Redux (Oolite)|System Redux]] textures home planet, adds planet/moon combination to systems&lt;br /&gt;
|aut=[[User:CaptKev|CaptKev]]&lt;br /&gt;
|date=2011-12-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://www.box.net/shared/r05ub873b5 TAF Reset] resets the Time Acceleration Factor (TAF) to 1.0 upon docking&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2009-09-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[[Talkative_Space_Compass|Talkative Space Compass]] is an upgrade to the advanced space compass that shows the name of the current target&lt;br /&gt;
|aut=[[User:cim|cim]]&lt;br /&gt;
|date=2011-11-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Taranis OXP|Taranis]] is a mission for law abiding Commanders with rating of Competent+. Adds [[Taranis Corporation HQ (Oolite)|Taranis Corporation HQ]]&lt;br /&gt;
|aut=[[User:Roberto|Roberto]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2012-05-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Target_Autolock_OXP|Target Autolock]] updates [[Scanner Targeting Enhancement]] to auto-lock onto attacking ships&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2011-02-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[[Target Range OXP|Target Range]] is found in all rich systems with stable governments&lt;br /&gt;
|aut=Caracal&lt;br /&gt;
|date=2010-07-24&lt;br /&gt;
|work=Y*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Target Reticle]] updates [[Scanner Targeting Enhancement]] to turn reticle red when target centred&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2010-05-31&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Taxi Galactica]] adds a Taxi Service and a non player flyable taxi cab ship to systems&lt;br /&gt;
|aut=[[User:Pleb87|pleb87]]&lt;br /&gt;
|date=2012-05-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Teretrurus Mk.I]] is a medium fighter/trader somewhat faster &amp;amp; tougher than Cobra Mk III, but with smaller cargo bay&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2008-02-01&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Terrapin|Terrapin Trader]] is a medium fighter/trader. A good upgrade from Cobra Mk III&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2008-02-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Tesoura]] is a slow, but well shielded trade ship&lt;br /&gt;
|aut=[[User:Randall|Randall]], [[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2008-02-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Thargoid Carrier]] arms Thargoids with capital carrier&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|con=Commander McLane&lt;br /&gt;
|date=2012-03-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Thargorn_Threat_oxp|Thargoid Threat]] adds [[Thargoid Terrorizer Frigate]], [[Thargoid Thargorn Battleship]], [[Thargoid Thorgon Cruiser]]&lt;br /&gt;
|aut=[[User:Arexack|Arexack Heretic]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2012-04-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Thargoid Wars]] intensifies war with the Thargoids, featuring new attack and defense missions&lt;br /&gt;
|aut=[[User:Cmdr. Wombat|Cdr. Wombat]]&lt;br /&gt;
|date=2011-11-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Thargoid Witchspace Drive]] v0.9.4 adds a rare equipment item allowing long range jumps &amp;gt; 7 light years&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt.Murphy]]&lt;br /&gt;
|date=2012-04-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Tianve OXP|Tianve]] adds [[Navy Station]], as well as Visuals, including a pulsar, to the Galaxy 1 system of Tianve&lt;br /&gt;
|aut=[[User:Drew|Drew]]&lt;br /&gt;
|date=2009-12-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Tiger Mark I]] is a truly awesome (and very expensive) multi-role craft&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2006-05-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11760 Tionisla Chronicle Array] adds the huge transmitter, serving newsfeeds across the galaxy&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=18304 Storm]&lt;br /&gt;
|date=2012-03-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Tionisla Orbital Graveyard]] adds the famed graveyard to Tionisla, G1, as described in “The Dark Wheel” novella&lt;br /&gt;
|aut=[[User:Selezen|Selezen]]&lt;br /&gt;
|con=Eric Walch&lt;br /&gt;
|date=2011-02-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Tionisla Reporter]] adds a mission for a starting commander&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2011-07-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[TCAT OXP|To Catch a Thargoid]] is a G3 follow-up mission to Thargoid Plans, for Dangerous or Elite rank Commanders&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-04-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Torus station|Torus Station]] adds a vast 2001 style space station to very high tech level systems&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2010-10-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Total patrol OXP|Total Patrol]] makes police ships patrol between planet, witchpoint &amp;amp; sun&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-03-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[ToughGuys|ToughGuys]] Adds increased toughness of 'Baddies' for everyday use or as a backdrop for an immersive storyline.&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-05-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Tracker OXP|Tracker]] gives the capability to track up to 6 targets per system via the ASC&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-03-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Trader Outpost (Oolite)|Trade Outpost]] adds Griff's trade outpost without ads&lt;br /&gt;
|aut=[[User:CaptKev|CaptKev]], [[User:Griff|Griff]], [[User:Ark|Ark]]&lt;br /&gt;
|date=2009-02-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Traffic_Control_OXP|Traffic Control]] personnel gives help with approach to and manual docking at all main stations&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-06-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Transhab station|Transhab Station]] adds a large station with rotating arms to some medium tech level systems&lt;br /&gt;
|aut=[[User:Draco Caeles|Draco_Caeles]]&lt;br /&gt;
|date=2006-06-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Transports]] adds [[CoachWhip]], [[Coral]], [[Woma]]&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Eric Walch, Kaks&lt;br /&gt;
|date=2010-12-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://wiki.alioth.net/images/d/d9/TrekHud.zip Trek HUD] replaces your HUD with a Star Trek NG LCARS-style HUD&lt;br /&gt;
|aut=[[User:Barabis|barabis]]&lt;br /&gt;
|date=2008-11-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Trident Down]] contains a series of Galaxy 4 missions investigating a vicious attack on a [[Executive SpaceWays|Trident Shuttle]]&lt;br /&gt;
|aut=[[User:Ramirez|Ramirez]]&lt;br /&gt;
|date=2012-04-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://www.box.net/shared/ghkefshhib tty] replaces the standard Oolite font with a typewriter-like font&lt;br /&gt;
|aut=[[User:Kaks|Kaks]]&lt;br /&gt;
|date=2009-02-28&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11004 Turbo Anaconda] is a faster Anaconda with reduced manoeuvrability, thrust, and combat abilities&lt;br /&gt;
|aut=Cdr. MacSeumas&lt;br /&gt;
|date=2011-10-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11685 UHU] is a new fast ship from Mandoman Technologies' &lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-02-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[UPS Courier]] offers Commanders transport of goods/documents &amp;amp; occasional combat missions&lt;br /&gt;
|aut=[[User:Eric Walch|Eric Walch]]&lt;br /&gt;
|date=2012-02-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Urutu Mark III &amp;amp; Urutu Mark IV]] are medium fighters/traders from Elite-A&lt;br /&gt;
|aut=milinks&lt;br /&gt;
|date=2006-09-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Vampire]] adds the Purgatori Vampire series of combat ships&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2007-01-29&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Vampire - Diamondback]] adds the Diamondback Vampire series of combat ships&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2010-04-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Vampire - Dominatrix]] adds the Dominatrix Vampire series of combat ships&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2009-12-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Vector OXP|Vector]] is a unusual mission type - fast money, slavers, tricks and GalCop is watching you...&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|date=2011-12-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Velocity_OXP|Velocity]] is a fast fighter ship&lt;br /&gt;
|aut=[[User:Sabre|Sabre]]&lt;br /&gt;
|date=2009-09-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11300 Vendetta] is a heavy attack fighter with bounty hunters in mind&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2011-12-19&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/Venom.oxp.zip Venom] adds [[Venom]]s in normal and renegade versions  from [[Isis Interstellar]]&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2009-12-25&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11801 Ventura] adds a trader, the NPC version comes with 3 Yellow Jacket escorts&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-04-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Victim 11]] extends the [[The Assassins Guild OXP|Assassins Guild]] mission with an additional target&lt;br /&gt;
|aut=[[User:Fatleaf|Fatleaf]]&lt;br /&gt;
|con=Okti, Smivs, El Viejo, Switeck&lt;br /&gt;
|date=2011-12-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Vortex OXP|Vortex]] A new ex-military player ship. Rare, expensive and powerful - kitted out with advanced and unique features&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-04-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.purgatori.net/wasps.htm Wasps] adds formation flying wasps, queen wasps, and wasp nests&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|con=Thargoid, Ahruman, Eric Walch&lt;br /&gt;
|date=2010-08-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://capnhack.com/hosting/oolite/Oolite/OXPs/weeviloid2.zip ''Weeviloid''] adds [[Weeviloid Hunter]]s, fearsome multi-gunned war ships and [[Weeviloid Scoutship]]s, light trade ships&lt;br /&gt;
|aut=[[User:Aegidian|Aegidian]]&lt;br /&gt;
|date=2006-05-11&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Welcome_Mat_OXP|Welcome Mat]] upgrades the comms systems to expand the information that is given on arrival in new system&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-04-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Werewolf]] from [[Isis Interstellar]] has 3 variants:  [[Werewolf|Werewolf ~ Damage Inc.]], [[Werewolf|Werewolf (Civilian)]] &amp;amp; [[Werewolf|Werewolf (Purgatori Model)]]&lt;br /&gt;
|aut=[[User:Killer Wolf|Killer Wolf]]&lt;br /&gt;
|date=2011-12-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[WildShips OXP|WildShips]] adds Kiota stations plus four other ships to the game&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-05-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Wolf_Mk.2_%28Oolite%29|Wolf Mk II]] adds the powerful Wolf Mk II, as seen in Elite-A&lt;br /&gt;
|aut=[[User:Ark|Ark]]&lt;br /&gt;
|date=2009-07-07&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://wiki.alioth.net/images/0/06/Wolfs_variants.zip Wolfwood's Variants] adds [[Asp_Mk.I|Asp Mk I]], [[Cobra Courier]], [[Cobra Rapier]], [[Drake]], [[Drake Mk II]] &amp;amp; [[Wolf Mk I]]&lt;br /&gt;
|aut=Wolfwood&lt;br /&gt;
|date=2008-02-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[WonderWorm]] adds 'Time Raiders' and a buyable version of their uber-ships. Not to be taken seriously!&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2012-01-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Wormhole restoration OXP|Wormhole Restoration]] adds a new way to leave interstellar space without using fuel, expanding on Thargoid backstory&lt;br /&gt;
|aut=[[User:Commander McLane|Commander McLane]]&lt;br /&gt;
|date=2011-05-12&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[WPB_OXP|WPB]] adds a different witchpoint beacon in some systems&lt;br /&gt;
|aut=[[User:Murgh|Murgh]]&lt;br /&gt;
|con=Svengali&lt;br /&gt;
|date=2011-10-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.box.net/shared/n9xla832xbccuk7yuzrf Wyvern Ladies] adds armed long-range transports Wyvern Empress &amp;amp; Wyvern Queen, and the Wyvern Princess escort&lt;br /&gt;
|aut=Wyvern&lt;br /&gt;
|date=2011-08-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Xarik]] is an advanced aircraft, last creation of the late Prof. Eisel Xarik. Used by pirates, traders, and hunters&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2010-02-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Xeikil]] adds a player, a GalCop interceptor, and 24 pirate variants of Staer9 Industries' current top fighter&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-05-16&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Xeikil MK2]] adds a player, a GalCop interceptor, and 24 pirate variants of Staer9 Industries' replacement [[Xeikil]]&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-05-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Xeptatl's Sword]] An epic mission to thwart the Thargoids, spanning all eight galaxies. &lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|con=Okti, El Viejo, Fatleaf&lt;br /&gt;
|date=2011-12-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[YellOo Cabs]] adds YellOo Cab Co taxis to the Ooniverse. NPC and Buyable&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-12-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11800 Yellow Jacket] is an escort ship from the Killer Insects series&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-04-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Your Ad Here!]] adds Convenience Stores [[Pi-42]], [[Tescoo Oxpress]], [[Star]], [[Mall Wart]], [[Sainsboory's]] &amp;amp; [[Security Sidewinder|security sidewinders]]&lt;br /&gt;
|aut=[[User:Griff|Griff]]&lt;br /&gt;
|con=DaddyHoggy, Pangloss, Disembodied, Eric Walch&lt;br /&gt;
|date=2011-02-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[YAHMobile OXP|Your Ad Here Mobile Billboards]] introduces ship-towed mobile ad billboards to route one of most systems&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2012-03-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11384 Zeke Mining Transporter] introduces a cheap, playable ship, and a save file to start as miner&lt;br /&gt;
|aut=Captain Patrick&lt;br /&gt;
|date=2012-05-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Z-ships]] adds [[Z-ships_Asp_Explorer|Asp Explorer]], [[Z-ships_Cobra_Commodore|Cobra Commodore]], [[Z-ships_Porcupine|Porcupine]] &amp;amp; [[Z-ships_Python_Courier|Python Courier]]&lt;br /&gt;
|aut=[[User:Zieman|Zieman]]&lt;br /&gt;
|date=2010-03-01&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9056 Z-GrOovY Griff's Cobra Mk3 Variety Pack] adds multiple Griff's Cobra Mk3 with alternate hull paintings&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-01-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11745 Z-GrOovY SML System Stations] adds Griff-based small/medium/large Coriolis, Tetrahedron, and Octahedron stations&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2012-03-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9306 Z-GrOovY System Stations] adds Griff-based Tetrahedron, Octahedron, Coriolis, Dodecahedron, Icosahederon stations&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-03-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9146 Z-GrOovY Viper Raider] adds a new player ship based on the police Viper&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-02-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9056 Z-GrOovY YAH Sidewinder Variety Pack] adds multiple Your Ad Here! Constore defenders with alternate hull paintings&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-01-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9056 Z-GrOovY YellOo Cab Variety Pack] adds the Moray Starboat with taxi hull painting&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-01-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Work in Progress OXPs  ==&lt;br /&gt;
The following table contains OXPs that either have not yet been released by their authors but are already being discussed on the [http://www.aegidian.org/bb/viewforum.php?f=4 Expansion Pack Forum], or released OXPs that still have WIP status. Links get you either to the respective discussion or the Wiki page if it already exists.&lt;br /&gt;
{{OXPListTableHeader}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11817 Amaranth Eagles] mixes ADCK's and Selezen's Eagles and adds new textures&lt;br /&gt;
|aut=Amaranth&lt;br /&gt;
|con=ADCK, Selezen&lt;br /&gt;
|date=2012-04-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?t=8341 Animated Ships] adds animated butterflies flapping their wings as a demo&lt;br /&gt;
|aut=[[User:Thargoid|Thargoid]]&lt;br /&gt;
|date=2010-08-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11835 Beatnik's Shipset] adds new versions of the core ships with individual HUDs and cross hairs&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2012-04-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11282 Borg] adds the Borg cube from Star Trek&lt;br /&gt;
|aut=[[User:RyanHoots|RyanHoots]]&lt;br /&gt;
|date=2011-12-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9864 Cargo Scanner] scans targeted cargo containers to find out what they contain&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-05-17&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11726 Colonization] sets up colonies, huge structures that you can fly into and dock inside&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2012-03-13&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=154365#p154365 Commies Retexture] gives the Commies a new face&lt;br /&gt;
|aut=Amaranth&lt;br /&gt;
|date=2012-04-06&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11837 Criminal Record] introduces GalCrim and changes the way Oolite remembers criminal records&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2012-04-12&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Docking Computers OXP|Docking Computers]] equips new commanders with fee-per-use docking computers while they learn to dock&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2012-06-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=156153#p156153 Draven Ships] adds the Oodulldoff station, and Draven Carriers, Gunships, Raiders, Traders, Shuttles, and Krackens&lt;br /&gt;
|aut=Ironfist&lt;br /&gt;
|date=2011-11-10&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11971 Extended Shipyards v0.1] offers additional options at the shipyard including test-flights, hire, and ship storage. Requires Oolite 1.77(trunk/nightly)&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt. Murphy]]&lt;br /&gt;
|date=2012-05-20&lt;br /&gt;
|work=N*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10794 External Missiles HUD] allows control over external missile pylons&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-09-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11787 FE2 Imperial Courier] will be a new version of the ship from Frontier Elite 2&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2012-03-29&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=160986#p160986 Hornet] adds a ship that looks like a hornet&lt;br /&gt;
|aut=mandoman&lt;br /&gt;
|date=2012-01-02&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11775 Ico Station V2] adds a new Icosahedron station based on Griff's textures&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2012-03-24&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[[Jaguar_Company|Jaguar Company]] adds in an Elite group of pilots to patrol the space lanes in Anarchy, Feudal and Multi-Government systems&lt;br /&gt;
|aut=[[User:Tricky|Tricky]]&lt;br /&gt;
|date=2012-06-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.box.net/shared/0i2fnrc175t Katipo] adds a very fast, moderate maneuverability, low cargo ship with low thrust&lt;br /&gt;
|aut=[[User:Simon_B|SimonB]]&lt;br /&gt;
|date=2011-03-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Koneko Industries OXP]] adds several new ships by [[Koneko Industries]] to the Ooniverse.&lt;br /&gt;
|aut=[[User:RyanHoots|Ryan Hoots]]&lt;br /&gt;
|date=2012-01-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9441 Miner Pod] breaks up asteroids and collects the splinters&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-03-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?t=8275 Mining] adds mines to protect and provide resources for to get gold&lt;br /&gt;
|aut=docwild&lt;br /&gt;
|date=2010-07-28&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[More Core Player Ships OXP]] adds more player buyable ships.&lt;br /&gt;
|aut=[[Ryan Hoots]]&lt;br /&gt;
|date=2011-12-02&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[[Nuit Space Station OXP|Nuit Space Station]] is the newest creation of [[Isis Interstellar]]&lt;br /&gt;
|aut=[[User:Killer_Wolf|Killer Wolf]]&lt;br /&gt;
|date=2009-11-11&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Dockables&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11711 Oolific Princess] adds a dockable starliner&lt;br /&gt;
|aut=SimonB&lt;br /&gt;
|date=2012-03-15&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=130221#p130221 Oresrati Challenge] adds a fun mission to the loneliest system of the Ooniverse, Oresrati&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-04-26&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10820 Peregrine Fighter] is a very small stand-alone ship in its early design stages&lt;br /&gt;
|aut=Wyvern&lt;br /&gt;
|date=2011-09-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9946 Phantom] is a trader/fighter from [[Isis Interstellar]] with external missiles&lt;br /&gt;
|aut=[[User:Killer_Wolf|Killer Wolf]]&lt;br /&gt;
|date=2011-05-27&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?p=158934#p158934 Red Racer] is a heavy long range fighter or escort ship from the coluber shipyard in the Riredi system&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2011-12-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=138226#p138226 Shield Cycler] distributes shield energy between fore and aft shields&lt;br /&gt;
|aut=Lone_Wolf&lt;br /&gt;
|date=2011-05-18&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11892 Ship_Storage_Helper v0.15] is a helper OXP with functions to store/restore current ship info. Requires Oolite 1.77(trunk/nightly)&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt. Murphy]]&lt;br /&gt;
|date=2012-05-20&lt;br /&gt;
|work=N*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Activities&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=5484 Solar System] adds extra planets and jump gates to a system&lt;br /&gt;
|aut=[[User:Frame|Frame]]&lt;br /&gt;
|date=2009-01-11&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11619 Storm Shipyards] work on alternative versions of the core ship set&lt;br /&gt;
|aut=[http://aegidian.org/bb/memberlist.php?mode=viewprofile&amp;amp;u=18304 Storm]&lt;br /&gt;
|date=2012-02-12&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9472 Sun Skimmer Pod] adds a pod that goes sun skimming and returns full of fuel&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-03-21&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9488 Target Tracker] aligns your ship on your target&lt;br /&gt;
|aut=Okti&lt;br /&gt;
|date=2011-03-23&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9353 Thor Class Supercarrier] adds a Navy Carrier as a replacement pack for the Behemoth and the Galactic Navy&lt;br /&gt;
|aut=dertien&lt;br /&gt;
|date=2011-03-03&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10809 Trident Shipyard Corp] adds the Trident Privateer Mark II in trader, hunter, pirate, and police versions&lt;br /&gt;
|aut=Cmdr Vault&lt;br /&gt;
|date=2012-04-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Mechanics&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=8254 Trumble Treats] makes Trumbles sellable, and turn to fur when dead. Bought ships have an infection risk&lt;br /&gt;
|aut=[[User:Arexack|Arexack_Heretic]]&lt;br /&gt;
|date=2010-08-04&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9242 Wormhole Drones] creates a path of worm holes to lead you to your destination system&lt;br /&gt;
|aut=Mauiby de Fug&lt;br /&gt;
|date=2011-02-22&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?p=161606#p161606 RL] adds the Yasen-N, a heavy courier-trader with good storage capabilities, and the Skat, a very fast courier&lt;br /&gt;
|aut=MiMoriarty&lt;br /&gt;
|date=2012-01-09&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Retextures&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?t=8541 Zygoroids] add new beautifully textured asteroid models to the Ooniverse&lt;br /&gt;
|aut=ZygoUgo&lt;br /&gt;
|date=2010-10-05&lt;br /&gt;
|work=Y}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OXPs with Problems ==&lt;br /&gt;
The following table contains OXPs that have problems eg. broken download, or have been written for versions of Oolite earlier than the current 1.76&lt;br /&gt;
{{OXPListTableHeader}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Amen Bricks Megaships|Amen Brick's Megaships]] adds [[Battleship]]s, [[Biodome]]s, [[Cruiseship]]s, [[Hospitalship]]s, [[Supercargo]]s, [[Superlifter]]s, and [[Yacht - Amen Class|Yacht]]s&lt;br /&gt;
|aut=[[User:Amen_Brick|Amen Brick]]&lt;br /&gt;
|date=2008-07-11&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[ADCK%27s Behemoths]] adds shadered versions of the [[Behemoth]],  [[Galactic Navy OXP|Galactic Navy]] ships and stations, and then some&lt;br /&gt;
|aut=[[User:ADCK|ADCK]]&lt;br /&gt;
|con=Aegidian, pagroove, Nemoricus, Selezen, Simon B&lt;br /&gt;
|date=2010-04-20&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Cataclysm OXP|Cataclysm]] takes up the threads of Constrictor Hunt and Thargoid Plans, and sends you on your biggest Navy mission yet&lt;br /&gt;
|aut=[[User:Commander_McLane|Commander McLane]]&lt;br /&gt;
|date=2009-01-06&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Clear Skies OXP|Clear Skies]] reduces nebula effects and dims stars. (OXP is an un-installable mess!)&lt;br /&gt;
|aut=[[User:Johnsmith|johnsmith]]&lt;br /&gt;
|date=2006-11-12&lt;br /&gt;
|work=N*}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[http://www.aegidian.org/bb/viewtopic.php?t=8526 Comms Demo] provides a way to communicate with NPC ships&lt;br /&gt;
|aut=[[User:Kaks|Kaks]]&lt;br /&gt;
|date=2009-10-26&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[http://www.box.net/shared/mq1mzoc79t Constrictor Mission Hints] adds more hints for those doing the native Constrictor Mission&lt;br /&gt;
|aut=[[User:Arexack|Arexack Heretic]]&lt;br /&gt;
|date=2010-08-04&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Kirin#Download|Kirin Sport]] adds a a smaller, faster, more agile - and less well armed - civilian variant of the [[Kirin]]&lt;br /&gt;
|aut=[[User:Wyvern|Cdr. Wyvern]]&lt;br /&gt;
|date=2009-07-22&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Localhero_OXP|Localhero]] adds a mission campaign in the first galaxies&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|date=2008-04-09&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Longshot]] adds the Longshot fighter / trader, regarded by many as a cheaper alternative to the Cobra Mk III&lt;br /&gt;
|aut=[[User:Dr. Nil|Dr. Nil]]&lt;br /&gt;
|date=2007-02-24&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Orb]] adds a new alien race, which might help GalCop in the battle against the Thargoids.&lt;br /&gt;
|aut=Charlie&lt;br /&gt;
|date=2007-02-13&lt;br /&gt;
|work=N}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ambience&lt;br /&gt;
|desc=[[Personalities OXP|Personalities]] adds a bunch of unique, well-known personalities from the Bulletin Board to the Ooniverse&lt;br /&gt;
|aut=[[User:Commander_McLane|Commander McLane]]&lt;br /&gt;
|date=2009-11-05&lt;br /&gt;
|work=N}}&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:OXP Lists]]&lt;br /&gt;
[[Category:Factual]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32506</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32506"/>
		<updated>2012-06-17T23:52:08Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/LsHkkq GalCop_Rewards.1.0.0.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|0}}&lt;br /&gt;
{{Infobox OXPb| title = GalCop Rewards&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Adds GalCop Reward Points&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12061 BB-Link]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32505</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32505"/>
		<updated>2012-06-17T23:49:58Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
{{OXPConfig-small}}&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/M9ZDfu Safe_Docking.1.0.0.oxp.zip]&lt;br /&gt;
&lt;br /&gt;
==Fast Facts==&lt;br /&gt;
{{OXPLevel|0|1}}&lt;br /&gt;
{{Infobox OXPb| title = Safe Docking&lt;br /&gt;
|version = 1.0.0&lt;br /&gt;
|release = 2012-06-16&lt;br /&gt;
|license = CC-by-nc-sa-3.0&lt;br /&gt;
|features = Manual Docking Behaviour&lt;br /&gt;
|category = Mechanics&lt;br /&gt;
|author = Phantor Gorth&lt;br /&gt;
|download = [[#Download|See Download]]&lt;br /&gt;
|feedback = [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=12062 BB-Link]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32504</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32504"/>
		<updated>2012-06-17T23:34:58Z</updated>

		<summary type="html">&lt;p&gt;PG1: GalCop Rewards OXP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. [[Safe Docking]].&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/LsHkkq GalCop_Rewards.1.0.0.oxp.zip]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32503</id>
		<title>Safe Docking</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Safe_Docking&amp;diff=32503"/>
		<updated>2012-06-17T23:34:38Z</updated>

		<summary type="html">&lt;p&gt;PG1: Safe Docking OXP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born. See [[GalCop Rewards|GalCop Rewards OXP]] for details. Well, you may be wondering what this has to do with this Safe Docking OXP. Poor docking was one of the main issues GalCop had with bad piloting. Safe Docking is GalCop's attempt for rewarding pilots for docking at participating stations in a safe manner and makes use of GalCop Rewards to do this.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
With Safe Docking OXP how fast and carefully you dock now determines whether you get rewarded or receive a penalty. Dock too fast and you will be get a penalty (and may be an insult). Dock at an acceptable speed and you may get rewarded with GalCop Reward Points. Generally the slower the better, but be warned, go too slowly or scrape your ship's hull and the station's Dockmaster will not be pleased. If you only docked in an &amp;quot;Ok&amp;quot; fashion you may not get a message at all.&lt;br /&gt;
&lt;br /&gt;
Only manual docking counts. If you dock using a Docking Computer (both automatic or Instant docking) you will not be rewarded. Also cheating by using the Docking Computer to get you almost there and turning it off and finishing docking manually is also detected and will not count as manual docking.&lt;br /&gt;
&lt;br /&gt;
'''The following table shows the speeds and their results:'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed Range&lt;br /&gt;
!Rating&lt;br /&gt;
!Reward&lt;br /&gt;
!Penalty&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=0m/s and &amp;lt;25m/s&lt;br /&gt;
|Too Slow&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=25m/s and &amp;lt;50m/s&lt;br /&gt;
|Excellent&lt;br /&gt;
|10 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=50m/s and &amp;lt;75m/s&lt;br /&gt;
|Very Good&lt;br /&gt;
|5 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=75m/s and &amp;lt;100m/s&lt;br /&gt;
|Good&lt;br /&gt;
|1 Reward Points&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=100m/s and &amp;lt;125m/s&lt;br /&gt;
|Ok&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=125m/s and &amp;lt;225m/s&lt;br /&gt;
|Poor&lt;br /&gt;
|&lt;br /&gt;
|Lose 1 Reward Points and fined 20 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=225m/s and &amp;lt;300m/s&lt;br /&gt;
|Reckless&lt;br /&gt;
|&lt;br /&gt;
|Lose 5 Reward Points and fined 40 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=300m/s and &amp;lt;400m/s&lt;br /&gt;
|Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 100 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=400m/s and &amp;lt;550m/s&lt;br /&gt;
|Very Dangerous&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points and fined 500 Credits&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;=550m/s&lt;br /&gt;
|Criminal&lt;br /&gt;
|&lt;br /&gt;
|Lose all Reward Points, fined 1000 Credits and gain 5 Credits bounty &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;225m/s and scraped ship during docking &lt;br /&gt;
|Collided&lt;br /&gt;
|&lt;br /&gt;
|Lose 2 Reward Points and fined 25 Credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The only variation from the above is if you are under attack '''AND''' at low energy. In this situation you will let off any penalty. Being under attack is defined by being attacked by at least one non-police ship (by laser or missile) and each attacking ship still has you as its target. (Still targeted is checked every 2 seconds.) If you have been attacked by a cloaked ship within the last 10 seconds then this also counts as under attack. Low Energy is when your energy is less than 128 which is less than 2 full bars on a ship's HUD.&lt;br /&gt;
&lt;br /&gt;
All fines are reduced not take you below 100 credits. So if you are below 100 credits you won't be fined.&lt;br /&gt;
&lt;br /&gt;
If you re-visit the same station in the scheme within the last hour (in-game hours) then you do not get any Rewards Points. The Dockmaster will let you know if this is the case. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Participating Stations==&lt;br /&gt;
&lt;br /&gt;
All system Main Stations are in the scheme but also when you enter the station aegis you will get a message telling you that the station is in the scheme e.g. “The Dockmaster would like to let you know that Lave Orbital Station is a participant in the Safe Docking Rewards Scheme.”&lt;br /&gt;
&lt;br /&gt;
Any other station or carrier you will receive an equivalent message if you enter the region within the aegis distance around them (2x scanner radius). In Oolite aegis only normally applies to the main station but it is “reproduced” for these other stations.&lt;br /&gt;
&lt;br /&gt;
==My Speed==&lt;br /&gt;
&lt;br /&gt;
If you install OXPConfig OXP version 2.0.10 or higher then you can use that to modify the OXP parameter that adds to a station's arrival message a notification of your arrival speed. This parameter is off by default.&lt;br /&gt;
&lt;br /&gt;
==Docking Clearance==&lt;br /&gt;
&lt;br /&gt;
If docking clearance requirement is turned on (usually by installing the Docking Clearance OXP) then docking without clearance means you get no Reward Points added for good docking. Penalties for bad docking will still apply though.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
&lt;br /&gt;
[[GalCop Rewards|GalCop Rewards OXP]]&lt;br /&gt;
&lt;br /&gt;
Optional: [[OXPConfig|OXPConfig OXP version 2.0.10 or higher]]&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/M9ZDfu Safe_Docking.1.0.0.oxp.zip]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32502</id>
		<title>GalCop Rewards</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=GalCop_Rewards&amp;diff=32502"/>
		<updated>2012-06-17T23:06:47Z</updated>

		<summary type="html">&lt;p&gt;PG1: Created page with &amp;quot;== Introduction ==  By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
By the year 3136 GalCop had reached a point where too many pilots were committing lots of minor misdemeanours… docking whilst drunk, breaking speed limits in reduced speed zones, docking without permission, etc. Trying to set fines and penalties hadn’t reduced this ever growing problem. Their latest solution was to replace or augment the stick with a carrot, and so they took the lottery concept as used by the government of Riveis, and the concept of a loyalty reward card system, and merged them together and GalCop Rewards was born.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GalCop Rewards is a points-based lottery and rewards system. The aim is to gain reward points. If you have rewards points you get entered into the lottery that happens every 50 hours*.  Playing the lottery costs 1 reward point. If you have 5 reward points then you get entered in the next 5 lotteries and then it will stop. If you win the lottery you win vouchers as prizes&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;. The more points you have the better the type of voucher you can win. These vouchers can be anything like “percentage savings on fuel”, “free repairs”, “Get 1t of a commodity when you purchase Xt of the same commodity&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;”, “Percentage saving on equipment”. Also this voucher can be valid for a number of redeems. You do not have to do anything to redeem your voucher. If you buy the relevant equipment or commodities at a participating station&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt; the voucher will be automatically redeemed&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
&lt;br /&gt;
All vouchers cost reward points so you can not redeem your voucher if you do not have enough reward points.&lt;br /&gt;
&lt;br /&gt;
As GalCop can not know where you are in space when the lottery is played you will be informed of any voucher, or vouchers, you win when you arrive or whilst at a participating station.&lt;br /&gt;
&lt;br /&gt;
Any financial savings a voucher gives are rewarded back to you after a purchase so you still need enough money to make the purchase without the voucher.&lt;br /&gt;
&lt;br /&gt;
You only get awarded equipment based vouchers for equipment which are referenced with wildcards (usually missiles) or specific equipment that your ship can take and you don't already have.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;The higher the number of points you have the less likely you are to win the lottery. Though this plateaus. This is because the vouchers you can win with high points get so much better. Also this is to encourage new pilots with initial easier wins. (Starts at 1 in 5 and reduces to 1 in 15 by 500 points or higher.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;●&amp;lt;/sup&amp;gt;You only get one voucher at any time. If more than one lottery was played since it was last checked you may win more than one voucher. If you win more than one or you have an existing voucher you will get to choose which voucher you want to keep, whether that be one of the new ones or the existing one. If you choose a new one that voucher will replace the existing one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt;Only normally legal, non-precious, commodities will be included in the vouchers. GalCop purchases some tonnes of these commodities from the market for these rewards in advance, so don't be worried if there doesn't appear to be enough at the station's market.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;▲&amp;lt;/sup&amp;gt;By default only the main station of each system is participating in this scheme. Other stations may be added by other OXPs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;‡&amp;lt;/sup&amp;gt;With commodity based vouchers you may not have room in your cargo bay for all the additional tonnes so you only get what you have room for. As vouchers are for one off purchases partial rewards are considered as a full redeem and you will still reduce the remaining number of redeems or lose the voucher. You may not collect the missing commodities later. Only if you have no room at all will the voucher not be redeemed.&lt;br /&gt;
&lt;br /&gt;
==Earning Reward Points==&lt;br /&gt;
&lt;br /&gt;
Generally this isn't part of this OXP. You will normally need to install another OXP that rewards points. E.g. Safe Docking.&lt;br /&gt;
&lt;br /&gt;
But there is one inbuilt way to earn points though and that is to purchase equipment (standard equipment by default) without redeeming a voucher when doing so.&lt;br /&gt;
&lt;br /&gt;
==Manifest Screen==&lt;br /&gt;
&lt;br /&gt;
To see how many Reward Points you have and what voucher you have go to the Manifest screen (F5-F5). The line in the Manifest screen with your remaing Reward Points also tells you approximately when the next lottery will be. Also if you are in space it will tell you how many lotteries have passed.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://bit.ly/LsHkkq GalCop_Rewards.1.0.0.oxp.zip]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31472</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31472"/>
		<updated>2012-04-22T10:36:51Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. In the original planet lists posted, references to a planet must subtract 1 from the planet number. The Technology Levels in the ''original'' planet lists posted already have the 1 subtracted as required by the '' plist '', whereas that displayed to the player has 1 added. In the ''revised'' planet lists and ''table summaries'' posted the Technology Level has the 1 added that the player sees; whereas the planet numbering starts at zero (indicated by the # symbol) to agree with the charts posted.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/HYuwRq spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions and there is now a statistics sheet.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The new Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set.zip Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set_-_Printer_Friendly.zip Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31424</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31424"/>
		<updated>2012-04-20T21:33:38Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. In the original planet lists posted, references to a planet must subtract 1 from the planet number. The Technology Levels in the ''original'' planet lists posted already have the 1 subtracted as required by the '' plist '', whereas that displayed to the player has 1 added. In the ''revised'' planet lists and ''table summaries'' posted the Technology Level has the 1 added that the player sees; whereas the planet numbering starts at zero (indicated by the # symbol) to agree with the charts posted.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://bit.ly/HYuwRq spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The new Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set.zip Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set_-_Printer_Friendly.zip Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31423</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=31423"/>
		<updated>2012-04-20T19:59:22Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. In the original planet lists posted, references to a planet must subtract 1 from the planet number. The Technology Levels in the ''original'' planet lists posted already have the 1 subtracted as required by the '' plist '', whereas that displayed to the player has 1 added. In the ''revised'' planet lists and ''table summaries'' posted the Technology Level has the 1 added that the player sees; whereas the planet numbering starts at zero (indicated by the # symbol) to agree with the charts posted.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [http://dl.dropbox.com/u/1380916/Oolite/Oolite_galaxies.zip spreadsheet] (please note that this spreadsheet is in OpenDocument format) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies. UPDATE: It now calculates the planet descriptions.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The new Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set.zip Zipped set of all 8 Vector Maps]&lt;br /&gt;
&lt;br /&gt;
[http://s248731467.onlinehome.us/Oolite_Maps_-_Full_Set_-_Printer_Friendly.zip Zipped set of all 8 Vector Maps (print versions)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Factions_OXP&amp;diff=31333</id>
		<title>Factions OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Factions_OXP&amp;diff=31333"/>
		<updated>2012-04-13T18:54:45Z</updated>

		<summary type="html">&lt;p&gt;PG1: New Version. New Download Link. On Behalf of m4r35n357 (Ian Smith)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Factions adds a point of interest to multi-government systems:&lt;br /&gt;
&lt;br /&gt;
* Teams from  anarchy, feudal, dictatorship, and communist systems approach the midpoint of the space lane and start fighting, They only fight with ships of opposing factions. Team members call for assistance when their energy is low. Whether they are being helped depends on how occupied the other team members are at the time.&lt;br /&gt;
* The player may opt to express his political views by attacking ships from one or more of the factions, they will remember this for the duration of the run only. Whether you pay the ultimate price depends again on how busy the particular faction member are. If you kill one of them, prepare to die!&lt;br /&gt;
* Your scanner differentiates between factions by color to help you sort out who is who.&lt;br /&gt;
&lt;br /&gt;
==Danger Level==&lt;br /&gt;
{{OXPLevel|0}}&lt;br /&gt;
This OXP does not in itself add to the danger level, that is purely up to the player.&lt;br /&gt;
&lt;br /&gt;
==Other Uses==&lt;br /&gt;
During play testing it also occurred to me that this code would be useful for ship combat/uberness testing too, eg. a team of stock NPC cobras vs your brand spanking new ship. There are lots of good stats available from the extensive debugging I've built in too. Anyway, here's the code, you need the systems dependencies (or you can edit shipdata.plist to taste) and CCL. I use colour coding for the scanner so I know what's going one, see script.js for colours. Logging is enabled, and script.js has some other config points to look at.&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
* Oolite 1.75 or later&lt;br /&gt;
* [[Cabal Common Library]] v1.2 or later (for random integer fuction)&lt;br /&gt;
* [[Anarchies OXP|Anarchies]], [[Commies]], [[Dictators OXP|Dictators]], [[Feudal States]], [[Galactic Navy OXP|Galactic Navy]], and your choice of either [[Behemoth]] or [[ADCK's Behemoths]]&lt;br /&gt;
&lt;br /&gt;
==Copyright &amp;amp; License==&lt;br /&gt;
Factions is © 2011 m4r35n357 (Ian Smith)&lt;br /&gt;
&lt;br /&gt;
This work is licensed under the Creative Commons Attribution-Noncommercial-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, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.&lt;br /&gt;
&lt;br /&gt;
==Revision History==&lt;br /&gt;
Version 1.11 (05.04.2012): Mercenary immersion enhancement: the various participants might just recognize you in future battles if you annoy them enough. Reduced the default odds of a battle to 25%, tune to taste.&lt;br /&gt;
&lt;br /&gt;
Version 1.10 (29.07.2011): Even better confinement of combatants, more ship types for commies &amp;amp; dictators, fixed bug where player enemy status was remembered until game exit, fairer starting conditions, dictators can't race to start &amp;amp; ambush everyone now&lt;br /&gt;
&lt;br /&gt;
Version 1.9 (22.07.2011): Better confinement of combatants, easier to use uber mode&lt;br /&gt;
&lt;br /&gt;
Version 1.8 (04.07.2011): Fix obscure escort bug, remove automatic flee response, but let non-ecm ships still flee&lt;br /&gt;
&lt;br /&gt;
Version 1.7 (27.06.2011): Various AI tweaks, add a GalCop task force&lt;br /&gt;
&lt;br /&gt;
Version 1.6 (13.06.2011): Comms messages between faction members, plasma-equipped NPCs avoid friendly fire, number of factions dependent on tech level, others&lt;br /&gt;
&lt;br /&gt;
Version 1.5 (31.05.2011): Removed unused shipdata entries&lt;br /&gt;
&lt;br /&gt;
Version 1.4 (30.05.2011): Commies now have Giant Rays available, GalCop can now have a Transport or Behemoth instead of the Frigate&lt;br /&gt;
&lt;br /&gt;
Version 1.3 (25.05.2011): Start factions further away from battle site to allow player more time to see the early stages&lt;br /&gt;
&lt;br /&gt;
Version 1.2 (24.05.2011): Add licence to README, add danger level to README&lt;br /&gt;
&lt;br /&gt;
Version 1.1 (24.05.2011): Raise faction membership to 16 (+ any escorts), make it more dangerous to kill a faction member&lt;br /&gt;
&lt;br /&gt;
Version 1.0 (24.05.2011): Botched first release&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[http://www.box.com/s/5649f8449570ee392b3c Version 1.11] from box.com&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]{{system-OXP}}&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=29278</id>
		<title>Oolite planet list</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_planet_list&amp;diff=29278"/>
		<updated>2011-11-07T06:54:46Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Although this list was taken from Oolite the data applies well to the [[BBC_Micro|BBC Micro]] version of Classic Elite, and some other versions.&lt;br /&gt;
&lt;br /&gt;
Each entry shows the system number, name, coordinates, tech level, inhabitants, government and a comment on the system.&lt;br /&gt;
&lt;br /&gt;
For OXP writers, note that references to a particular galaxy in [[Oolite]] (in a [[Planetinfo.plist]] entry for example), should ''subtract 1 from the galaxy number'' – Galaxy 1 is referred to as 0, etc. In the original planet lists posted, references to a planet must subtract 1 from the planet number. The Technology Levels in the ''original'' planet lists posted already have the 1 subtracted as required by the '' plist '', whereas that displayed to the player has 1 added. In the ''revised'' planet lists and ''table summaries'' posted the Technology Level has the 1 added that the player sees; whereas the planet numbering starts at zero (indicated by the # symbol) to agree with the charts posted.&lt;br /&gt;
&lt;br /&gt;
* A spreadsheet of all galaxies can be downloaded in [[Media:Galaxies.zip|Excel format]] or [[Media:Galaxies_Ods.zip|Open Document format]].&lt;br /&gt;
&lt;br /&gt;
* Downloadable vector graphic PDF's of the 8 charts have also been created and can be downloaded from the [[#Galaxies | ''links below'']].&lt;br /&gt;
&lt;br /&gt;
=== Where do these crazy names come from? ===&lt;br /&gt;
&lt;br /&gt;
If you read through the source code and/or binary for either Elite or Oolite, you will not find any text containing the list of planets and their properties. The entire universe (including the famous [http://www.frontier.co.uk/games/older/elite/faq.html edible poet]) is constructed programmatically (using a truncated Fibonacci function) from a handful of seed numbers and the strings &amp;quot;ABOUSEITILETSTONLONUTHNOAL&amp;quot; (used by the planet description string) and &amp;quot; ' 'LEXEGEZACEBISOUSESARMAINDIREA'ERATENBERALAVETIEDORQUANTEISRION&amp;quot; which is used both by the planet description string and to generate all the system names in the 8 Galaxies (the single quotes indicate placeholders where the planet name generation can be terminated early). The algorithm was reverse-engineered from the original BBC disk by [[ Christian Pinder]], and implemented in Objective-C for Oolite. Further details are given in the discussion of Elite's [[Random_number_generator|random number generators]].&lt;br /&gt;
&lt;br /&gt;
* In this [[Media:Oolite_galaxies.zip|spreadsheet]] ('''There is a bug in this spreadsheet I wrote. I am waiting on the uploading of my fixed version which I can not do myself. To fix it yourself change cell AG5 to read &amp;quot;=((AF5-1)*4+AA5+AD5+1)/10&amp;quot; without quotes and copy down. - PhantorGorth''') (please note that this spreadsheet is in OpenDocument format and can be read by OpenOffice.org and many others applications including Microsoft Excel with the appropriate plug-in) you can see some of the algorithms in action where they are used to calculate the names, positions, inhabitants and other parameters for all 256 planets for a selected Galaxy plus a plot of the Galaxy (Sorry, but no links between worlds are plotted). You can also use this to view what could have been if a different seed number was used for the Galaxies.&lt;br /&gt;
&lt;br /&gt;
* A related spreadsheet showing useful trading routes is also available for [http://www.box.net/shared/bchkkloi32 download].&lt;br /&gt;
&lt;br /&gt;
* The files used to build the vector maps are all available online for download [http://www.crimsonforge.co.uk/cloister/OOmap_toolkit.zip HERE]. These require adobe Illistrator 10 to open.&lt;br /&gt;
&lt;br /&gt;
== Galaxies ==&lt;br /&gt;
# [[Image:StarChart-Galaxy-000.png|50px|Jump route chart of galaxy 1]] [[Oolite planet list/Galaxy 1|Galaxy 1]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G1.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G1.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G1.pdf US Mirror] -- [[Sector1/Index|The new Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-001.png|50px|Jump route chart of galaxy 2]] [[Oolite planet list/Galaxy 2|Galaxy 2]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G2.pdf Vector Map] --  [http://www.crimsonforge.co.uk/cloister/gOOmap_G2.pdf print version] --[http://s248731467.onlinehome.us/OOmap_G2.pdf US Mirror; Update needed] -- [[Sector2/Index|The New Galaxy Guide]]&lt;br /&gt;
# [[Image:StarChart-Galaxy-002.png|50px|Jump route chart of galaxy 3]] [[Oolite planet list/Galaxy 3|Galaxy 3]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G3.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G3.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G3.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-003.png|50px|Jump route chart of galaxy 4]] [[Oolite planet list/Galaxy 4|Galaxy 4]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G4.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G4.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G4.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-004.png|50px|Jump route chart of galaxy 5]] [[Oolite planet list/Galaxy 5|Galaxy 5]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G5.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G5.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G5.pdf US Mirror; Update needed]&lt;br /&gt;
# [[Image:StarChart-Galaxy-005.png|50px|Jump route chart of galaxy 6]] [[Oolite planet list/Galaxy 6|Galaxy 6]] -- [http://www.crimsonforge.co.uk/cloister/OOmap_G6.pdf Vector Map] -- [http://www.crimsonforge.co.uk/cloister/gOOmap_G6.pdf print version] -- [http://s248731467.onlinehome.us/OOmap_G6.pdf US Mirror]&lt;br /&gt;
# [[Image:StarChart-Galaxy-006.png|50px|Jump route chart of galaxy 7]] [[Oolite planet list/Galaxy 7|Galaxy 7]] -- [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;
# [[Image:StarChart-Galaxy-007.png|50px|Jump route chart of galaxy 8]] [[Oolite planet list/Galaxy 8|Galaxy 8]] -- [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;
[[Category:Oolite]][[Category:Classic]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25350</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25350"/>
		<updated>2010-12-03T08:39:59Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading/Initialisation Dependencies==&lt;br /&gt;
&lt;br /&gt;
=== The Issue ===&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency chain issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A_Script&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;Copyright Info&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;License&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // function to handle the initialising of other scripts&lt;br /&gt;
      function runOtherStartUp(s) {&lt;br /&gt;
	if (worldScripts[s].startUp) worldScripts[s].startUp(); // Call the other startUp.&lt;br /&gt;
	if (worldScripts[s].startUp) delete worldScripts[s].startUp; // Make sure the other startUp is deleted as it may not be written using&lt;br /&gt;
                                                                     // this template.&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // calling each dependency:&lt;br /&gt;
      runOtherStartUp(&amp;quot;Oxp_B_Script&amp;quot;) // Repeat for each OXP script that this OXP script depends on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      this.Oxp_X_Script_Exists = !!worldScripts[&amp;quot;Oxp_X_Script&amp;quot;];  // Repeat for other similar OXP script checks.&lt;br /&gt;
      // Please note that the two not (!) operators here work by have one convert the existence of the script object into a boolean which has&lt;br /&gt;
      // its true/false status the wrong way round for our needs and then the other swaps the boolean's status to way we need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A_Script's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP script goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
==Event Dependencies==&lt;br /&gt;
&lt;br /&gt;
===The Issue===&lt;br /&gt;
&lt;br /&gt;
There are also times when you will want for a particular event the code from your OXP to run after the code from another OXP. The method chosen above for loading can not be used for events as deleting the function will mean the event code will work once and the next time the event is triggered there is no code to call. This issue therefore requires another solution.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
The current solution for this is to use the timer mechanism. In essence this involves using a timer started from your script's event to trigger code to be called later after the code from the dependency OXP's event.  This method does suffer from the fact that you can not handle dependency chains very well (if at all) and you have to set the timer to trigger long enough afterwards to guarantee that the code your code depends on has already been run.&lt;br /&gt;
&lt;br /&gt;
This could be done using this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.eventName = function {&lt;br /&gt;
  this.eventTimer = new Timer(this, this.funcToRun, secondsToWait);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
this.funcToRun = function {&lt;br /&gt;
  // Put your event code here.&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose the appropriate names for the eventName (see [[Oolite_JavaScript_Reference:_ship_script_event_handlers|Ship Script Event Handlers]] or [[Oolite_JavaScript_Reference:_world_script_event_handlers|World Script Event Handlers]]), eventTimer and funcToRun, and now many seconds to wait (secondsToWait) before it launches (usually about 1 second).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25241</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25241"/>
		<updated>2010-11-07T16:47:53Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading/Initialisation Dependencies==&lt;br /&gt;
&lt;br /&gt;
=== The Issue ===&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency chain issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A_Script&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;Copyright Info&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;License&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // function to handle the initialising of other scripts&lt;br /&gt;
      function runOtherStartUp(s) {&lt;br /&gt;
	if (worldScripts[s].startUp) worldScripts[s].startUp(); // Call the other startUp.&lt;br /&gt;
	if (worldScripts[s].startUp) delete worldScripts[s].startUp; // Make sure the other startUp is deleted as it may not be written using&lt;br /&gt;
                                                                     // this template.&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // calling each dependency:&lt;br /&gt;
      runOtherStartUp(&amp;quot;Oxp_B_Script&amp;quot;) // Repeat for each OXP script that this OXP script depends on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      this.Oxp_X_Script_Exists = !!worldScripts[&amp;quot;Oxp_X_Script&amp;quot;];  // Repeat for other similar OXP script checks.&lt;br /&gt;
      // Please note that the two not (!) operators here work by have one convert the existence of the script object into a boolean which has&lt;br /&gt;
      // its true/false status the wrong way round for our needs and then the other swaps the boolean's status to way we need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A_Script's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP script goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
==Event Dependencies==&lt;br /&gt;
&lt;br /&gt;
===The Issue===&lt;br /&gt;
&lt;br /&gt;
There are also times when you will want for a particular event the code from your OXP to run after the code from another OXP. The method chosen aboved for loading can not be used for events as deleting the function will mean the event code will work once and the next time the event is triggered there is no code to call. This issue therefore requires another solution.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
The current solution for this is to use the timer mechanism. In essence this involves using a timer started from your script's event to trigger code to be called later after the code from the dependency OXP's event.  This method does suffer from the fact that you can not handle dependency chains very well (if at all) and you have to set the timer to trigger long enough afterwards to guarantee that the code your code depends on has already been run.&lt;br /&gt;
&lt;br /&gt;
This could be done using this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.eventName = function {&lt;br /&gt;
  this.eventTimer = new Timer(this, this.funcToRun, secondsToWait);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
this.funcToRun = function {&lt;br /&gt;
  // Put your event code here.&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose the appropriate names for the eventName (see [[Oolite_JavaScript_Reference:_ship_script_event_handlers|Ship Script Event Handlers]] or [[Oolite_JavaScript_Reference:_world_script_event_handlers|World Script Event Handlers]]), eventTimer and funcToRun, and now many seconds to wait (secondsToWait) before it launches (usually about 1 second).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25240</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25240"/>
		<updated>2010-11-07T16:44:32Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading/Initialisation Dependencies==&lt;br /&gt;
&lt;br /&gt;
=== The Issue ===&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency chain issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A_Script&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;Copyright Info&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;License&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // function to handle the initialising of other scripts&lt;br /&gt;
      function runOtherStartUp(s) {&lt;br /&gt;
	if (worldScripts[s].startUp) worldScripts[s].startUp(); // Call the other startUp.&lt;br /&gt;
	if (worldScripts[s].startUp) delete worldScripts[s].startUp; // Make sure the other startUp is deleted as it may not be written using this template.&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // calling each dependency:&lt;br /&gt;
      runOtherStartUp(&amp;quot;Oxp_B_Script&amp;quot;) // Repeat for each OXP script that this OXP script depends on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      this.Oxp_X_Script_Exists = !!worldScripts[&amp;quot;Oxp_X_Script&amp;quot;];  // Repeat for other similar OXP script checks.&lt;br /&gt;
      // Please note that the two not (!) operators here work by have one convert the existence of the script object into a boolean which has its true/false status the wrong way round for our needs and then the other swaps the boolean's status to way we need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A_Script's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP script goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
==Event Dependencies==&lt;br /&gt;
&lt;br /&gt;
===The Issue===&lt;br /&gt;
&lt;br /&gt;
There are also times when you will want for a particular event the code from your OXP to run after the code from another OXP. The method chosen aboved for loading can not be used for events as deleting the function will mean the event code will work once and the next time the event is triggered there is no code to call. This issue therefore requires another solution.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
The current solution for this is to use the timer mechanism. In essence this involves using a timer started from your script's event to trigger code to be called later after the code from the dependency OXP's event.  This method does suffer from the fact that you can not handle dependency chains very well (if at all) and you have to set the timer to trigger long enough afterwards to guarantee that the code your code depends on has already been run.&lt;br /&gt;
&lt;br /&gt;
This could be done using this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.eventName = function {&lt;br /&gt;
  this.eventTimer = new Timer(this, this.funcToRun, secondsToWait);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
this.funcToRun = function {&lt;br /&gt;
  // Put your event code here.&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose the appropriate names for the eventName (see [[Oolite_JavaScript_Reference:_ship_script_event_handlers|Ship Script Event Handlers]] or [[Oolite_JavaScript_Reference:_world_script_event_handlers|World Script Event Handlers]]), eventTimer and funcToRun, and now many seconds to wait (secondsToWait) before it launches (usually about 1 second).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25237</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25237"/>
		<updated>2010-11-07T11:18:13Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency chain issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;Copyright Info&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;License&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25236</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25236"/>
		<updated>2010-11-07T01:11:50Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;Copyright Info&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;License&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25235</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25235"/>
		<updated>2010-11-07T00:59:47Z</updated>

		<summary type="html">&lt;p&gt;PG1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Scripting Oolite with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Scripting_Oolite_with_JavaScript&amp;diff=25234</id>
		<title>Scripting Oolite with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Scripting_Oolite_with_JavaScript&amp;diff=25234"/>
		<updated>2010-11-07T00:55:59Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Oolite]] 1.68 and later supports scripts written in [http://en.wikipedia.org/wiki/ECMAScript ECMAScript] (more commonly known as [http://en.wikipedia.org/wiki/JavaScript JavaScript]) in addition to its traditional model based on [[property lists]]. This page provides an overview of how JavaScript is used in Oolite. The page [[Oolite JavaScript Reference: object model]] provides reference for Oolite-specific objects and methods. The page [[Oolite JavaScript Reference: world script event handlers]] provides reference for the event handlers Oolite supports. The language standards and some tutorials can be found through the Wiki links provided above.&lt;br /&gt;
&lt;br /&gt;
== Using JavaScript ==&lt;br /&gt;
&lt;br /&gt;
Currently, JavaScript is supported for “worldScripts”, that is, as a replacement for scripts in ''script.plist'' and shipScripts, that acts as expansion for the ships AI. While a ''script.plist'' file may contain any number of separate scripts, a single JavaScript file may contain only one script.&lt;br /&gt;
&lt;br /&gt;
If your OXP only uses one script, place a JavaScript file named ''script.js'' (or ''script.es'') in the OXP’s ''Config'' directory. If you wish to use multiple scripts, you may instead create file named ''world-scripts.plist'' in the ''Config'' directory. This [[property list]] file should consist of an array of worldScript names; the named scripts should exist in a directory named ''Scripts'' inside your OXP. As with most “atomic” files (files which cannot be merged), such script files must have a unique name to avoid conflicts with other OXPs. Using the ''world-scripts.plist'' method, you can combine JavaScript, plist and OOS scripts however you wish.&lt;br /&gt;
&lt;br /&gt;
Whereas plist scripts are based on polling – all scripts are run at semi-regular intervals, whether they need to be or not – scripts written in JavaScript are “event driven” – different functions, or ''event handlers'', in the script are called in response to state changes in the game, or when other events of interest happen. For instance, &amp;lt;code&amp;gt;willExitWitchSpace&amp;lt;/code&amp;gt; is called just before player exits witchspace, and &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; is called whenever the alert condition changes. See the [[Oolite JavaScript event handler reference|event handler reference]] for a full list of handlers and when Oolite will call them.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is similar to event handlers, but is called periodically at the same times as plist scripts are run – about every 10 seconds, and when certain state changes occur. For efficiency, however, it is best to avoid using &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; if possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== script.js File Template ===&lt;br /&gt;
&lt;br /&gt;
Copy and paste this template into a file called script.js in the OXP Config directory. Ensure you change at least the Name value. '''Every script must have a unique name.''' If multiple scripts with the same name are encountered, Oolite will arbitrary select one and discard the others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;My OXP Script&amp;quot;&lt;br /&gt;
this.author         = &amp;quot;Your Name Here&amp;quot;&lt;br /&gt;
this.copyright      = &amp;quot;(C) 2009 Me.&amp;quot;&lt;br /&gt;
this.licence        = &amp;quot;CC-NC-by-SA 2.0&amp;quot;&lt;br /&gt;
this.description    = &amp;quot;This OXP doesn't do very much yet.&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*  You can copy and paste this function and just change the &amp;quot;startUp&amp;quot;&lt;br /&gt;
    to another event name to handle other OXP events (eg &amp;quot;STATUS_DOCKED&amp;quot;,&lt;br /&gt;
    &amp;quot;alertConditionChanged&amp;quot;, etc).&lt;br /&gt;
*/&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
    Log(&amp;quot;Initialising OXP &amp;quot; + name)&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Oolite JavaScript event handler reference]]&lt;br /&gt;
* [[Oolite JavaScript object model]]&lt;br /&gt;
* [[JavaScript test OXP]]&lt;br /&gt;
* [[Javascript Operators]]&lt;br /&gt;
* [[Handling OXP Dependencies with JavaScript]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25233</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25233"/>
		<updated>2010-11-07T00:52:44Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25232</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25232"/>
		<updated>2010-11-06T22:38:33Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear in a sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25231</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25231"/>
		<updated>2010-11-06T22:37:28Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do Oxp_A's initialisation stuff here as required.&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear the sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25230</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25230"/>
		<updated>2010-11-06T22:34:30Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case you may find that you need to include those additional OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do initialisation stuff here as required&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear the sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25229</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25229"/>
		<updated>2010-11-06T22:31:57Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists it is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case may find that you need to include those OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do initialisation stuff here as required&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear the sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25228</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25228"/>
		<updated>2010-11-06T22:29:02Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Load Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists and it in turn is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case may find that you need to include those OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do initialisation stuff here as required&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear the sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25227</id>
		<title>Handling OXP Dependencies with JavaScript</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Handling_OXP_Dependencies_with_JavaScript&amp;diff=25227"/>
		<updated>2010-11-06T22:28:08Z</updated>

		<summary type="html">&lt;p&gt;PG1: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Issue ==&lt;br /&gt;
&lt;br /&gt;
One of the common issues with OXP development is that many OXPs are dependent on the existence of other OXPs. If they only need to exist side by side this isn't a big problem and the player only has to make sure all necessary OXPs are installed.  If you need another OXP to be initialised first (have it's startUp function called first) you will run into a problem.  An example of this would be if say your OXP added a station above some moons in a range of systems. If your OXP ran before the OXP(s) that created the moons then it may place the stations differently or not at all compared to if it ran later or last.&lt;br /&gt;
&lt;br /&gt;
This problem arises because Oolite does not guarantee the order in which the OXPs are loaded. Some version do load in alphabetical order but that isn't true across the board.  There have been solutions to this problem by either running the initialisation code from a timer or from a screen change event instead of the startUp function but these methods are not good for multiple dependency issues and in the case of screen change events do not always trigger. Since version 1.74 of Oolite there has been a much simpler solution.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
Oolite 1.74 removed the automatic calling of OXPs' reset functions (making this.reset redundant) and reloads all functions from the cache when the player dies before calling all the OXPs' startUp functions. &lt;br /&gt;
&lt;br /&gt;
This allows for an OXP to call a dependency OXP's startUp function before it does its own initialising, provided it hasn't been run yet. Then have that startUp function deleted so it can't be called again until the player dies. (Please note that a JavaScript function deleted whilst it is in the middle of being called, &amp;lt;i&amp;gt;that includes subfunctions&amp;lt;/i&amp;gt;, will still be fully executed.)  This method then works through the dependency chain until all dependencies are initialised. &lt;br /&gt;
&lt;br /&gt;
As an example if OXP_A depends on OXP_B which depends on OXP_C with this method it doesn't matter what order the OXPs get called in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oolite's Calling Order: OXP_A, OXP_C, OXP_B.&amp;lt;br/&amp;gt;&lt;br /&gt;
*OXP_A's startUp is called first.&lt;br /&gt;
*It deletes itself and then looks for the existence of OXP_B's startUp function and as it exists calls it.&lt;br /&gt;
*OXP_B's startUp first deletes itself and then looks for the existence of OXP_C's startUp. As it exists and it in turn is called.&lt;br /&gt;
*OXP_C startUp first deletes itself and as it doesn't have any dependencies then executes its initialisation code and returns execution back to OXP_B's startUp.&lt;br /&gt;
*OXP_B startUp now executes its initialisation code and returns execution back to OXP_A's startUp where it gets to execute its initialisation code.&lt;br /&gt;
All the above was within the initial call to OXP_A's startUp.&lt;br /&gt;
*Now Oolite will want to call OXP_C's startUp as it is next in its list. As it has already been called and deleted it won't find it and will skip it.&lt;br /&gt;
*Finally Oolite will try to call OXP_B's startUp function which also has been deleted and will also therefore be skipped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is that the three OXP's have been initialised in the right order. If you tried this with a different OXP load order the results will be the same.&lt;br /&gt;
&lt;br /&gt;
If the dependency OXP is not using this method you must delete that's startUp function yourself after you have called its startUp function.  This may have a subtle knock on effect if that dependency OXP has it own dependencies that are handled in some other way.  If that is the case may find that you need to include those OXPs as dependencies of your OXP and call them first.&lt;br /&gt;
&lt;br /&gt;
Well that's the theory, so here is what a OXP template using this idea should look like in practice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;this.name           = &amp;quot;Oxp_A&amp;quot;;&lt;br /&gt;
this.author         = &amp;quot;Author&amp;quot;;&lt;br /&gt;
this.copyright      = &amp;quot;license&amp;quot;;&lt;br /&gt;
this.description    = &amp;quot;Some Description&amp;quot;;&lt;br /&gt;
this.version        = &amp;quot;1.0 alpha 1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
this.startUp = function()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
      delete this.startUp; // Must be done straight away to prevent loops. It doesn't stop this function from working.&lt;br /&gt;
&lt;br /&gt;
      // For handling oxps that are written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_B.startUp) worldScripts.Oxp_B.startUp(); // Calls Oxp_B.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
      // Repeat above for each OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // For handling old oxps that are NOT written using this template:&lt;br /&gt;
      if (worldScripts.Oxp_Old.startUp)&lt;br /&gt;
      {&lt;br /&gt;
         worldScripts.Oxp_Old.startUp(); // Calls Oxp_Old.startUp as it is required to load before your Oxp_A.&lt;br /&gt;
         delete worldScripts.Oxp_Old.startUp; // You do this as Oxp_Old can't.&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for each old OXP that this OXP depends on.&lt;br /&gt;
&lt;br /&gt;
      // Test for existence of an OXP that isn't required but effects the way this OXP works.&lt;br /&gt;
      if (worldScripts[&amp;quot;Oxp_X&amp;quot;])&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = true;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         this.Oxp_X_Exists = false;&lt;br /&gt;
      }&lt;br /&gt;
      // Repeat above for other similar OXP checks.&lt;br /&gt;
&lt;br /&gt;
      // Do initialisation stuff here as required&lt;br /&gt;
&lt;br /&gt;
      log(this.name + &amp;quot; &amp;quot; + this.version +&amp;quot; loaded.&amp;quot;); // This goes last so the load messages appear the sensible order.&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The rest of OXP goes here&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the OXP names, repeat the sections and fill the rest of the code as needed.&lt;/div&gt;</summary>
		<author><name>PG1</name></author>
		
	</entry>
</feed>