<?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=Kaks</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=Kaks"/>
	<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php/Special:Contributions/Kaks"/>
	<updated>2026-04-16T03:41:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29991</id>
		<title>Oolite FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29991"/>
		<updated>2011-12-22T04:06:55Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* System Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Where do I get the program? And what about the different versions that exist?|answer= The latest 'official' stable release is version 1.76, and is available on the [http://oolite.org/download.shtml oolite.org download page] for OS X, Windows, and Linux(x86). The last stable release made by the original programmer, Giles Williams (a.k.a. Aegidian) was 1.65 and is best available from his website [http://oolite.aegidian.org/ oolite.aegidian.org]. The latest test releases/development versions can be [http://developer.berlios.de/project/showfiles.php?group_id=3577 downloaded from BerliOS] with installers also available for OS X, Windows and Linux. More detailed information can be found on the [http://aegidian.org/bb/index.php Oolite Bulletin Board], in the respective sections for [http://aegidian.org/bb/viewforum.php?f=10 Oolite-Mac], [http://aegidian.org/bb/viewforum.php?f=9 Oolite-Linux] and [http://aegidian.org/bb/viewforum.php?f=8 Oolite-PC].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the point of the game?|answer=To fly from planet to planet, buying and selling goods, shooting pirates or committing acts of piracy. There's no goal other than perhaps to achieve the rank of ELITE.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I'm still confused, how do I play?|answer=It's a good idea to start with the [http://wiki.alioth.net/images/0/0d/Oolite_1.65_ReadMe.pdf.zip Oolite ReadMe] file for some basic information. For further information you may wish to consult the [http://wiki.alioth.net/index.php/Oolite_Instruction_Manual Oolite Instruction Manual] here on the wiki. A load of helpful information can be obtained from [http://wiki.alioth.net/index.php/Mr_Gimlet Mr Gimlet], the quite talkative dockmaster on Lave Station. If you're a fresh graduate from the Flight Academy on the way to your first ship, you should see him. It's also a good idea to have a look at Ian Bell's [http://www.iancgbell.clara.net/elite/manual.htm Flight Training Manual] for the original BBC Elite, although some of Oolite's control keys are different from the original, so be careful.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I configure my joystick or gamepad for Oolite in Linux?|answer=See [[Linux Joysticks and Gamepads]].}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What do the various colors represent on the radar?|answer=White - unpowered items that can't mass-lock the in-system drive (jumpdrive). Green/Yellow - navigation buoys. Yellow - powered craft. Red - powered craft identified as hostile. Green - space stations. Green/Red - thargoids. Purple - police. Blue/Red - police on intercept. Red/Yellow - active mine (about to detonate). Blue/Cyan - witchspace wormhole.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I keep crashing when trying to dock. How do I dock manually?|answer=Many young Jamesons have met a sticky end and had to be scraped from the docking port of Lave Station whilst attempting docking. Its fairly easy once you get the hang of it. Check the [[How_to_Dock|How to Dock]] guide from the Galactic Navy Flight Manual. Or you can get the [[Traffic_Control_OXP|Traffic Control OXP]] for friendly instructions given by the station crew as you try to dock.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I make decent profits?|answer=Trade between a Poor or Average Agricultural and a Rich or Average Industrial planet. Write down the prices for everything on both planets and find out where you make the most profit per ton. You can also download the [http://wiki.alioth.net/images/d/df/OoliteRS_rev1.8.zip Oolite Reference Sheet], which features a table with the average prices. From there you can figure out whether you're on a buyers' or a sellers' market. The [http://wiki.alioth.net/images/9/9e/OoliteTradingChart2.zip Trading Chart] allows you to create your own statistics along your way.  [http://www.box.net/shared/bchkkloi32 This spreadsheet] highlights Poor Agricultural and Rich Industrial planets on a star chart (the spreadsheet is in .xls format and needs the Analysis Toolpak installed).  You can also earn credits by taking cargo contracts - courier goods of varied type and volume between planets near and far.  The spreadsheet helps assess whether you will be be able to complete the contract on time, and so build your reputation as an outstanding courier.  Another option is to fit one or more [http://wiki.alioth.net/index.php/Passenger_Berth Passenger Berths] in your ship and earn credits by transporting individuals who, for one reason or another, prefer not to use the commercial Passenger Liners to reach their destination.  As with cargo contracts, you can build your reputation up, which will result in your being offered more lucrative fares.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=It takes so long to get to the station after each jump. Can I do anything to speed the trip up?|answer=Well, space is huge. It is vast. I mean, have you ever imagined a football-field with an orange in one of the goals and a walnut in the other goal? If you haven't, then don't. It takes you nowhere. As will your ship's engine at normal speed. But then that's what your jumpdrive is for. Hit '''J''', and your journey speeds up. Unfortunately your jumpdrive doesn't work when other masses, like ships or planets, are nearby. They will 'lock' it. And in the 'corridor' between the witchpoint and the planet you are very likely to meet other ships. On the other hand there is no rule that you have to stick to the corridor. Just leave it sideways in any direction with your jumpdrive engaged for about 10-15 seconds, and head for the planet then. Makes your voyage much smoother. If you're a bounty-hunter and eager to meet lots of pirates, however, this is not your method of choice.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have already made my first intergalactic jump to Galaxy 2, but now I remember that I forgot my Zero-G cricket set/food blender/deadly lobstoid/edible arts graduate on Lave/Tionisla/Xeesle/Reesdice! Or I just found out that there are some more missions I'd like to do in the first galaxy. So how can I jump back to Galaxy 1?|answer=You can't. Unfortunately due to their very physical nature intergalactic wormholes allow for one-way travel only. Fortunately, though, the intergalactic wormhole in Galaxy 8 connects back to Galaxy 1. So you can go full circle. And you have to, if you want to return to the first galaxy. Of course that will cost you another 5000 credits for each galactic hyperjump. So the complete 8-Galaxies-Sightseeing-Tour has a pricetag of a total 40000 credits.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've got a trumble! First it was cute and fluffy. But then it started to multiply. Even worse, they started to eat everything on board and they are confusing my sights. I don't want them anymore! How can I get rid of them? Help!|answer=First of all, don't feel embarrassed. It happens to all commanders sooner or later. I mean, they're really cute and fluffy, aren't they? But seriously, there are several things you could try. E.g. sell them to other unsuspecting noobs. If you don't find enough willing buyers, you could use your escape capsule and abandon your infested ship, hoping that they haven't yet made it into the escape pod, of course. I mean, you can always hope, can't you? If that all doesn't work for you, just remember the old Klingon saying: 'Revenge is a dish that is best served cold.' Now consider that for trumbles it's just the opposite. Want some BBQ-sauce?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=My keyboard doesn't have a particular key used by Oolite, or I even want to change the keyboard layout completely to my liking. What can I do to change the keys?|answer=Oolite reads a key configuration file called keyconfig.plist that you can find at /AddOns/Config/keyconfig.plist; that is the Config-folder that you find inside your AddOns-folder; which is where you put your OXPs. (PC-users have to create the folder /AddOns/Config/ first and then drop a copy of the keyconfig.plist found in /Oolite.app/Contents/Resources/Config/ to this folder.) You can open this file in any text editor and change the ASCII values of the keys used to suit your own preferences. Information on the default keys is also found in the [http://wiki.alioth.net/index.php/Oolite_Keyboard_Controls Oolite Keybord Controls-documentation] here on the wiki.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've completed a number of native and OXP missions and my [http://wiki.alioth.net/index.php/Cobra_Mk.3_%28Oolite%29 Cobra Mk. III] has a number of new and funky pieces of equipment. However, I'm planning a change of ship, what pieces of equipment will I lose as a result?|answer=Many missions award equipment as a result of either accepting or completing them. For the majority of ship equipment, trading ships will result in the equipment being sold as well, with a few exceptions. The '''Cloaking Device''' and the '''Mark Transponder Scanner''', available from the (native) Cloaking Device and (OXP) Assassins missions respectively are transferred to your new ship. The '''Naval Energy Unit''', although awarded with the completion of the (native) Thargoid Plans mission, will be sold when you trade ships. However, completing the mission allows you to buy these units from high TL systems.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I’m using ECM-hardened missiles, but enemies are still able to destroy them! I never seem to be able to destroy enemy hardheads, though. What gives?|answer=ECM-hardened missiles are not ECM-proof. The probability of a hardened missile being destroyed by ECM is 10%–34% depending on range, and if it is destroyed, there’s a 50% chance that it will detonate. This applies equally to hardened missiles fired by computer-controlled ships and those fired by the player. The most effective use of hardened missiles is to use them against relatively slow targets at moderate range, and only use them on nimble ships if you desperately need to force them to break of an attack. Also, don’t use your ECM until a missile is close to blast range (250 metres).&lt;br /&gt;
&lt;br /&gt;
Specifically, the ECM sends out four pulses with different ranges, at half-second intervals. Each pulse has a 10% chance of destroying each hardhead it encounters. For a missile fired at close range, that’s 1 - 0.9&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt; = 34.39% chance of being destroyed within two seconds.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=If I believe that sizes and distances in Oolite are given in meters, it is so ''unrealistic''. The planets have a diameter of only 30–50 kilometers, and the suns are only 1000 kilometers away. Can't we get a little more realism in space, please?|answer=First of all, remember that Oolite is a ''game'', not a ''space simulation''. This is because it ''wants to'' be a game, not a sim. So yes, sizes and distances are all messed up. Ships and stations are too big, planets and suns are too small, and too close to each other. But this is ''deliberately'' so, and we are not going to change it.&lt;br /&gt;
&lt;br /&gt;
The reason is simple: Realistic sizes and distances don't make a good game. In reality space is so huge that you never would meet anybody else on your journey. Imagine the dozen or so ships you meet in the 500 or so kilometers between witchpoint and planet spread over the realistic 150 '''million''' kilometers between Sun and Earth. Even if your direction is only one degree off the perfect line, you would miss them all. And how interesting would that be for the gameplay? And finally, if you had a realistically sized station in front of a realistically sized planet, how would you ever even notice it? A grain of sand in front of a, well, '''planet'''. The result would be players in complete loneliness and virtually no interaction with NPCs. An utterly, utterly boring game. Therefore it was the right decision to screw realism in the layout of the planetary systems in Elite and Oolite.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expanding the Game ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Speaking of OXPs, I've heard a lot about them. What are they? And where do I find them?|answer=OXP stands for 'Oolite eXpansion Pack'. As the name suggests, an OXP is an expansion to the game. It can contain virtually everything: new graphics for your ship, new ships for the player and/or the NPCs, new stations, new missions, new fun. To install an OXP you simply have to drag it into your AddOns-folder (only the OXP itself, not the folder it probably comes in). And as for finding them, you're already at the right place. All OXPs are now (or will become) accessible through the [[OXP|OXP-page of the wiki]]. Just follow the link. And if you fancy trying to create an OXP, the modifying Oolite FAQ can be found [[Modifying Oolite Informal FAQ|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Are there any OXPs that are highly recommended? Or can I get a list of 'must-have' OXPs?|answer=This is a difficult one to answer, because it depends so much on personal taste. There is no list of 'must-have' or necessary OXPs that could be agreed upon by all—or even most—players or contributers. But if you have a look at the [http://aegidian.org/bb/index.php Oolite Bulletin Board], especially the [http://aegidian.org/bb/viewforum.php?f=2 Discussion]- and the [http://aegidian.org/bb/viewforum.php?f=4 Expansion Pack]-forums, you will surely find some topics about this question, and the personal answers of a couple of board members.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why does this and that not exist? ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Will there ever be an Oolite Massive Multi-player Online Role-Play Game (MMORPG)?|answer=At present Ahruman and Co. (the developers) have no plans to develop either Oolite or a separate branch to accommodate either an MMORPG or an MOG (Multi-player Online Game). This, however, doesn't mean one of you clever bods out there can't try ;-) We suggest you read [http://aegidian.org/bb/viewtopic.php?t=6173 this Bulletin Board thread] before you commence though, it may save you a lot of hair-tearing!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Can the range of hyperspace jumps/my fuelcapacity be increased?|answer=No. Jumprange in Oolite is hardcoded for a reason. The game would become less challenging and thus less fun. (Although I can imagine hacks that give unlimited fuel.) And don't forget that there are already various ways of refueling while you are in flight.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want Laser Cooling Boosters!|answer=There are none at the moment and the reason is simple. It would unbalance the game too much. If they were available for the player only, things would get too easy. And if the NPCs could get them, too, things would get too hard. It's all about maintaining a reasonable balance. So the ultimate advice on this is: Aim carefully. Don't waste your laser fire. Prevent overheating.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The other day I got killed when I launched from a Rock Hermit/Behemoth/whatever, and all the profits/kills that I made before were gone. Why couldn't I save there? Why only on main stations?|answer=First of all, congratulations to you for having internalized the ''Golden Rule'': save early, save often! Unfortunately in Oolite you can save and load a commander only on main stations. That's because they are the only 'fixed' objects in space. The rest of the system is populated anew each time you load a game and is not saved in your savefile. So chances are that the Rock Hermit or Behemoth you docked with when saving simply wouldn't exist when you load again, and you would find yourself in nirvana instead of in a safe haven. To prevent odd behavior like this saving and loading is prohibited anywhere else than in a main station. Alternatively you could install [http://wiki.alioth.net/index.php/Save_Anywhere Save Anywhere.oxp], which does exactly what it says on the tin. Note, however, that it is still in beta state. Read the documentation first.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to switch between different ships of mine, e.g. have a nice racer for the weekends, meanwhile leave my freighter docked somewhere and take it back on Monday. Why can't I do this?|answer=What else do you want? Custom paintjobs and interiors? A millionaire's spaceship-flotilla, one for every occasion? Who do you think you are? Jay Leno??? (Apologies if you ''are'' Jay Leno, but then you should have something else to do than playing computer games.) Let me tell you something: Space stations are no garages. Docking bays are limited, and the 'garage'-fees would be prohibitive. Imagine everybody else out there would want the same parking facilities!—Having said that, there is also a technical reason: A player can't have two ships and switch between them, because for the game the player ''is'' his ship, and you can ''be'' only one ship at a time. There is no way of storing a ship in your savefile and retrieving it later.}}&lt;br /&gt;
&lt;br /&gt;
== Known Issues / Bugs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often some of the messages (either from other ships or from my ship) on the bottom of the screen remain and end up 'scrolling' up the screen to cover my gunsights. What's up with that?|answer=The 'sticky messages' bug is, unfortunately, a long standing issue in Oolite, still present in 1.65 and a few releases since. Starting with Oolite 1.71.1 this problem has been eliminated. If you prefer an older version of Oolite, flicking between views (either internal or external) is probably the quickest way to clear the messages.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often I meet a ship or a cargopod that I can't lock on. My laser fire goes right through it. Sometimes it happens with a ship I have just killed. Sometimes after a while it even starts again firing at me, but I can't harm it anymore.|answer=The 'ghost ship' bug is another very old acquaintance in Oolite, and again the tireless developers are trying to rectify this. In the meantime, ignoring the ghost ships (or cargo pods) is the best thing you can do.}}&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on Mac OS X 10.2 (Jaguar) &amp;amp; 10.3 (Panther)?|answer=Sadly, no. The minimum OS requirement for Oolite on the Mac is now Mac OS X 10.4. The previous stable version (1.65) is however compatible with Mac OS X 10.3.9}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on both Intel and PPC Macs?|answer=Yes, since 1.65 Oolite has been Universal Binary. It was PPC only in previous versions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the latest version?|answer=The last stable release is 1.76. The last stable and latest test versions can be downloaded from [http://oolite.org/download.shtml Oolite's homepage]. More information can be found through the [http://aegidian.org/bb/viewforum.php?f=10 Oolite forums].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Is there a port for the PC or Linux?|answer=Yes. Both ports are stable and are at the same level of development as Oolite for the Mac. You can download Oolite for Windows and for Linux PCs from [http://oolite.org/download.shtml Oolite's homepage] (click on &amp;quot;show all platforms&amp;quot; if you can't see the version you're looking for). Information on test releases can be found through the Oolite forums, for the [http://aegidian.org/bb/viewforum.php?f=9 Linux version], and for the [http://aegidian.org/bb/viewforum.php?f=8 Windows version].}}&lt;br /&gt;
&lt;br /&gt;
== Writing OXPs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to contribute to Oolite and write my own OXP, but unfortunately my knowledge in scripting/programming is limited. How can I get started?|answer=First of all the Oolite community welcomes all efforts to enhance and enrich their favorite game, so be our guest! Many of us have started with very little knowledge, but over time were able to write and release astonishing OXPs, so why shouldn't you? Anyway, scripting can be learned. Currently there are two scripting languages in use for Oolite, plist-scripting (sometimes referred to as legacy-scripting) and JavaScript. For any serious OXP-plans you will have to learn them. A general starting point is the [http://wiki.alioth.net/index.php/OXP_howto OXP howto]-page, which will link you to further documentation. For plist-scripting you should read the [http://wiki.alioth.net/index.php/OXP_howto_plist OXP howto plist]-page, and also the [http://wiki.alioth.net/index.php/Property_list Property list]-intro. Information on the ongoing implementation of scripting with JavaScript can be found in the [http://wiki.alioth.net/index.php/Category:Oolite_scripting Category page for scripting] (work in progress). If you want to design a new ship, you should have a look at the [http://wiki.alioth.net/index.php/OXP_howto_model OXP howto model]-page and the [http://wiki.alioth.net/index.php/OXP_howto_texture OXP howto texture]-page. And if you want to give it a behavior of its own, you should consult the [http://wiki.alioth.net/index.php/OXP_howto_AI OXP howto AI]-page. I suggest you try to read and understand these first. If you still have questions afterwards, there is always the [http://aegidian.org/bb/index.php Oolite Bulletin Board], where lots of friendly people usually are very willing to lend a helping hand and to answer lots of questions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want to write an OXP or add content to the Wiki, but some (or all) of the content was written by another author. What copyright issues do I face?|answer=Anything submitted to the Wiki is on the basis that anyone else may edit or fiddle with it. OXPs are submitted under the creative commons licence. The author (stricty speaking) owns the copyright, but licences users to use or distribute the OXP as long as they don't sell or charge for it. In practice virtually all OXP authors don't assert copyright and are pleased and flattered that somebody thinks their stuff is worth writing about or pinching to use in another OXP (its good manners to credit the orginal author in the readme though). I expect the author will be pleased if you want to add some background, but if you are in doubt, send him a PM asking him for permission. At the end of the day, Oolite is a fun project and everbody is doing stuff for it on that basis. (nicked wholesale from [http://aegidian.org/bb/viewtopic.php?p=44813#44813 Little_Bear's] post on the [http://aegidian.org/bb/index.php Oolite Bulletin Board])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diagnosing Problems ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Someone asked me for my log file. What is that, and where is it?|answer=In the test releases of Oolite, various diagnostic information is written to a file called Latest.log. Where it is depends on your operating system:&lt;br /&gt;
* '''Mac OS X''': ~/Library/Logs/Oolite/Latest.log (that is, in your home folder, open the folder named ''Library'', then ''Logs'', then ''Oolite''). Alternatively, select “Show Previous Log” from the “'''Oolite'''” menu in the menu bar when running Oolite.&lt;br /&gt;
* '''Windows''': in Oolite’s folder (typically in C:\''Program Files''), there is a folder called ''oolite.app'', which contains a folder called ''Logs''.&lt;br /&gt;
* '''Linux and other Unix-like systems''': ~/.Oolite/Logs (that is, in the hidden folder ''.Oolite'' in your home folder). If you’re using Nautilus or Konqueror—if you’ve never heard of them, you probably are—select Show Hidden Files from the View menu.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Questions ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have a question not answered here, where can I get help?|answer=Post your queries onto [http://aegidian.org/bb/index.php the friendliest board this side of Riedquat™]. Satisfaction is not guaranteed, but then what is, in this mixed-up universe? Help keep the board friendly by making sure your question isn't already answered here!&lt;br /&gt;
&lt;br /&gt;
If you want to report a bug, please read [http://aegidian.org/bb/viewtopic.php?t=3778 this]. Yes, all that work is a drag, but if nobody reports the bug it probably won’t get fixed.&lt;br /&gt;
&lt;br /&gt;
Or join us in #oolite, or #oolite-dev if you're working on Oolite or OXPs, on irc.oftc.net or ipv6.oftc.net.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29990</id>
		<title>Oolite FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29990"/>
		<updated>2011-12-22T03:59:35Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Known Issues / Bugs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Where do I get the program? And what about the different versions that exist?|answer= The latest 'official' stable release is version 1.76, and is available on the [http://oolite.org/download.shtml oolite.org download page] for OS X, Windows, and Linux(x86). The last stable release made by the original programmer, Giles Williams (a.k.a. Aegidian) was 1.65 and is best available from his website [http://oolite.aegidian.org/ oolite.aegidian.org]. The latest test releases/development versions can be [http://developer.berlios.de/project/showfiles.php?group_id=3577 downloaded from BerliOS] with installers also available for OS X, Windows and Linux. More detailed information can be found on the [http://aegidian.org/bb/index.php Oolite Bulletin Board], in the respective sections for [http://aegidian.org/bb/viewforum.php?f=10 Oolite-Mac], [http://aegidian.org/bb/viewforum.php?f=9 Oolite-Linux] and [http://aegidian.org/bb/viewforum.php?f=8 Oolite-PC].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the point of the game?|answer=To fly from planet to planet, buying and selling goods, shooting pirates or committing acts of piracy. There's no goal other than perhaps to achieve the rank of ELITE.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I'm still confused, how do I play?|answer=It's a good idea to start with the [http://wiki.alioth.net/images/0/0d/Oolite_1.65_ReadMe.pdf.zip Oolite ReadMe] file for some basic information. For further information you may wish to consult the [http://wiki.alioth.net/index.php/Oolite_Instruction_Manual Oolite Instruction Manual] here on the wiki. A load of helpful information can be obtained from [http://wiki.alioth.net/index.php/Mr_Gimlet Mr Gimlet], the quite talkative dockmaster on Lave Station. If you're a fresh graduate from the Flight Academy on the way to your first ship, you should see him. It's also a good idea to have a look at Ian Bell's [http://www.iancgbell.clara.net/elite/manual.htm Flight Training Manual] for the original BBC Elite, although some of Oolite's control keys are different from the original, so be careful.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I configure my joystick or gamepad for Oolite in Linux?|answer=See [[Linux Joysticks and Gamepads]].}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What do the various colors represent on the radar?|answer=White - unpowered items that can't mass-lock the in-system drive (jumpdrive). Green/Yellow - navigation buoys. Yellow - powered craft. Red - powered craft identified as hostile. Green - space stations. Green/Red - thargoids. Purple - police. Blue/Red - police on intercept. Red/Yellow - active mine (about to detonate). Blue/Cyan - witchspace wormhole.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I keep crashing when trying to dock. How do I dock manually?|answer=Many young Jamesons have met a sticky end and had to be scraped from the docking port of Lave Station whilst attempting docking. Its fairly easy once you get the hang of it. Check the [[How_to_Dock|How to Dock]] guide from the Galactic Navy Flight Manual. Or you can get the [[Traffic_Control_OXP|Traffic Control OXP]] for friendly instructions given by the station crew as you try to dock.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I make decent profits?|answer=Trade between a Poor or Average Agricultural and a Rich or Average Industrial planet. Write down the prices for everything on both planets and find out where you make the most profit per ton. You can also download the [http://wiki.alioth.net/images/d/df/OoliteRS_rev1.8.zip Oolite Reference Sheet], which features a table with the average prices. From there you can figure out whether you're on a buyers' or a sellers' market. The [http://wiki.alioth.net/images/9/9e/OoliteTradingChart2.zip Trading Chart] allows you to create your own statistics along your way.  [http://www.box.net/shared/bchkkloi32 This spreadsheet] highlights Poor Agricultural and Rich Industrial planets on a star chart (the spreadsheet is in .xls format and needs the Analysis Toolpak installed).  You can also earn credits by taking cargo contracts - courier goods of varied type and volume between planets near and far.  The spreadsheet helps assess whether you will be be able to complete the contract on time, and so build your reputation as an outstanding courier.  Another option is to fit one or more [http://wiki.alioth.net/index.php/Passenger_Berth Passenger Berths] in your ship and earn credits by transporting individuals who, for one reason or another, prefer not to use the commercial Passenger Liners to reach their destination.  As with cargo contracts, you can build your reputation up, which will result in your being offered more lucrative fares.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=It takes so long to get to the station after each jump. Can I do anything to speed the trip up?|answer=Well, space is huge. It is vast. I mean, have you ever imagined a football-field with an orange in one of the goals and a walnut in the other goal? If you haven't, then don't. It takes you nowhere. As will your ship's engine at normal speed. But then that's what your jumpdrive is for. Hit '''J''', and your journey speeds up. Unfortunately your jumpdrive doesn't work when other masses, like ships or planets, are nearby. They will 'lock' it. And in the 'corridor' between the witchpoint and the planet you are very likely to meet other ships. On the other hand there is no rule that you have to stick to the corridor. Just leave it sideways in any direction with your jumpdrive engaged for about 10-15 seconds, and head for the planet then. Makes your voyage much smoother. If you're a bounty-hunter and eager to meet lots of pirates, however, this is not your method of choice.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have already made my first intergalactic jump to Galaxy 2, but now I remember that I forgot my Zero-G cricket set/food blender/deadly lobstoid/edible arts graduate on Lave/Tionisla/Xeesle/Reesdice! Or I just found out that there are some more missions I'd like to do in the first galaxy. So how can I jump back to Galaxy 1?|answer=You can't. Unfortunately due to their very physical nature intergalactic wormholes allow for one-way travel only. Fortunately, though, the intergalactic wormhole in Galaxy 8 connects back to Galaxy 1. So you can go full circle. And you have to, if you want to return to the first galaxy. Of course that will cost you another 5000 credits for each galactic hyperjump. So the complete 8-Galaxies-Sightseeing-Tour has a pricetag of a total 40000 credits.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've got a trumble! First it was cute and fluffy. But then it started to multiply. Even worse, they started to eat everything on board and they are confusing my sights. I don't want them anymore! How can I get rid of them? Help!|answer=First of all, don't feel embarrassed. It happens to all commanders sooner or later. I mean, they're really cute and fluffy, aren't they? But seriously, there are several things you could try. E.g. sell them to other unsuspecting noobs. If you don't find enough willing buyers, you could use your escape capsule and abandon your infested ship, hoping that they haven't yet made it into the escape pod, of course. I mean, you can always hope, can't you? If that all doesn't work for you, just remember the old Klingon saying: 'Revenge is a dish that is best served cold.' Now consider that for trumbles it's just the opposite. Want some BBQ-sauce?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=My keyboard doesn't have a particular key used by Oolite, or I even want to change the keyboard layout completely to my liking. What can I do to change the keys?|answer=Oolite reads a key configuration file called keyconfig.plist that you can find at /AddOns/Config/keyconfig.plist; that is the Config-folder that you find inside your AddOns-folder; which is where you put your OXPs. (PC-users have to create the folder /AddOns/Config/ first and then drop a copy of the keyconfig.plist found in /Oolite.app/Contents/Resources/Config/ to this folder.) You can open this file in any text editor and change the ASCII values of the keys used to suit your own preferences. Information on the default keys is also found in the [http://wiki.alioth.net/index.php/Oolite_Keyboard_Controls Oolite Keybord Controls-documentation] here on the wiki.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've completed a number of native and OXP missions and my [http://wiki.alioth.net/index.php/Cobra_Mk.3_%28Oolite%29 Cobra Mk. III] has a number of new and funky pieces of equipment. However, I'm planning a change of ship, what pieces of equipment will I lose as a result?|answer=Many missions award equipment as a result of either accepting or completing them. For the majority of ship equipment, trading ships will result in the equipment being sold as well, with a few exceptions. The '''Cloaking Device''' and the '''Mark Transponder Scanner''', available from the (native) Cloaking Device and (OXP) Assassins missions respectively are transferred to your new ship. The '''Naval Energy Unit''', although awarded with the completion of the (native) Thargoid Plans mission, will be sold when you trade ships. However, completing the mission allows you to buy these units from high TL systems.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I’m using ECM-hardened missiles, but enemies are still able to destroy them! I never seem to be able to destroy enemy hardheads, though. What gives?|answer=ECM-hardened missiles are not ECM-proof. The probability of a hardened missile being destroyed by ECM is 10%–34% depending on range, and if it is destroyed, there’s a 50% chance that it will detonate. This applies equally to hardened missiles fired by computer-controlled ships and those fired by the player. The most effective use of hardened missiles is to use them against relatively slow targets at moderate range, and only use them on nimble ships if you desperately need to force them to break of an attack. Also, don’t use your ECM until a missile is close to blast range (250 metres).&lt;br /&gt;
&lt;br /&gt;
Specifically, the ECM sends out four pulses with different ranges, at half-second intervals. Each pulse has a 10% chance of destroying each hardhead it encounters. For a missile fired at close range, that’s 1 - 0.9&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt; = 34.39% chance of being destroyed within two seconds.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=If I believe that sizes and distances in Oolite are given in meters, it is so ''unrealistic''. The planets have a diameter of only 30–50 kilometers, and the suns are only 1000 kilometers away. Can't we get a little more realism in space, please?|answer=First of all, remember that Oolite is a ''game'', not a ''space simulation''. This is because it ''wants to'' be a game, not a sim. So yes, sizes and distances are all messed up. Ships and stations are too big, planets and suns are too small, and too close to each other. But this is ''deliberately'' so, and we are not going to change it.&lt;br /&gt;
&lt;br /&gt;
The reason is simple: Realistic sizes and distances don't make a good game. In reality space is so huge that you never would meet anybody else on your journey. Imagine the dozen or so ships you meet in the 500 or so kilometers between witchpoint and planet spread over the realistic 150 '''million''' kilometers between Sun and Earth. Even if your direction is only one degree off the perfect line, you would miss them all. And how interesting would that be for the gameplay? And finally, if you had a realistically sized station in front of a realistically sized planet, how would you ever even notice it? A grain of sand in front of a, well, '''planet'''. The result would be players in complete loneliness and virtually no interaction with NPCs. An utterly, utterly boring game. Therefore it was the right decision to screw realism in the layout of the planetary systems in Elite and Oolite.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expanding the Game ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Speaking of OXPs, I've heard a lot about them. What are they? And where do I find them?|answer=OXP stands for 'Oolite eXpansion Pack'. As the name suggests, an OXP is an expansion to the game. It can contain virtually everything: new graphics for your ship, new ships for the player and/or the NPCs, new stations, new missions, new fun. To install an OXP you simply have to drag it into your AddOns-folder (only the OXP itself, not the folder it probably comes in). And as for finding them, you're already at the right place. All OXPs are now (or will become) accessible through the [[OXP|OXP-page of the wiki]]. Just follow the link. And if you fancy trying to create an OXP, the modifying Oolite FAQ can be found [[Modifying Oolite Informal FAQ|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Are there any OXPs that are highly recommended? Or can I get a list of 'must-have' OXPs?|answer=This is a difficult one to answer, because it depends so much on personal taste. There is no list of 'must-have' or necessary OXPs that could be agreed upon by all—or even most—players or contributers. But if you have a look at the [http://aegidian.org/bb/index.php Oolite Bulletin Board], especially the [http://aegidian.org/bb/viewforum.php?f=2 Discussion]- and the [http://aegidian.org/bb/viewforum.php?f=4 Expansion Pack]-forums, you will surely find some topics about this question, and the personal answers of a couple of board members.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why does this and that not exist? ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Will there ever be an Oolite Massive Multi-player Online Role-Play Game (MMORPG)?|answer=At present Ahruman and Co. (the developers) have no plans to develop either Oolite or a separate branch to accommodate either an MMORPG or an MOG (Multi-player Online Game). This, however, doesn't mean one of you clever bods out there can't try ;-) We suggest you read [http://aegidian.org/bb/viewtopic.php?t=6173 this Bulletin Board thread] before you commence though, it may save you a lot of hair-tearing!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Can the range of hyperspace jumps/my fuelcapacity be increased?|answer=No. Jumprange in Oolite is hardcoded for a reason. The game would become less challenging and thus less fun. (Although I can imagine hacks that give unlimited fuel.) And don't forget that there are already various ways of refueling while you are in flight.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want Laser Cooling Boosters!|answer=There are none at the moment and the reason is simple. It would unbalance the game too much. If they were available for the player only, things would get too easy. And if the NPCs could get them, too, things would get too hard. It's all about maintaining a reasonable balance. So the ultimate advice on this is: Aim carefully. Don't waste your laser fire. Prevent overheating.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The other day I got killed when I launched from a Rock Hermit/Behemoth/whatever, and all the profits/kills that I made before were gone. Why couldn't I save there? Why only on main stations?|answer=First of all, congratulations to you for having internalized the ''Golden Rule'': save early, save often! Unfortunately in Oolite you can save and load a commander only on main stations. That's because they are the only 'fixed' objects in space. The rest of the system is populated anew each time you load a game and is not saved in your savefile. So chances are that the Rock Hermit or Behemoth you docked with when saving simply wouldn't exist when you load again, and you would find yourself in nirvana instead of in a safe haven. To prevent odd behavior like this saving and loading is prohibited anywhere else than in a main station. Alternatively you could install [http://wiki.alioth.net/index.php/Save_Anywhere Save Anywhere.oxp], which does exactly what it says on the tin. Note, however, that it is still in beta state. Read the documentation first.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to switch between different ships of mine, e.g. have a nice racer for the weekends, meanwhile leave my freighter docked somewhere and take it back on Monday. Why can't I do this?|answer=What else do you want? Custom paintjobs and interiors? A millionaire's spaceship-flotilla, one for every occasion? Who do you think you are? Jay Leno??? (Apologies if you ''are'' Jay Leno, but then you should have something else to do than playing computer games.) Let me tell you something: Space stations are no garages. Docking bays are limited, and the 'garage'-fees would be prohibitive. Imagine everybody else out there would want the same parking facilities!—Having said that, there is also a technical reason: A player can't have two ships and switch between them, because for the game the player ''is'' his ship, and you can ''be'' only one ship at a time. There is no way of storing a ship in your savefile and retrieving it later.}}&lt;br /&gt;
&lt;br /&gt;
== Known Issues / Bugs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often some of the messages (either from other ships or from my ship) on the bottom of the screen remain and end up 'scrolling' up the screen to cover my gunsights. What's up with that?|answer=The 'sticky messages' bug is, unfortunately, a long standing issue in Oolite, still present in 1.65 and a few releases since. Starting with Oolite 1.71.1 this problem has been eliminated. If you prefer an older version of Oolite, flicking between views (either internal or external) is probably the quickest way to clear the messages.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often I meet a ship or a cargopod that I can't lock on. My laser fire goes right through it. Sometimes it happens with a ship I have just killed. Sometimes after a while it even starts again firing at me, but I can't harm it anymore.|answer=The 'ghost ship' bug is another very old acquaintance in Oolite, and again the tireless developers are trying to rectify this. In the meantime, ignoring the ghost ships (or cargo pods) is the best thing you can do.}}&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on Mac OS X 10.2 (Jaguar)?|answer=Sadly, no. The minimum OS requirement for Oolite on the Mac is now Mac OS X 10.3.9.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on the new Intel Macs?|answer=Yes, from 1.65 Oolite is Universal Binary.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the latest version?|answer=The last stable release is 1.65. However, the latest test release—1.74.2 at the time of writing—is faster, more reliable, and offers better graphics than the stable version, and is the recommended download. Yes, we're aware this sounds silly. The last stable and latest test versions can be downloaded from [http://oolite.org/download.shtml Oolite's homepage]. More information can be found through the [http://aegidian.org/bb/viewforum.php?f=10 Oolite forums].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Is there a port for the PC or Linux?|answer=Yes. Both ports are stable and are at the same level of development as Oolite for the Mac. You can download Oolite for Windows and for Linux PCs from [http://oolite.org/download.shtml Oolite's homepage] (click on &amp;quot;show all platforms&amp;quot; if you can't see the version you're looking for). Information on test releases can be found through the Oolite forums, for the [http://aegidian.org/bb/viewforum.php?f=9 Linux version], and for the [http://aegidian.org/bb/viewforum.php?f=8 Windows version].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing OXPs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to contribute to Oolite and write my own OXP, but unfortunately my knowledge in scripting/programming is limited. How can I get started?|answer=First of all the Oolite community welcomes all efforts to enhance and enrich their favorite game, so be our guest! Many of us have started with very little knowledge, but over time were able to write and release astonishing OXPs, so why shouldn't you? Anyway, scripting can be learned. Currently there are two scripting languages in use for Oolite, plist-scripting (sometimes referred to as legacy-scripting) and JavaScript. For any serious OXP-plans you will have to learn them. A general starting point is the [http://wiki.alioth.net/index.php/OXP_howto OXP howto]-page, which will link you to further documentation. For plist-scripting you should read the [http://wiki.alioth.net/index.php/OXP_howto_plist OXP howto plist]-page, and also the [http://wiki.alioth.net/index.php/Property_list Property list]-intro. Information on the ongoing implementation of scripting with JavaScript can be found in the [http://wiki.alioth.net/index.php/Category:Oolite_scripting Category page for scripting] (work in progress). If you want to design a new ship, you should have a look at the [http://wiki.alioth.net/index.php/OXP_howto_model OXP howto model]-page and the [http://wiki.alioth.net/index.php/OXP_howto_texture OXP howto texture]-page. And if you want to give it a behavior of its own, you should consult the [http://wiki.alioth.net/index.php/OXP_howto_AI OXP howto AI]-page. I suggest you try to read and understand these first. If you still have questions afterwards, there is always the [http://aegidian.org/bb/index.php Oolite Bulletin Board], where lots of friendly people usually are very willing to lend a helping hand and to answer lots of questions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want to write an OXP or add content to the Wiki, but some (or all) of the content was written by another author. What copyright issues do I face?|answer=Anything submitted to the Wiki is on the basis that anyone else may edit or fiddle with it. OXPs are submitted under the creative commons licence. The author (stricty speaking) owns the copyright, but licences users to use or distribute the OXP as long as they don't sell or charge for it. In practice virtually all OXP authors don't assert copyright and are pleased and flattered that somebody thinks their stuff is worth writing about or pinching to use in another OXP (its good manners to credit the orginal author in the readme though). I expect the author will be pleased if you want to add some background, but if you are in doubt, send him a PM asking him for permission. At the end of the day, Oolite is a fun project and everbody is doing stuff for it on that basis. (nicked wholesale from [http://aegidian.org/bb/viewtopic.php?p=44813#44813 Little_Bear's] post on the [http://aegidian.org/bb/index.php Oolite Bulletin Board])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diagnosing Problems ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Someone asked me for my log file. What is that, and where is it?|answer=In the test releases of Oolite, various diagnostic information is written to a file called Latest.log. Where it is depends on your operating system:&lt;br /&gt;
* '''Mac OS X''': ~/Library/Logs/Oolite/Latest.log (that is, in your home folder, open the folder named ''Library'', then ''Logs'', then ''Oolite''). Alternatively, select “Show Previous Log” from the “'''Oolite'''” menu in the menu bar when running Oolite.&lt;br /&gt;
* '''Windows''': in Oolite’s folder (typically in C:\''Program Files''), there is a folder called ''oolite.app'', which contains a folder called ''Logs''.&lt;br /&gt;
* '''Linux and other Unix-like systems''': ~/.Oolite/Logs (that is, in the hidden folder ''.Oolite'' in your home folder). If you’re using Nautilus or Konqueror—if you’ve never heard of them, you probably are—select Show Hidden Files from the View menu.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Questions ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have a question not answered here, where can I get help?|answer=Post your queries onto [http://aegidian.org/bb/index.php the friendliest board this side of Riedquat™]. Satisfaction is not guaranteed, but then what is, in this mixed-up universe? Help keep the board friendly by making sure your question isn't already answered here!&lt;br /&gt;
&lt;br /&gt;
If you want to report a bug, please read [http://aegidian.org/bb/viewtopic.php?t=3778 this]. Yes, all that work is a drag, but if nobody reports the bug it probably won’t get fixed.&lt;br /&gt;
&lt;br /&gt;
Or join us in #oolite, or #oolite-dev if you're working on Oolite or OXPs, on irc.oftc.net or ipv6.oftc.net.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29989</id>
		<title>Oolite FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29989"/>
		<updated>2011-12-22T03:57:42Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Why does this and that not exist? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Where do I get the program? And what about the different versions that exist?|answer= The latest 'official' stable release is version 1.76, and is available on the [http://oolite.org/download.shtml oolite.org download page] for OS X, Windows, and Linux(x86). The last stable release made by the original programmer, Giles Williams (a.k.a. Aegidian) was 1.65 and is best available from his website [http://oolite.aegidian.org/ oolite.aegidian.org]. The latest test releases/development versions can be [http://developer.berlios.de/project/showfiles.php?group_id=3577 downloaded from BerliOS] with installers also available for OS X, Windows and Linux. More detailed information can be found on the [http://aegidian.org/bb/index.php Oolite Bulletin Board], in the respective sections for [http://aegidian.org/bb/viewforum.php?f=10 Oolite-Mac], [http://aegidian.org/bb/viewforum.php?f=9 Oolite-Linux] and [http://aegidian.org/bb/viewforum.php?f=8 Oolite-PC].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the point of the game?|answer=To fly from planet to planet, buying and selling goods, shooting pirates or committing acts of piracy. There's no goal other than perhaps to achieve the rank of ELITE.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I'm still confused, how do I play?|answer=It's a good idea to start with the [http://wiki.alioth.net/images/0/0d/Oolite_1.65_ReadMe.pdf.zip Oolite ReadMe] file for some basic information. For further information you may wish to consult the [http://wiki.alioth.net/index.php/Oolite_Instruction_Manual Oolite Instruction Manual] here on the wiki. A load of helpful information can be obtained from [http://wiki.alioth.net/index.php/Mr_Gimlet Mr Gimlet], the quite talkative dockmaster on Lave Station. If you're a fresh graduate from the Flight Academy on the way to your first ship, you should see him. It's also a good idea to have a look at Ian Bell's [http://www.iancgbell.clara.net/elite/manual.htm Flight Training Manual] for the original BBC Elite, although some of Oolite's control keys are different from the original, so be careful.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I configure my joystick or gamepad for Oolite in Linux?|answer=See [[Linux Joysticks and Gamepads]].}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What do the various colors represent on the radar?|answer=White - unpowered items that can't mass-lock the in-system drive (jumpdrive). Green/Yellow - navigation buoys. Yellow - powered craft. Red - powered craft identified as hostile. Green - space stations. Green/Red - thargoids. Purple - police. Blue/Red - police on intercept. Red/Yellow - active mine (about to detonate). Blue/Cyan - witchspace wormhole.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I keep crashing when trying to dock. How do I dock manually?|answer=Many young Jamesons have met a sticky end and had to be scraped from the docking port of Lave Station whilst attempting docking. Its fairly easy once you get the hang of it. Check the [[How_to_Dock|How to Dock]] guide from the Galactic Navy Flight Manual. Or you can get the [[Traffic_Control_OXP|Traffic Control OXP]] for friendly instructions given by the station crew as you try to dock.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I make decent profits?|answer=Trade between a Poor or Average Agricultural and a Rich or Average Industrial planet. Write down the prices for everything on both planets and find out where you make the most profit per ton. You can also download the [http://wiki.alioth.net/images/d/df/OoliteRS_rev1.8.zip Oolite Reference Sheet], which features a table with the average prices. From there you can figure out whether you're on a buyers' or a sellers' market. The [http://wiki.alioth.net/images/9/9e/OoliteTradingChart2.zip Trading Chart] allows you to create your own statistics along your way.  [http://www.box.net/shared/bchkkloi32 This spreadsheet] highlights Poor Agricultural and Rich Industrial planets on a star chart (the spreadsheet is in .xls format and needs the Analysis Toolpak installed).  You can also earn credits by taking cargo contracts - courier goods of varied type and volume between planets near and far.  The spreadsheet helps assess whether you will be be able to complete the contract on time, and so build your reputation as an outstanding courier.  Another option is to fit one or more [http://wiki.alioth.net/index.php/Passenger_Berth Passenger Berths] in your ship and earn credits by transporting individuals who, for one reason or another, prefer not to use the commercial Passenger Liners to reach their destination.  As with cargo contracts, you can build your reputation up, which will result in your being offered more lucrative fares.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=It takes so long to get to the station after each jump. Can I do anything to speed the trip up?|answer=Well, space is huge. It is vast. I mean, have you ever imagined a football-field with an orange in one of the goals and a walnut in the other goal? If you haven't, then don't. It takes you nowhere. As will your ship's engine at normal speed. But then that's what your jumpdrive is for. Hit '''J''', and your journey speeds up. Unfortunately your jumpdrive doesn't work when other masses, like ships or planets, are nearby. They will 'lock' it. And in the 'corridor' between the witchpoint and the planet you are very likely to meet other ships. On the other hand there is no rule that you have to stick to the corridor. Just leave it sideways in any direction with your jumpdrive engaged for about 10-15 seconds, and head for the planet then. Makes your voyage much smoother. If you're a bounty-hunter and eager to meet lots of pirates, however, this is not your method of choice.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have already made my first intergalactic jump to Galaxy 2, but now I remember that I forgot my Zero-G cricket set/food blender/deadly lobstoid/edible arts graduate on Lave/Tionisla/Xeesle/Reesdice! Or I just found out that there are some more missions I'd like to do in the first galaxy. So how can I jump back to Galaxy 1?|answer=You can't. Unfortunately due to their very physical nature intergalactic wormholes allow for one-way travel only. Fortunately, though, the intergalactic wormhole in Galaxy 8 connects back to Galaxy 1. So you can go full circle. And you have to, if you want to return to the first galaxy. Of course that will cost you another 5000 credits for each galactic hyperjump. So the complete 8-Galaxies-Sightseeing-Tour has a pricetag of a total 40000 credits.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've got a trumble! First it was cute and fluffy. But then it started to multiply. Even worse, they started to eat everything on board and they are confusing my sights. I don't want them anymore! How can I get rid of them? Help!|answer=First of all, don't feel embarrassed. It happens to all commanders sooner or later. I mean, they're really cute and fluffy, aren't they? But seriously, there are several things you could try. E.g. sell them to other unsuspecting noobs. If you don't find enough willing buyers, you could use your escape capsule and abandon your infested ship, hoping that they haven't yet made it into the escape pod, of course. I mean, you can always hope, can't you? If that all doesn't work for you, just remember the old Klingon saying: 'Revenge is a dish that is best served cold.' Now consider that for trumbles it's just the opposite. Want some BBQ-sauce?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=My keyboard doesn't have a particular key used by Oolite, or I even want to change the keyboard layout completely to my liking. What can I do to change the keys?|answer=Oolite reads a key configuration file called keyconfig.plist that you can find at /AddOns/Config/keyconfig.plist; that is the Config-folder that you find inside your AddOns-folder; which is where you put your OXPs. (PC-users have to create the folder /AddOns/Config/ first and then drop a copy of the keyconfig.plist found in /Oolite.app/Contents/Resources/Config/ to this folder.) You can open this file in any text editor and change the ASCII values of the keys used to suit your own preferences. Information on the default keys is also found in the [http://wiki.alioth.net/index.php/Oolite_Keyboard_Controls Oolite Keybord Controls-documentation] here on the wiki.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've completed a number of native and OXP missions and my [http://wiki.alioth.net/index.php/Cobra_Mk.3_%28Oolite%29 Cobra Mk. III] has a number of new and funky pieces of equipment. However, I'm planning a change of ship, what pieces of equipment will I lose as a result?|answer=Many missions award equipment as a result of either accepting or completing them. For the majority of ship equipment, trading ships will result in the equipment being sold as well, with a few exceptions. The '''Cloaking Device''' and the '''Mark Transponder Scanner''', available from the (native) Cloaking Device and (OXP) Assassins missions respectively are transferred to your new ship. The '''Naval Energy Unit''', although awarded with the completion of the (native) Thargoid Plans mission, will be sold when you trade ships. However, completing the mission allows you to buy these units from high TL systems.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I’m using ECM-hardened missiles, but enemies are still able to destroy them! I never seem to be able to destroy enemy hardheads, though. What gives?|answer=ECM-hardened missiles are not ECM-proof. The probability of a hardened missile being destroyed by ECM is 10%–34% depending on range, and if it is destroyed, there’s a 50% chance that it will detonate. This applies equally to hardened missiles fired by computer-controlled ships and those fired by the player. The most effective use of hardened missiles is to use them against relatively slow targets at moderate range, and only use them on nimble ships if you desperately need to force them to break of an attack. Also, don’t use your ECM until a missile is close to blast range (250 metres).&lt;br /&gt;
&lt;br /&gt;
Specifically, the ECM sends out four pulses with different ranges, at half-second intervals. Each pulse has a 10% chance of destroying each hardhead it encounters. For a missile fired at close range, that’s 1 - 0.9&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt; = 34.39% chance of being destroyed within two seconds.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=If I believe that sizes and distances in Oolite are given in meters, it is so ''unrealistic''. The planets have a diameter of only 30–50 kilometers, and the suns are only 1000 kilometers away. Can't we get a little more realism in space, please?|answer=First of all, remember that Oolite is a ''game'', not a ''space simulation''. This is because it ''wants to'' be a game, not a sim. So yes, sizes and distances are all messed up. Ships and stations are too big, planets and suns are too small, and too close to each other. But this is ''deliberately'' so, and we are not going to change it.&lt;br /&gt;
&lt;br /&gt;
The reason is simple: Realistic sizes and distances don't make a good game. In reality space is so huge that you never would meet anybody else on your journey. Imagine the dozen or so ships you meet in the 500 or so kilometers between witchpoint and planet spread over the realistic 150 '''million''' kilometers between Sun and Earth. Even if your direction is only one degree off the perfect line, you would miss them all. And how interesting would that be for the gameplay? And finally, if you had a realistically sized station in front of a realistically sized planet, how would you ever even notice it? A grain of sand in front of a, well, '''planet'''. The result would be players in complete loneliness and virtually no interaction with NPCs. An utterly, utterly boring game. Therefore it was the right decision to screw realism in the layout of the planetary systems in Elite and Oolite.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expanding the Game ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Speaking of OXPs, I've heard a lot about them. What are they? And where do I find them?|answer=OXP stands for 'Oolite eXpansion Pack'. As the name suggests, an OXP is an expansion to the game. It can contain virtually everything: new graphics for your ship, new ships for the player and/or the NPCs, new stations, new missions, new fun. To install an OXP you simply have to drag it into your AddOns-folder (only the OXP itself, not the folder it probably comes in). And as for finding them, you're already at the right place. All OXPs are now (or will become) accessible through the [[OXP|OXP-page of the wiki]]. Just follow the link. And if you fancy trying to create an OXP, the modifying Oolite FAQ can be found [[Modifying Oolite Informal FAQ|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Are there any OXPs that are highly recommended? Or can I get a list of 'must-have' OXPs?|answer=This is a difficult one to answer, because it depends so much on personal taste. There is no list of 'must-have' or necessary OXPs that could be agreed upon by all—or even most—players or contributers. But if you have a look at the [http://aegidian.org/bb/index.php Oolite Bulletin Board], especially the [http://aegidian.org/bb/viewforum.php?f=2 Discussion]- and the [http://aegidian.org/bb/viewforum.php?f=4 Expansion Pack]-forums, you will surely find some topics about this question, and the personal answers of a couple of board members.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why does this and that not exist? ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Will there ever be an Oolite Massive Multi-player Online Role-Play Game (MMORPG)?|answer=At present Ahruman and Co. (the developers) have no plans to develop either Oolite or a separate branch to accommodate either an MMORPG or an MOG (Multi-player Online Game). This, however, doesn't mean one of you clever bods out there can't try ;-) We suggest you read [http://aegidian.org/bb/viewtopic.php?t=6173 this Bulletin Board thread] before you commence though, it may save you a lot of hair-tearing!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Can the range of hyperspace jumps/my fuelcapacity be increased?|answer=No. Jumprange in Oolite is hardcoded for a reason. The game would become less challenging and thus less fun. (Although I can imagine hacks that give unlimited fuel.) And don't forget that there are already various ways of refueling while you are in flight.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want Laser Cooling Boosters!|answer=There are none at the moment and the reason is simple. It would unbalance the game too much. If they were available for the player only, things would get too easy. And if the NPCs could get them, too, things would get too hard. It's all about maintaining a reasonable balance. So the ultimate advice on this is: Aim carefully. Don't waste your laser fire. Prevent overheating.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The other day I got killed when I launched from a Rock Hermit/Behemoth/whatever, and all the profits/kills that I made before were gone. Why couldn't I save there? Why only on main stations?|answer=First of all, congratulations to you for having internalized the ''Golden Rule'': save early, save often! Unfortunately in Oolite you can save and load a commander only on main stations. That's because they are the only 'fixed' objects in space. The rest of the system is populated anew each time you load a game and is not saved in your savefile. So chances are that the Rock Hermit or Behemoth you docked with when saving simply wouldn't exist when you load again, and you would find yourself in nirvana instead of in a safe haven. To prevent odd behavior like this saving and loading is prohibited anywhere else than in a main station. Alternatively you could install [http://wiki.alioth.net/index.php/Save_Anywhere Save Anywhere.oxp], which does exactly what it says on the tin. Note, however, that it is still in beta state. Read the documentation first.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to switch between different ships of mine, e.g. have a nice racer for the weekends, meanwhile leave my freighter docked somewhere and take it back on Monday. Why can't I do this?|answer=What else do you want? Custom paintjobs and interiors? A millionaire's spaceship-flotilla, one for every occasion? Who do you think you are? Jay Leno??? (Apologies if you ''are'' Jay Leno, but then you should have something else to do than playing computer games.) Let me tell you something: Space stations are no garages. Docking bays are limited, and the 'garage'-fees would be prohibitive. Imagine everybody else out there would want the same parking facilities!—Having said that, there is also a technical reason: A player can't have two ships and switch between them, because for the game the player ''is'' his ship, and you can ''be'' only one ship at a time. There is no way of storing a ship in your savefile and retrieving it later.}}&lt;br /&gt;
&lt;br /&gt;
== Known Issues / Bugs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often some of the messages (either from other ships or from my ship) on the bottom of the screen remain and end up 'scrolling' up the screen to cover my gunsights. What's up with that?|answer=The 'sticky messages' bug is, unfortunately, a long standing issue in Oolite, still present in 1.65 and a few releases since. Starting with Oolite 1.71.1 this problem has been eliminated. If you prefer an older version of Oolite, flicking between views (either internal or external) is probably the quickest way to clear the messages.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often I meet a ship or a cargopod that I can't lock on. My laser fire goes right through it. Sometimes it happens with a ship I have just killed. Sometimes after a while it even starts again firing at me, but I can't harm it anymore.|answer=The 'ghost ship' bug is another very old acquaintance in Oolite, and again the tireless developers are trying to rectify this. In the meantime, ignoring the ghost ships (or cargo pods) is the best thing you can do.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The brightness of the rotating ships screen on the start-screen of the game has gone dark, I can hardly see them anymore. Do you know that, and what can I do about it?|answer=This is a problem with the lighting model for ships using shaders. The tireless developers are aware of the problem and are going to fix it. In the meantime, and as the problem only occurs when the shader settings are set to 'Full', you can work around it by setting them to 'Simple' or 'Off' in the Options-screen of Oolite (press '''F2''' and choose 'Game Options...'). Although of course you won't have the shader effects then.&lt;br /&gt;
&lt;br /&gt;
The alternative is to open the controls for your graphics card and boost the gamma setting of your card by 10-20%. This will have a marginal effect on your screen colours when using your computer, but it will make ships in-game a lot brighter and easier to see.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on Mac OS X 10.2 (Jaguar)?|answer=Sadly, no. The minimum OS requirement for Oolite on the Mac is now Mac OS X 10.3.9.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on the new Intel Macs?|answer=Yes, from 1.65 Oolite is Universal Binary.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the latest version?|answer=The last stable release is 1.65. However, the latest test release—1.74.2 at the time of writing—is faster, more reliable, and offers better graphics than the stable version, and is the recommended download. Yes, we're aware this sounds silly. The last stable and latest test versions can be downloaded from [http://oolite.org/download.shtml Oolite's homepage]. More information can be found through the [http://aegidian.org/bb/viewforum.php?f=10 Oolite forums].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Is there a port for the PC or Linux?|answer=Yes. Both ports are stable and are at the same level of development as Oolite for the Mac. You can download Oolite for Windows and for Linux PCs from [http://oolite.org/download.shtml Oolite's homepage] (click on &amp;quot;show all platforms&amp;quot; if you can't see the version you're looking for). Information on test releases can be found through the Oolite forums, for the [http://aegidian.org/bb/viewforum.php?f=9 Linux version], and for the [http://aegidian.org/bb/viewforum.php?f=8 Windows version].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing OXPs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to contribute to Oolite and write my own OXP, but unfortunately my knowledge in scripting/programming is limited. How can I get started?|answer=First of all the Oolite community welcomes all efforts to enhance and enrich their favorite game, so be our guest! Many of us have started with very little knowledge, but over time were able to write and release astonishing OXPs, so why shouldn't you? Anyway, scripting can be learned. Currently there are two scripting languages in use for Oolite, plist-scripting (sometimes referred to as legacy-scripting) and JavaScript. For any serious OXP-plans you will have to learn them. A general starting point is the [http://wiki.alioth.net/index.php/OXP_howto OXP howto]-page, which will link you to further documentation. For plist-scripting you should read the [http://wiki.alioth.net/index.php/OXP_howto_plist OXP howto plist]-page, and also the [http://wiki.alioth.net/index.php/Property_list Property list]-intro. Information on the ongoing implementation of scripting with JavaScript can be found in the [http://wiki.alioth.net/index.php/Category:Oolite_scripting Category page for scripting] (work in progress). If you want to design a new ship, you should have a look at the [http://wiki.alioth.net/index.php/OXP_howto_model OXP howto model]-page and the [http://wiki.alioth.net/index.php/OXP_howto_texture OXP howto texture]-page. And if you want to give it a behavior of its own, you should consult the [http://wiki.alioth.net/index.php/OXP_howto_AI OXP howto AI]-page. I suggest you try to read and understand these first. If you still have questions afterwards, there is always the [http://aegidian.org/bb/index.php Oolite Bulletin Board], where lots of friendly people usually are very willing to lend a helping hand and to answer lots of questions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want to write an OXP or add content to the Wiki, but some (or all) of the content was written by another author. What copyright issues do I face?|answer=Anything submitted to the Wiki is on the basis that anyone else may edit or fiddle with it. OXPs are submitted under the creative commons licence. The author (stricty speaking) owns the copyright, but licences users to use or distribute the OXP as long as they don't sell or charge for it. In practice virtually all OXP authors don't assert copyright and are pleased and flattered that somebody thinks their stuff is worth writing about or pinching to use in another OXP (its good manners to credit the orginal author in the readme though). I expect the author will be pleased if you want to add some background, but if you are in doubt, send him a PM asking him for permission. At the end of the day, Oolite is a fun project and everbody is doing stuff for it on that basis. (nicked wholesale from [http://aegidian.org/bb/viewtopic.php?p=44813#44813 Little_Bear's] post on the [http://aegidian.org/bb/index.php Oolite Bulletin Board])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diagnosing Problems ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Someone asked me for my log file. What is that, and where is it?|answer=In the test releases of Oolite, various diagnostic information is written to a file called Latest.log. Where it is depends on your operating system:&lt;br /&gt;
* '''Mac OS X''': ~/Library/Logs/Oolite/Latest.log (that is, in your home folder, open the folder named ''Library'', then ''Logs'', then ''Oolite''). Alternatively, select “Show Previous Log” from the “'''Oolite'''” menu in the menu bar when running Oolite.&lt;br /&gt;
* '''Windows''': in Oolite’s folder (typically in C:\''Program Files''), there is a folder called ''oolite.app'', which contains a folder called ''Logs''.&lt;br /&gt;
* '''Linux and other Unix-like systems''': ~/.Oolite/Logs (that is, in the hidden folder ''.Oolite'' in your home folder). If you’re using Nautilus or Konqueror—if you’ve never heard of them, you probably are—select Show Hidden Files from the View menu.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Questions ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have a question not answered here, where can I get help?|answer=Post your queries onto [http://aegidian.org/bb/index.php the friendliest board this side of Riedquat™]. Satisfaction is not guaranteed, but then what is, in this mixed-up universe? Help keep the board friendly by making sure your question isn't already answered here!&lt;br /&gt;
&lt;br /&gt;
If you want to report a bug, please read [http://aegidian.org/bb/viewtopic.php?t=3778 this]. Yes, all that work is a drag, but if nobody reports the bug it probably won’t get fixed.&lt;br /&gt;
&lt;br /&gt;
Or join us in #oolite, or #oolite-dev if you're working on Oolite or OXPs, on irc.oftc.net or ipv6.oftc.net.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29988</id>
		<title>Oolite FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_FAQ&amp;diff=29988"/>
		<updated>2011-12-22T03:55:00Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Where do I get the program? And what about the different versions that exist?|answer= The latest 'official' stable release is version 1.76, and is available on the [http://oolite.org/download.shtml oolite.org download page] for OS X, Windows, and Linux(x86). The last stable release made by the original programmer, Giles Williams (a.k.a. Aegidian) was 1.65 and is best available from his website [http://oolite.aegidian.org/ oolite.aegidian.org]. The latest test releases/development versions can be [http://developer.berlios.de/project/showfiles.php?group_id=3577 downloaded from BerliOS] with installers also available for OS X, Windows and Linux. More detailed information can be found on the [http://aegidian.org/bb/index.php Oolite Bulletin Board], in the respective sections for [http://aegidian.org/bb/viewforum.php?f=10 Oolite-Mac], [http://aegidian.org/bb/viewforum.php?f=9 Oolite-Linux] and [http://aegidian.org/bb/viewforum.php?f=8 Oolite-PC].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the point of the game?|answer=To fly from planet to planet, buying and selling goods, shooting pirates or committing acts of piracy. There's no goal other than perhaps to achieve the rank of ELITE.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I'm still confused, how do I play?|answer=It's a good idea to start with the [http://wiki.alioth.net/images/0/0d/Oolite_1.65_ReadMe.pdf.zip Oolite ReadMe] file for some basic information. For further information you may wish to consult the [http://wiki.alioth.net/index.php/Oolite_Instruction_Manual Oolite Instruction Manual] here on the wiki. A load of helpful information can be obtained from [http://wiki.alioth.net/index.php/Mr_Gimlet Mr Gimlet], the quite talkative dockmaster on Lave Station. If you're a fresh graduate from the Flight Academy on the way to your first ship, you should see him. It's also a good idea to have a look at Ian Bell's [http://www.iancgbell.clara.net/elite/manual.htm Flight Training Manual] for the original BBC Elite, although some of Oolite's control keys are different from the original, so be careful.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I configure my joystick or gamepad for Oolite in Linux?|answer=See [[Linux Joysticks and Gamepads]].}}&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What do the various colors represent on the radar?|answer=White - unpowered items that can't mass-lock the in-system drive (jumpdrive). Green/Yellow - navigation buoys. Yellow - powered craft. Red - powered craft identified as hostile. Green - space stations. Green/Red - thargoids. Purple - police. Blue/Red - police on intercept. Red/Yellow - active mine (about to detonate). Blue/Cyan - witchspace wormhole.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I keep crashing when trying to dock. How do I dock manually?|answer=Many young Jamesons have met a sticky end and had to be scraped from the docking port of Lave Station whilst attempting docking. Its fairly easy once you get the hang of it. Check the [[How_to_Dock|How to Dock]] guide from the Galactic Navy Flight Manual. Or you can get the [[Traffic_Control_OXP|Traffic Control OXP]] for friendly instructions given by the station crew as you try to dock.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=How do I make decent profits?|answer=Trade between a Poor or Average Agricultural and a Rich or Average Industrial planet. Write down the prices for everything on both planets and find out where you make the most profit per ton. You can also download the [http://wiki.alioth.net/images/d/df/OoliteRS_rev1.8.zip Oolite Reference Sheet], which features a table with the average prices. From there you can figure out whether you're on a buyers' or a sellers' market. The [http://wiki.alioth.net/images/9/9e/OoliteTradingChart2.zip Trading Chart] allows you to create your own statistics along your way.  [http://www.box.net/shared/bchkkloi32 This spreadsheet] highlights Poor Agricultural and Rich Industrial planets on a star chart (the spreadsheet is in .xls format and needs the Analysis Toolpak installed).  You can also earn credits by taking cargo contracts - courier goods of varied type and volume between planets near and far.  The spreadsheet helps assess whether you will be be able to complete the contract on time, and so build your reputation as an outstanding courier.  Another option is to fit one or more [http://wiki.alioth.net/index.php/Passenger_Berth Passenger Berths] in your ship and earn credits by transporting individuals who, for one reason or another, prefer not to use the commercial Passenger Liners to reach their destination.  As with cargo contracts, you can build your reputation up, which will result in your being offered more lucrative fares.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=It takes so long to get to the station after each jump. Can I do anything to speed the trip up?|answer=Well, space is huge. It is vast. I mean, have you ever imagined a football-field with an orange in one of the goals and a walnut in the other goal? If you haven't, then don't. It takes you nowhere. As will your ship's engine at normal speed. But then that's what your jumpdrive is for. Hit '''J''', and your journey speeds up. Unfortunately your jumpdrive doesn't work when other masses, like ships or planets, are nearby. They will 'lock' it. And in the 'corridor' between the witchpoint and the planet you are very likely to meet other ships. On the other hand there is no rule that you have to stick to the corridor. Just leave it sideways in any direction with your jumpdrive engaged for about 10-15 seconds, and head for the planet then. Makes your voyage much smoother. If you're a bounty-hunter and eager to meet lots of pirates, however, this is not your method of choice.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have already made my first intergalactic jump to Galaxy 2, but now I remember that I forgot my Zero-G cricket set/food blender/deadly lobstoid/edible arts graduate on Lave/Tionisla/Xeesle/Reesdice! Or I just found out that there are some more missions I'd like to do in the first galaxy. So how can I jump back to Galaxy 1?|answer=You can't. Unfortunately due to their very physical nature intergalactic wormholes allow for one-way travel only. Fortunately, though, the intergalactic wormhole in Galaxy 8 connects back to Galaxy 1. So you can go full circle. And you have to, if you want to return to the first galaxy. Of course that will cost you another 5000 credits for each galactic hyperjump. So the complete 8-Galaxies-Sightseeing-Tour has a pricetag of a total 40000 credits.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've got a trumble! First it was cute and fluffy. But then it started to multiply. Even worse, they started to eat everything on board and they are confusing my sights. I don't want them anymore! How can I get rid of them? Help!|answer=First of all, don't feel embarrassed. It happens to all commanders sooner or later. I mean, they're really cute and fluffy, aren't they? But seriously, there are several things you could try. E.g. sell them to other unsuspecting noobs. If you don't find enough willing buyers, you could use your escape capsule and abandon your infested ship, hoping that they haven't yet made it into the escape pod, of course. I mean, you can always hope, can't you? If that all doesn't work for you, just remember the old Klingon saying: 'Revenge is a dish that is best served cold.' Now consider that for trumbles it's just the opposite. Want some BBQ-sauce?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=My keyboard doesn't have a particular key used by Oolite, or I even want to change the keyboard layout completely to my liking. What can I do to change the keys?|answer=Oolite reads a key configuration file called keyconfig.plist that you can find at /AddOns/Config/keyconfig.plist; that is the Config-folder that you find inside your AddOns-folder; which is where you put your OXPs. (PC-users have to create the folder /AddOns/Config/ first and then drop a copy of the keyconfig.plist found in /Oolite.app/Contents/Resources/Config/ to this folder.) You can open this file in any text editor and change the ASCII values of the keys used to suit your own preferences. Information on the default keys is also found in the [http://wiki.alioth.net/index.php/Oolite_Keyboard_Controls Oolite Keybord Controls-documentation] here on the wiki.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I've completed a number of native and OXP missions and my [http://wiki.alioth.net/index.php/Cobra_Mk.3_%28Oolite%29 Cobra Mk. III] has a number of new and funky pieces of equipment. However, I'm planning a change of ship, what pieces of equipment will I lose as a result?|answer=Many missions award equipment as a result of either accepting or completing them. For the majority of ship equipment, trading ships will result in the equipment being sold as well, with a few exceptions. The '''Cloaking Device''' and the '''Mark Transponder Scanner''', available from the (native) Cloaking Device and (OXP) Assassins missions respectively are transferred to your new ship. The '''Naval Energy Unit''', although awarded with the completion of the (native) Thargoid Plans mission, will be sold when you trade ships. However, completing the mission allows you to buy these units from high TL systems.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I’m using ECM-hardened missiles, but enemies are still able to destroy them! I never seem to be able to destroy enemy hardheads, though. What gives?|answer=ECM-hardened missiles are not ECM-proof. The probability of a hardened missile being destroyed by ECM is 10%–34% depending on range, and if it is destroyed, there’s a 50% chance that it will detonate. This applies equally to hardened missiles fired by computer-controlled ships and those fired by the player. The most effective use of hardened missiles is to use them against relatively slow targets at moderate range, and only use them on nimble ships if you desperately need to force them to break of an attack. Also, don’t use your ECM until a missile is close to blast range (250 metres).&lt;br /&gt;
&lt;br /&gt;
Specifically, the ECM sends out four pulses with different ranges, at half-second intervals. Each pulse has a 10% chance of destroying each hardhead it encounters. For a missile fired at close range, that’s 1 - 0.9&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt; = 34.39% chance of being destroyed within two seconds.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=If I believe that sizes and distances in Oolite are given in meters, it is so ''unrealistic''. The planets have a diameter of only 30–50 kilometers, and the suns are only 1000 kilometers away. Can't we get a little more realism in space, please?|answer=First of all, remember that Oolite is a ''game'', not a ''space simulation''. This is because it ''wants to'' be a game, not a sim. So yes, sizes and distances are all messed up. Ships and stations are too big, planets and suns are too small, and too close to each other. But this is ''deliberately'' so, and we are not going to change it.&lt;br /&gt;
&lt;br /&gt;
The reason is simple: Realistic sizes and distances don't make a good game. In reality space is so huge that you never would meet anybody else on your journey. Imagine the dozen or so ships you meet in the 500 or so kilometers between witchpoint and planet spread over the realistic 150 '''million''' kilometers between Sun and Earth. Even if your direction is only one degree off the perfect line, you would miss them all. And how interesting would that be for the gameplay? And finally, if you had a realistically sized station in front of a realistically sized planet, how would you ever even notice it? A grain of sand in front of a, well, '''planet'''. The result would be players in complete loneliness and virtually no interaction with NPCs. An utterly, utterly boring game. Therefore it was the right decision to screw realism in the layout of the planetary systems in Elite and Oolite.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expanding the Game ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Speaking of OXPs, I've heard a lot about them. What are they? And where do I find them?|answer=OXP stands for 'Oolite eXpansion Pack'. As the name suggests, an OXP is an expansion to the game. It can contain virtually everything: new graphics for your ship, new ships for the player and/or the NPCs, new stations, new missions, new fun. To install an OXP you simply have to drag it into your AddOns-folder (only the OXP itself, not the folder it probably comes in). And as for finding them, you're already at the right place. All OXPs are now (or will become) accessible through the [[OXP|OXP-page of the wiki]]. Just follow the link. And if you fancy trying to create an OXP, the modifying Oolite FAQ can be found [[Modifying Oolite Informal FAQ|here]].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Are there any OXPs that are highly recommended? Or can I get a list of 'must-have' OXPs?|answer=This is a difficult one to answer, because it depends so much on personal taste. There is no list of 'must-have' or necessary OXPs that could be agreed upon by all—or even most—players or contributers. But if you have a look at the [http://aegidian.org/bb/index.php Oolite Bulletin Board], especially the [http://aegidian.org/bb/viewforum.php?f=2 Discussion]- and the [http://aegidian.org/bb/viewforum.php?f=4 Expansion Pack]-forums, you will surely find some topics about this question, and the personal answers of a couple of board members.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why does this and that not exist? ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Will there ever be an Oolite Massive Multi-player Online Role-Play Game (MMORPG)?|answer=At present Ahruman and Co. (the developers) have no plans to develop either Oolite or a separate branch to accommodate either an MMORPG or an MOG (Multi-player Online Game). This, however, doesn't mean one of you clever bods out there can't try ;-) We suggest you read [http://aegidian.org/bb/viewtopic.php?t=6173 this Bulletin Board thread] before you commence though, it may save you a lot of hair-tearing!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Can the range of hyperspace jumps/my fuelcapacity be increased?|answer=No. Jumprange in Oolite is hardcoded for a reason. The game would become less challenging and thus less fun. (Although I can imagine hacks that give unlimited fuel.) And don't forget that there are already various ways of refueling while you are in flight.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want Laser Cooling Boosters!|answer=There are none at the moment and the reason is simple. It would unbalance the game too much. If they were available for the player only, things would get too easy. And if the NPCs could get them, too, things would get too hard. It's all about maintaining a reasonable balance. So the ultimate advice on this is: Aim carefully. Don't waste your laser fire. Prevent overheating.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The other day I got killed when I launched from a Rock Hermit/Behemoth/whatever, and all the profits/kills that I made before were gone. Why couldn't I save there? Why only on main stations?|answer=First of all, congratulations to you for having internalized the ''Golden Rule'': save early, save often! Unfortunately in Oolite you can save and load a commander only on main stations. That's because they are the only 'fixed' objects in space. The rest of the system is populated anew each time you load a game and is not saved in your savefile. So chances are that the Rock Hermit or Behemoth you docked with when saving simply wouldn't exist when you load again, and you would find yourself in nirvana instead of in a safe haven. To prevent odd behavior like this saving and loading is prohibited anywhere else than in a main station. Alternatively you could install [http://wiki.alioth.net/index.php/Save_Anywhere Save Anywhere.oxp], which does exactly what it says on the tin. Note, however, that it is still in beta state. Read the documentation first.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to switch between different ships of mine, e.g. have a nice racer for the weekends, meanwhile leave my freighter docked somewhere and take it back on Monday. Why can't I do this?|answer=What else do you want? Custom paintjobs and interiors? A millionaire's spaceship-flotilla, one for every occasion? Who do you think you are? Jay Leno??? (Apologies if you ''are'' Jay Leno, but then you should have something else to do than playing computer games.) Let me tell you something: Space stations are no garages. Docking bays are limited, and the 'garage'-fees would be prohibitive. Imagine everybody else out there would want the same parking facilities!—Having said that, there is also a technical reason: A player can't have two ships and switch between them, because for the game the player ''is'' his ship, and you can ''be'' only one ship at a time. There is no way of storing a ship in your savefile and retrieving it later.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I am playing one of the test releases on a PC or Linux system and I want to see the cool new planet textures everyone is going on about. How do I do it?|answer=The next time you leave a station pause the game (press '''P'''), then press '''T'''. A message saying 'Procedural Textures On' will pop up. Unpause the game and the next time you jump and after all subsequent jumps and on exiting stations, you will experience the new textured planets.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I am playing Oolite 1.73.4 on a Mac system and I want to see the cool new planet textures everyone is going on about. How do I do it?|answer=Upgrade to the latest test version (currently 1.74.2). Then follow the instructions in the answer directly above.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Known Issues / Bugs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often some of the messages (either from other ships or from my ship) on the bottom of the screen remain and end up 'scrolling' up the screen to cover my gunsights. What's up with that?|answer=The 'sticky messages' bug is, unfortunately, a long standing issue in Oolite, still present in 1.65 and a few releases since. Starting with Oolite 1.71.1 this problem has been eliminated. If you prefer an older version of Oolite, flicking between views (either internal or external) is probably the quickest way to clear the messages.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Every so often I meet a ship or a cargopod that I can't lock on. My laser fire goes right through it. Sometimes it happens with a ship I have just killed. Sometimes after a while it even starts again firing at me, but I can't harm it anymore.|answer=The 'ghost ship' bug is another very old acquaintance in Oolite, and again the tireless developers are trying to rectify this. In the meantime, ignoring the ghost ships (or cargo pods) is the best thing you can do.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=The brightness of the rotating ships screen on the start-screen of the game has gone dark, I can hardly see them anymore. Do you know that, and what can I do about it?|answer=This is a problem with the lighting model for ships using shaders. The tireless developers are aware of the problem and are going to fix it. In the meantime, and as the problem only occurs when the shader settings are set to 'Full', you can work around it by setting them to 'Simple' or 'Off' in the Options-screen of Oolite (press '''F2''' and choose 'Game Options...'). Although of course you won't have the shader effects then.&lt;br /&gt;
&lt;br /&gt;
The alternative is to open the controls for your graphics card and boost the gamma setting of your card by 10-20%. This will have a marginal effect on your screen colours when using your computer, but it will make ships in-game a lot brighter and easier to see.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on Mac OS X 10.2 (Jaguar)?|answer=Sadly, no. The minimum OS requirement for Oolite on the Mac is now Mac OS X 10.3.9.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Does it work on the new Intel Macs?|answer=Yes, from 1.65 Oolite is Universal Binary.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=What's the latest version?|answer=The last stable release is 1.65. However, the latest test release—1.74.2 at the time of writing—is faster, more reliable, and offers better graphics than the stable version, and is the recommended download. Yes, we're aware this sounds silly. The last stable and latest test versions can be downloaded from [http://oolite.org/download.shtml Oolite's homepage]. More information can be found through the [http://aegidian.org/bb/viewforum.php?f=10 Oolite forums].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Is there a port for the PC or Linux?|answer=Yes. Both ports are stable and are at the same level of development as Oolite for the Mac. You can download Oolite for Windows and for Linux PCs from [http://oolite.org/download.shtml Oolite's homepage] (click on &amp;quot;show all platforms&amp;quot; if you can't see the version you're looking for). Information on test releases can be found through the Oolite forums, for the [http://aegidian.org/bb/viewforum.php?f=9 Linux version], and for the [http://aegidian.org/bb/viewforum.php?f=8 Windows version].}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing OXPs ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I would like to contribute to Oolite and write my own OXP, but unfortunately my knowledge in scripting/programming is limited. How can I get started?|answer=First of all the Oolite community welcomes all efforts to enhance and enrich their favorite game, so be our guest! Many of us have started with very little knowledge, but over time were able to write and release astonishing OXPs, so why shouldn't you? Anyway, scripting can be learned. Currently there are two scripting languages in use for Oolite, plist-scripting (sometimes referred to as legacy-scripting) and JavaScript. For any serious OXP-plans you will have to learn them. A general starting point is the [http://wiki.alioth.net/index.php/OXP_howto OXP howto]-page, which will link you to further documentation. For plist-scripting you should read the [http://wiki.alioth.net/index.php/OXP_howto_plist OXP howto plist]-page, and also the [http://wiki.alioth.net/index.php/Property_list Property list]-intro. Information on the ongoing implementation of scripting with JavaScript can be found in the [http://wiki.alioth.net/index.php/Category:Oolite_scripting Category page for scripting] (work in progress). If you want to design a new ship, you should have a look at the [http://wiki.alioth.net/index.php/OXP_howto_model OXP howto model]-page and the [http://wiki.alioth.net/index.php/OXP_howto_texture OXP howto texture]-page. And if you want to give it a behavior of its own, you should consult the [http://wiki.alioth.net/index.php/OXP_howto_AI OXP howto AI]-page. I suggest you try to read and understand these first. If you still have questions afterwards, there is always the [http://aegidian.org/bb/index.php Oolite Bulletin Board], where lots of friendly people usually are very willing to lend a helping hand and to answer lots of questions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I want to write an OXP or add content to the Wiki, but some (or all) of the content was written by another author. What copyright issues do I face?|answer=Anything submitted to the Wiki is on the basis that anyone else may edit or fiddle with it. OXPs are submitted under the creative commons licence. The author (stricty speaking) owns the copyright, but licences users to use or distribute the OXP as long as they don't sell or charge for it. In practice virtually all OXP authors don't assert copyright and are pleased and flattered that somebody thinks their stuff is worth writing about or pinching to use in another OXP (its good manners to credit the orginal author in the readme though). I expect the author will be pleased if you want to add some background, but if you are in doubt, send him a PM asking him for permission. At the end of the day, Oolite is a fun project and everbody is doing stuff for it on that basis. (nicked wholesale from [http://aegidian.org/bb/viewtopic.php?p=44813#44813 Little_Bear's] post on the [http://aegidian.org/bb/index.php Oolite Bulletin Board])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diagnosing Problems ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=Someone asked me for my log file. What is that, and where is it?|answer=In the test releases of Oolite, various diagnostic information is written to a file called Latest.log. Where it is depends on your operating system:&lt;br /&gt;
* '''Mac OS X''': ~/Library/Logs/Oolite/Latest.log (that is, in your home folder, open the folder named ''Library'', then ''Logs'', then ''Oolite''). Alternatively, select “Show Previous Log” from the “'''Oolite'''” menu in the menu bar when running Oolite.&lt;br /&gt;
* '''Windows''': in Oolite’s folder (typically in C:\''Program Files''), there is a folder called ''oolite.app'', which contains a folder called ''Logs''.&lt;br /&gt;
* '''Linux and other Unix-like systems''': ~/.Oolite/Logs (that is, in the hidden folder ''.Oolite'' in your home folder). If you’re using Nautilus or Konqueror—if you’ve never heard of them, you probably are—select Show Hidden Files from the View menu.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Questions ==&lt;br /&gt;
&lt;br /&gt;
{{FAQ|question=I have a question not answered here, where can I get help?|answer=Post your queries onto [http://aegidian.org/bb/index.php the friendliest board this side of Riedquat™]. Satisfaction is not guaranteed, but then what is, in this mixed-up universe? Help keep the board friendly by making sure your question isn't already answered here!&lt;br /&gt;
&lt;br /&gt;
If you want to report a bug, please read [http://aegidian.org/bb/viewtopic.php?t=3778 this]. Yes, all that work is a drag, but if nobody reports the bug it probably won’t get fixed.&lt;br /&gt;
&lt;br /&gt;
Or join us in #oolite, or #oolite-dev if you're working on Oolite or OXPs, on irc.oftc.net or ipv6.oftc.net.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_List&amp;diff=29772</id>
		<title>OXP List</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_List&amp;diff=29772"/>
		<updated>2011-12-05T08:56:40Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Sortable Table of OXPs */&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 beta 1.75:&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=2011-09-20&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=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=2011-03-10&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=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=2010-03-18&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=2011-07-17&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=2011-05-03&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=2011-11-04&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=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=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=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=2010-01-09&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:Pagroove|pagroove]], [[User:Svengali|Svengali]]&lt;br /&gt;
|date=2011-09-18&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=2010-03-08&lt;br /&gt;
|work=}}&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=[[Boa II Clipper Class]] is a development of the Boa Class Cruiser, adding a third engine at the cost of cargo space&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-01-27&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]] makes some standard equipment such as HUD/Scanner damageable in combat&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2011-07-10&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=2011-06-13&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=2011-08-10&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=2011-01-31&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=Ships&lt;br /&gt;
|desc=[[Chopped Cobra]] by Staer9. Chopped version of Griff's Cobra. 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=[[Cobra 3.5|Chopped Cobra]] by Aegidian. 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=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11014 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=[http://wiki.alioth.net/index.php/ChupacabraHUD 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=[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 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=11206 Coluber] is a medium size cargo ship,  fast, maneuverable, and armed well enough&lt;br /&gt;
|aut=Captain Beatnik&lt;br /&gt;
|date=2011-11-21&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-07-15&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Ships&lt;br /&gt;
|desc=[[Contractor ZZ1]] 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=2011-01-05&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=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10819 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-09-04&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-03&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-07-10&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=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=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=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=[http://www.aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11294 Enhanced Misjump] changes the effect of the jump tunnel when having a misjump&lt;br /&gt;
|aut=cim&lt;br /&gt;
|date=2011-12-04&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.2]] 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=2011-11-20&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[[Escort Contracts OXP|Escort Contracts v1.4.2]] 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=2011-11-20&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.2.1 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=2011-12-01&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 2 types of Thargoid ship, each of which packs surprises. Replaces the 'Poet' Frigate OXP&lt;br /&gt;
|aut=[[User:Uk Eliter|UK_Eliter]]&lt;br /&gt;
|date=2011-12-05&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=2011-07-29&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=[http://www.box.net/shared/d57y0uip74 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=[[User:Uk Eliter|UK_Eliter]]&lt;br /&gt;
|date=2011-12-05&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=[[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-05-30&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=[[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=2011-08-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=2011-11-19&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://www.boxcn.net/shared/5dqx22u06i Galaxy Info] helps you search for systems by criteria you select and will try to locate the nearest one&lt;br /&gt;
|aut=Okti&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=[[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=Equipment&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11198 GalDrive Programmers] allow to set the target system for a galaxy jump&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-11-22&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=[[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=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=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.boxcn.net/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=2011-12-04&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-05-11&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=2011-02-19&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;
|date=2010-06-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=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=2010-09-05&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-02-18&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]] 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=2011-08-07&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 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=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=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=2011-11-23&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=2010-06-13&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Missions&lt;br /&gt;
|desc=[http://www.boxcn.net/shared/9q1cbydgan 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=[http://wiki.alioth.net/index.php/Liners 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=2011-11-23&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/jtpt2vlol5 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=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=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=[[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=[[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=[http://wiki.alioth.net/index.php/MFLPS 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=HUDs&lt;br /&gt;
|desc=[[Milspec HUD|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=2010-07-08&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[[Misjump_Analyser|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-06-21&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=2009-12-14&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=Retextures&lt;br /&gt;
|desc=[[Neolite Ships]] is an Oolite ships replacement set&lt;br /&gt;
|aut=[[User:Simon B|SimonB]]&lt;br /&gt;
|date=2009-07-11&lt;br /&gt;
|work=}}&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=[[User:Uk Eliter|UK_Eliter]]&lt;br /&gt;
|date=2011-10-02&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=2011-04-14&lt;br /&gt;
|work=Y}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=HUDs&lt;br /&gt;
|desc=[http://wiki.alioth.net/index.php/Numeric_Style_HUDs Numeric Style HUDs] New invention/numeric gauges.[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9977 Info]&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-06-13&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=2010-06-24&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://www.box.net/shared/rrlm77ztzm Oolite en français] is a French Oolite localization&lt;br /&gt;
|aut=Pierre-Olivier&lt;br /&gt;
|date=2009-07-12}}&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:User:SwissMÃ¤c|SwissMäc]]&lt;br /&gt;
|date=2009-06-02&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Misc&lt;br /&gt;
|desc=[http://www.box.net/shared/p3engis1ds Oolite Italiano] is an Italian Oolite localization&lt;br /&gt;
|aut=[[User:Another commander|another_commander]]&lt;br /&gt;
|date=2010-06-15&lt;br /&gt;
|work=}}&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://www.box.net/shared/x9u5xoulkq Orbits] positions planets on orbits around the sun&lt;br /&gt;
|date=2010-07-01&lt;br /&gt;
|aut=[[User:Ebi|Ebi]]&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=2011-01-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 means to configure supported OXPs, to recognize errors, or to avoid clashes&lt;br /&gt;
|aut=[[User:Svengali|Svengali]]&lt;br /&gt;
|date=2011-07-16&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=[http://wiki.alioth.net/index.php/Pie_Chart_Style_HUDs Pie Chart Style HUDs] New invention=&amp;gt;pie gauges.[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9788 Info]&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=2011-08-24&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]] highlights offender and fugitive ships with custom IFF scanner colours&lt;br /&gt;
|aut=[[User:Capt. Murphy|Capt Murphy]]&lt;br /&gt;
|date=2011-09-24&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/xccp8ml5cq 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=[http://wiki.alioth.net/index.php/Q-Charger 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-03-04&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=2011-11-03&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=2011-10-19&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=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=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=2008-10-01&lt;br /&gt;
|work=N*}}&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=2010-06-06&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=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11123 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;
|date=2010-05-21&lt;br /&gt;
|work=}}&lt;br /&gt;
{{OXPSortableTableRow&lt;br /&gt;
|cat=Equipment&lt;br /&gt;
|desc=[http://wiki.alioth.net/index.php/Shield_Equalizer_%26_Capacitors_OXP Shield Equalizer] balances shield energy automatically. [http://wiki.alioth.net/index.php/Shield_Equalizer_%26_Capacitors_OXP Capacitors] store unused shield energy for use later&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=Retextures&lt;br /&gt;
|desc=[[Smivs%27_ShipSet|Smiv's Shipset]] re-skins the ships with a realistic look &amp;amp; non-shader lighting effects. Customisable Player Cobra3&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-08-26&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=[http://wiki.alioth.net/index.php/Sniper_Camera_System_HUD Sniper Camera System] Zoomable camera for surveillance and long-range sniping.[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10461 Info]&lt;br /&gt;
|aut=[[User:CommonSenseOTB|CommonSenseOTB]]&lt;br /&gt;
|date=2011-07-30&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=10515 Sniper Sight] is the Ooniverse's most configurable precision gun sight&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-12-04&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=10176 Sniper Scope MilHUD integrated] is an version of MilHUD with integrated Sniper Sight functionality&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-06-26&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=2011-10-06&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=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=2011-05-25&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=Weapons&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=2010-07-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=11054 SunBat] is a black, fast fighter, and even though it only packs one laser, is extremely formidable&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=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=2009-11-12&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=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11156 Talkative Space Compass] is an upgrade to the advanced space compass that shows the name of the current target&lt;br /&gt;
|aut=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=2009-10-01&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=2008-06-12&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;
|date=2006-06-13&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=2011-02-03&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=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=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=2010-12-23&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 3 levels of increased toughness of 'Baddies', and gives a backdrop for an immersive storyline&lt;br /&gt;
|aut=[[User:Smivs|Smivs]]&lt;br /&gt;
|date=2011-12-03&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=2011-08-22&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=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=2011-03-29&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-02-27&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://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=Mission&lt;br /&gt;
|desc=[[Victim 11]] extends the [[The Assassins Guild OXP|Assassins Guild]] mission with an additional target&lt;br /&gt;
|aut=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=2011-09-20&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=2010-06-20&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=[[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=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=[http://www.xeptatlssword.com Xeptatls 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-11-11&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-01-05&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=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=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=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=Mechanics&lt;br /&gt;
|desc=[http://www.box.com/shared/moreq536ht Interstellar Tweak] adds chance of empty interstellar space&lt;br /&gt;
|aut=[[User:UK_Eliter|UK_Eliter]]&lt;br /&gt;
|date=2011-12-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=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=Retexture&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=2011-10-20&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=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://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=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10631 Kestros &amp;amp; Rockhopper] are a new escort and transporter from Koneko Industries&lt;br /&gt;
|aut=[[User:RyanHoots|RyanHoots]]&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://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-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=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=Mission&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=Ambience&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11263 Povray Planets] adds procedurally generated textures to planets&lt;br /&gt;
|aut=submersible&lt;br /&gt;
|date=2011-11-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?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=[[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=11179 Sensible GalDrive] exchanges the Galactic Hyperdrive for a permanently-installable &amp;quot;Long-Range Hyperdrive&amp;quot;&lt;br /&gt;
|aut=Wildeblood&lt;br /&gt;
|date=2011-11-15&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=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=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=10690 Staer9's Shipset] will replace all the ships that the Neolite companion replaces&lt;br /&gt;
|aut=[[User:Staer9|Staer9]]&lt;br /&gt;
|date=2011-11-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=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=Ships&lt;br /&gt;
|desc=[http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=11082 Super Boa] is Koneko Industries' supercharged version of the standard trader's ship&lt;br /&gt;
|aut=[[User:RyanHoots|RyanHoots]]&lt;br /&gt;
|date=2011-11-01&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=2011-09-01&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=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.75.3&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=[[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>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Hotrods_OXP&amp;diff=29771</id>
		<title>Hotrods OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Hotrods_OXP&amp;diff=29771"/>
		<updated>2011-12-05T08:54:36Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Overview===&lt;br /&gt;
----&lt;br /&gt;
This Oolite expansion pack adds a collection of classic Elite ships with custom paint jobs. Includes also a large number of custom and standard racing vehicles and a gang of pirates with tiger stripes that somehow don't like the player.&lt;br /&gt;
Replaces (and fixes) Custompaints &amp;amp; Racers by Arexhack Heretic.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
----&lt;br /&gt;
Once installed, a variety of ships with customised paint jobs are added to the universe.&lt;br /&gt;
When going to anarchy systems, the player stands a chance of meeting the tiger gang.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
----&lt;br /&gt;
This OXP requires version 1.65 of Oolite for the extra ships, or version 1.75+ for the scripted encounters.&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
----&lt;br /&gt;
[http://www.box.com/shared/j2r6frlvq1 '''Hotrods v0.53'''] can be downloaded by clicking on the link.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
----&lt;br /&gt;
* [[OXP#Table_of_all_OXPs|Table of all OXPs]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ship-OXP}} {{mission-OXP}}&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=29386</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=29386"/>
		<updated>2011-11-15T13:42:52Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* playerStartedJumpCountdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. note that keystroke listening is not implemented. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; handler is called whenever the player saves a game. The transferred message is one of the following strings: 'standardSave', 'autoSave' or 'quickSave'&lt;br /&gt;
&lt;br /&gt;
 this.playerWillSaveGame = function(message : String)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Using this event is useful for storing temporary variables in missionVariables, just before the game gets saved. missionVariables are slow in use compared to normal JS variables, therefor their use should be minimised for efficient code. The main benefit of using missionVariables is that they are saved in a saved game.&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_LAUNCHING&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_IN_FLIGHT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future. The &amp;lt;code&amp;gt;seconds&amp;lt;/code&amp;gt; parameter is a number specifying the number of seconds the countdown is running for.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type, seconds)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_Player#alertCondition|player.alertCondition]]&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetDestroyed = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetLost = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. &amp;quot;from&amp;quot; is the screen it is changing from and &amp;quot;to&amp;quot; is the screen were it initially switched to. Note that the screen can have changed again in the meantime by the action of other oxps. Therefor it will generally better to test for the global 'guiScreen' to see which page is really on display now instead of using the 'to' parameter. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; handler is called when the guiScreen is about to change.  It only fires for the screens: GUI_SCREEN_EQUIP_SHIP, GUI_SCREEN_MANIFEST, GUI_SCREEN_MARKET and GUI_SCREEN_SHIPYARD. On these screens a script could change the content of the page to be displayed.  In Oolite 1.75 will 'GUI_SCREEN_SYSTEM_DATA' be added to this list. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenWillChange = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This handler works a bit different as other handlers. It fires for every installed oxp, until an oxp creates a mission screen during this handler. Than it stops. When the mission screen ends and there is no callback function that created a new mission screen, than the missionScreenOpportunity is send again to all installed oxps, starting with the oxp that used the mission screen as last one. All this means that when this handler fires, it is safe to show a mission screen and no further test are needed.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&amp;lt;br&amp;gt;&lt;br /&gt;
This handler for the woldScript is new since Oolite 1.74. After the event is sent to the shipScript, it is now also send to the worldScript with the added entity as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; handler is called when the player view changes, with a string to indicate which view the player is facing. Amongst its possible values are &amp;quot;VIEW_FORWARD&amp;quot;, &amp;quot;VIEW_AFT&amp;quot;, &amp;quot;VIEW_PORT&amp;quot;, &amp;quot;VIEW_STARBOARD&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_CUSTOM&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_GUI_DISPLAY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 this.viewDirectionChanged = function(viewString)&lt;br /&gt;
 {&lt;br /&gt;
   if (viewString == &amp;quot;VIEW_PORT&amp;quot;)&lt;br /&gt;
   {&lt;br /&gt;
      // Your code here&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All the initially planned events have been implemented in 1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Shipdata.plist&amp;diff=29119</id>
		<title>Shipdata.plist</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Shipdata.plist&amp;diff=29119"/>
		<updated>2011-10-23T10:27:34Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* missile_role */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''shipdata.[[plist]]''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ship keys=&lt;br /&gt;
The following keys are used by all ships&lt;br /&gt;
==accuracy==&lt;br /&gt;
Used with missiles it has influence on tracking of target. Allowed values with missiles are between 0.0 and 10.0. When not defined, the system assings to the missile the accuracy value of 0.0, which corresponds to the standard missile tracking behaviour.&lt;br /&gt;
&lt;br /&gt;
Used with NPC ships it enlarges the chance of shooting at greater distances. Value with NPC ships is between -5 and 10.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;accuracy&amp;quot; = 8;&lt;br /&gt;
&lt;br /&gt;
== aft_eject_position ==&lt;br /&gt;
Determines the XYZ point on the model from which cargo is ejected.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;aft_eject_position&amp;quot; = &amp;quot;0.0 -4.5 -23.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== aft_weapon_type ==&lt;br /&gt;
Assigns the ship's laser. &lt;br /&gt;
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;aft_weapon_type&amp;quot; = &amp;quot;WEAPON_BEAM_LASER&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== ai_type ==&lt;br /&gt;
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;ai_type&amp;quot; = &amp;quot;pirateAI.plist&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== auto_ai ==&lt;br /&gt;
This will autoswitch the ai to the appropriate one if a ship was added in one of its standard roles like trader or pirate. (true by default). See also the comment in the autoAIMap.plist inside Oolite. Defining auto_ai is only necessary when using one of the standard roles mentioned in the autoAIMap.plist for your ship. auto_ai does nothing for ships with custom roles.&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;auto_ai&amp;quot; = yes;&lt;br /&gt;
This auto_ai switch is also used for bounties. When auto_ai is false the ship will keep the bounty as defined for the ship but, when true and the ship is added in one of the populator roles, the ship will get the default bounty for that role.&lt;br /&gt;
&lt;br /&gt;
== beacon ==&lt;br /&gt;
A special feature for beacons and navigation aids.&lt;br /&gt;
The string can be anything - the first letter is what's displayed in the advanced space compass.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;quot;beacon&amp;quot; = &amp;quot;X-code&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
The following characters are known to be used as identifiers for '''stations and other fixed objects''' (listed with their respective OXPs):&lt;br /&gt;
&lt;br /&gt;
 A = Astromine (Commies)&lt;br /&gt;
 B = Black Monk Monastery (Black Monks)&lt;br /&gt;
     A Seedy Space Bar (Random Hits)&lt;br /&gt;
     Nemeanian Military Base (Assassins)&lt;br /&gt;
 C = CoachWhip hOopy Casino (Hoopy Casino)&lt;br /&gt;
     Pi-42 Con Store (Your Ad Here)&lt;br /&gt;
 F = Collective Zero-G Factory (Commies)&lt;br /&gt;
     Collective SLAPU (Commies)&lt;br /&gt;
     Imperial AstroFactory (Dictators)&lt;br /&gt;
 G = Griff Research Ltd Orbital Base (Assassins)&lt;br /&gt;
     GRS Buoy Factory (GRS Buoy Repair)&lt;br /&gt;
 H = Hacker Outpost (Anarchies)&lt;br /&gt;
     Deep Space Hoopy Hotel : Hades Branch (Assassins)&lt;br /&gt;
 L = The Link Base (Ionics)&lt;br /&gt;
     Deep Space Hoopy Hotel : Lernean Branch (Assassins)&lt;br /&gt;
 N = Main Station Beacon&lt;br /&gt;
 P = Tianve Pulsar Monitoring Station (Tianve)&lt;br /&gt;
 R = Rock Hermit (Rock Hermit Locator)&lt;br /&gt;
     Augeaian Orbital Repair Facility (Assassins)&lt;br /&gt;
     Rebel Outpost (Assassins)&lt;br /&gt;
 Q = Hesperides Wiseguy Way-Station (Assassins)&lt;br /&gt;
 S = Navy SecCom Station (Galactic Navy)&lt;br /&gt;
     Special Branch Orbital Headquarters (Assassins)&lt;br /&gt;
 T = Taranis Corporation HQ (Taranis)&lt;br /&gt;
 W = Witchpoint Buoy&lt;br /&gt;
 Z = Free Trade Zone (Free Trade Zone)&lt;br /&gt;
&lt;br /&gt;
The following characters are known to be used for '''non-station objects that may appear anywhere''':&lt;br /&gt;
&lt;br /&gt;
 H = Homing Beacon (ett Homing Beacon)&lt;br /&gt;
&lt;br /&gt;
The following characters should not be assigned easily to stations or ships that are supposed to appear anywhere, because they are likely to be used for ships in other OXPs:&lt;br /&gt;
&lt;br /&gt;
 M = Mark&lt;br /&gt;
 T = Target&lt;br /&gt;
 V = Victim&lt;br /&gt;
 X = general marker&lt;br /&gt;
 + = general marker&lt;br /&gt;
&lt;br /&gt;
We can also use custom icons with the compass. For that you must define a key in descriptions.plist with the same name as the beacon definition.  Than define the icon in the same way as missile icons. (An array of x/y-coordinates that will be connected by lines). You can find more info at [http://aegidian.org/bb/viewtopic.php?f=4&amp;amp;t=9529 the Oolite BB].&amp;lt;br&amp;gt;&lt;br /&gt;
Example in shipdata:&lt;br /&gt;
 &amp;quot;beacon&amp;quot; = &amp;quot;fuelStation_location&amp;quot;;&lt;br /&gt;
Example in descriptions.plist&lt;br /&gt;
 &amp;quot;fuelStation_location&amp;quot; =  (1, 2, -3, 2, -3, -4, 3, -4, 3, 4,  -3, 4, -3, 3, 2, 3, 2, -3, 1, -3 );&lt;br /&gt;
Before 1.75 the ships primary role was used for defining the icon name in descriptions.plist, but since 1.75 the beacon name itself is used.&lt;br /&gt;
&lt;br /&gt;
== bounty ==&lt;br /&gt;
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law . This bounty setting is overruled when adding ships in one of the populator roles like pirate, trader etc. Pirates are default added with a small bounty and traders are added clean. However, like the player, also the npc bounty can raise when attacking other clean ships or police vessels.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;bounty&amp;quot; = 50;&lt;br /&gt;
&lt;br /&gt;
== cargo_carried ==&lt;br /&gt;
Determines the type of cargo carried as described in [[commodities]] and [[commodities.plist]].  Only one type can be specified. This key can be used for both ships and barrels.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cargo_carried&amp;quot; = &amp;quot;Gold&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
When used for barrels, it is also possible to add several units in a pod by preceding the commodity name with a space separated number. Adding more than a ton in a pod is not possible. Defining a quantity for ships is not possible this way.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to define a mix of random cargo for ships by using the string &amp;quot;SCARCE_GOODS&amp;quot; or &amp;quot;PLENTIFUL_GOODS&amp;quot;, instead of a commodity name. The first selects random goods that are scarce at the main station, the second selects goods that are plentiful present at the main station. (Populator added traders heading toward the station always have scarce goods while traders heading from the main station always have plentiful goods on board. It would be wise to stick to this rule with custom ships.)&amp;lt;br&amp;gt;&lt;br /&gt;
To make cargo_carried working for ships, the cargo_type must be &amp;quot;CARGO_NOT_CARGO&amp;quot; to define the ship not being cargo itself. (see below)&lt;br /&gt;
&lt;br /&gt;
== [[cargo_type]] ==&lt;br /&gt;
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID, CARGO_ALLOY, CARGO_MINERALS, CARGO_CARRIED) or a ship, as below, which is not cargo. Works since Oolite 1.71 also for pods spawn by a script. CARGO_CARRIED needs in addition an second key cargo_carried that specifies the cargo. (see below)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cargo_type&amp;quot; = &amp;quot;CARGO_RANDOM&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
More control of contents of barrels is available through the CARGO_CARRIED string.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cargo_type&amp;quot; = &amp;quot;CARGO_CARRIED&amp;quot;;&lt;br /&gt;
 &amp;quot;cargo_carried&amp;quot; = &amp;quot;4 Gold&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
You can also specify the cargo of a ship. use &amp;quot;cargo_type&amp;quot; = CARGO_NOT_CARGO  and define the contents of the barrels it will give with &amp;quot;cargo_carried&amp;quot;. In that case there must be no quantity defined, only the type of [[commodity]].&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cargo_type&amp;quot; =  &amp;quot;CARGO_NOT_CARGO&amp;quot;;&lt;br /&gt;
 &amp;quot;cargo_carried&amp;quot; = &amp;quot;Computers&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Another notable type of cargo is the scripted item CARGO_SCRIPTED_ITEM, as examplified by the cloacking device. When CARGO_SCRIPTED_ITEM is defined, the barrels will trigger scooping events for the ship-scripts. Other barrels don't trigger scooping events.&amp;lt;br&amp;gt;&lt;br /&gt;
The cargo barrels are stored in the ships hold like normal barrels when a cargo was defined for them with the JS method &amp;quot;setCargo&amp;quot;. Without defined content, scripted barrels are removed after scooping. Scripted cargo works with any object that can be scooped. When you have scripted escape pods that must be preserved after scooping, fill it with one ton of Slaves.&lt;br /&gt;
&lt;br /&gt;
== cloak_automatic ==&lt;br /&gt;
When false, the cloak of npc ships will never get activate automatic during combat, but is only activated by JS script commands. (True by default) Key added with Oolite 1.75&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cloak_automatic&amp;quot; = no;&lt;br /&gt;
&lt;br /&gt;
== cloak_passive ==&lt;br /&gt;
When true, any firing of laser will deactivate the cloak. (False by default) &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;cloak_passive&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
==conditions==&lt;br /&gt;
With this option you can include an array of extra conditions when to add a ship. When the conditions are not met, the ship does not appear in a selection list by role. Useful when you have a standard ship like a trader that should only be added in certain systems.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;conditions&amp;quot; = (&lt;br /&gt;
                 &amp;quot;systemGovernment_number equal 3&amp;quot;,&lt;br /&gt;
                 &amp;quot;systemEconomy_number lessthan 4&amp;quot;&lt;br /&gt;
                );&lt;br /&gt;
&lt;br /&gt;
== counts_as_kill ==&lt;br /&gt;
Killing this ship will not count as a kill by the player when set to false. (Default is true). Using this key prevents awarding kills to all kind of cargo, debris etc. Key is added with Oolite 1.75&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;counts_as_kill&amp;quot; = no;&lt;br /&gt;
&lt;br /&gt;
== custom_views==&lt;br /&gt;
Will add the ability to display custom POVs of the player ship, in game toggled by pressing '''v'''.  &lt;br /&gt;
&lt;br /&gt;
This is an array with any number of entries, one for each view, each with:&lt;br /&gt;
*a '''view_description''' - giving a textual description of the view. &lt;br /&gt;
*a '''view_position''' - relative to the origin of the ship model. &lt;br /&gt;
*a '''view_orientation''' - this is a [[Quaternions|quaternion]] expressing a rotation from directly forwards. &lt;br /&gt;
*a '''weapon_facing''' - FORWARD, AFT, PORT or STARBOARD. The weapon that will fire when that view is selected.&lt;br /&gt;
&lt;br /&gt;
The view_position is best chosen by selecting a facet, line or point in Wings and copying down the coordinates. &lt;br /&gt;
&lt;br /&gt;
For the view_orientation you will probably need a calculator but the basic method is to choose a unit vector (x y z) as the axis for a rotation then calculate the four values W X Y and Z for the quaternion as follows: &lt;br /&gt;
&lt;br /&gt;
W = the cosine of half the angle rotated about the axis xyz&amp;lt;br /&amp;gt;&lt;br /&gt;
X = the sine of half the angle rotated about xyz, multiplied by x&amp;lt;br /&amp;gt;&lt;br /&gt;
Y = the sine of half the angle rotated about xyz, multiplied by y &amp;lt;br /&amp;gt;&lt;br /&gt;
Z = the sine of half the angle rotated about xyz, multiplied by z &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Four decimal places are probably enough accuracy for these values.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  custom_views =&lt;br /&gt;
 (&lt;br /&gt;
     {&lt;br /&gt;
         view_description = &amp;quot;Front View&amp;quot;;&lt;br /&gt;
         view_orientation = &amp;quot;0.0 0.0 1.0 0.0&amp;quot;;&lt;br /&gt;
         view_position = &amp;quot;0.0 30.0 200.0&amp;quot;;&lt;br /&gt;
         weapon_facing = &amp;quot;FORWARD&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
== death_actions ==&lt;br /&gt;
Gives an opportunity to have a ship's death trigger one or a set of [[Shipdata.plist#script_actions|script_actions]]. It contains an array of legacy script expressions.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;death_actions&amp;quot; = (&amp;quot;spawn: explosive_shrapnel 1&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
== debris_role ==&lt;br /&gt;
Specifies the kind of debris an asteroid or boulder generates. When not defined they default to generating 'ships' with role &amp;quot;boulder&amp;quot; or &amp;quot;splinter&amp;quot;.  (Key added with Oolite 1.74)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;debris_role&amp;quot; = &amp;quot;my_boulder_foo&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
== density ==&lt;br /&gt;
This real value is used to calculate a ships total mass. Default is 1.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;density&amp;quot; = 1.5;&lt;br /&gt;
&lt;br /&gt;
== display_name ==&lt;br /&gt;
States the model's name as it will be known to the ID computer. By default this is the same as &amp;quot;name&amp;quot;. Added for multilingual oolite.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;display_name&amp;quot; = &amp;quot;ExampleShip Mark IX&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== energy_recharge_rate ==&lt;br /&gt;
The rate at which energy is replenished.  Stations are at 100, Adders at 2. (Default value: 1)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;energy_recharge_rate&amp;quot; = &amp;quot;3.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== escape_pod_model ==&lt;br /&gt;
With this entry ships can have custom escape pods. (starting from version 1.65) You have to specify the '''role''' of your custom escape pod (not its entry-name).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;escape_pod_model&amp;quot; = &amp;quot;custom_pod&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== escorts ==&lt;br /&gt;
Determines how many escorts an NPC shall have. Maximum is 16.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;escorts&amp;quot; = 4;&lt;br /&gt;
Warning: Ships with scanClass = CLASS_POLICE should always have escorts set to zero. Oolite will set this value here and add wingmans instead of escorts. Without special scripting escorts won't escort a mother with CLASS_POLICE.&amp;lt;br&amp;gt;&lt;br /&gt;
For ships that are added in a trader role, the populator can decide to subtract escorts from the defined value when the system is estimated as safe. &lt;br /&gt;
&lt;br /&gt;
== escort_role ==&lt;br /&gt;
Assigns the specific ship type to be the escort, by the ship's role. (Before Oolite 1.74 only the name &amp;quot;escort-role&amp;quot; is accepted.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;escort_role&amp;quot; = &amp;quot;my_custom_escort_role&amp;quot;;&lt;br /&gt;
Escort ships will use the escortAI.plist unless &amp;quot;auto_ai&amp;quot; is set to false.&lt;br /&gt;
&lt;br /&gt;
== escort_ship ==&lt;br /&gt;
Assigns the specific ship type to be the escort, by the ship's name. (Before Oolite 1.74 only the name &amp;quot;escort-ship&amp;quot; is accepted.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;escort_ship&amp;quot; = &amp;quot;cobramk1&amp;quot;;&lt;br /&gt;
Escort ships will use the escortAI.plist unless &amp;quot;auto_ai&amp;quot; is set to false.&lt;br /&gt;
&lt;br /&gt;
== exhaust ==&lt;br /&gt;
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo&lt;br /&gt;
&lt;br /&gt;
 x y z width height length&lt;br /&gt;
&lt;br /&gt;
'''x y z''' is the position relative to the origin of the main model. &lt;br /&gt;
&lt;br /&gt;
'''width''' in meters, how wide a plume is on x axis. (x radius)&lt;br /&gt;
&lt;br /&gt;
'''height''' in meters, how tall a plume is on y axis. (y radius)&lt;br /&gt;
&lt;br /&gt;
'''length''' in meters, how long a plume is on z axis. (This value is in current Oolite versions ignored. Length is now derived from the ships speed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide and 4 m tall. (length info is ignored)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;exhaust&amp;quot; = (&lt;br /&gt;
     &amp;quot;5 0.0 -25 6.0 4.0 10.0&amp;quot;,&lt;br /&gt;
     &amp;quot;-5 0.0 -25 6.0 4.0 10.0&amp;quot;&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
== extra_cargo ==&lt;br /&gt;
Cargobay extension size can be customised. This is the amount the cargo capacity increases when an extra cargobay is installed. Default value is 15. It is only used with player ships.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;extra_cargo&amp;quot; = 25;&lt;br /&gt;
&lt;br /&gt;
== forward_weapon_type ==&lt;br /&gt;
Assigns the ship's laser. &lt;br /&gt;
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;forward_weapon_type&amp;quot; = &amp;quot;WEAPON_BEAM_LASER&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== frangible ==&lt;br /&gt;
Determines if eventual sub-entities are &amp;quot;loose&amp;quot;. By default any given object is already frangible, so the use of this line must be to negate that. &lt;br /&gt;
If set to false, the object plus subentities will be regarded as a single object.&lt;br /&gt;
If set to true, sub entities can be destroyed seperately from the main object. Frangible sub-entities can have a max_energy and an energy_recharge_rate that is independently set from the main entity.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;frangible&amp;quot; = no;&lt;br /&gt;
 &lt;br /&gt;
== fragment_chance ==&lt;br /&gt;
Determines if a ship breaks apart into fragments and generates parts with role &amp;quot;wreckage&amp;quot;. By chance factor, or true/false. Default is 90% chance.&lt;br /&gt;
The amount of wreckage is based on the ships mass with a maximum of 3. Wreckage is scaled to match the ships size but is very short living. (0.25s -&amp;gt; 1.25s)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;fragment_chance&amp;quot; = no;&lt;br /&gt;
 &lt;br /&gt;
== fuel ==&lt;br /&gt;
Determines an NPC ship's fuel storage, which will affect how it uses its Fuel Injectors.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;fuel&amp;quot; = 70;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== has_cloaking_device ==&lt;br /&gt;
Determines if a ship has a cloacking device installed. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_cloaking_device&amp;quot; = 0.5;&lt;br /&gt;
&lt;br /&gt;
== has_ecm ==&lt;br /&gt;
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_ecm&amp;quot; = 0.5;&lt;br /&gt;
or&lt;br /&gt;
 &amp;quot;has_ecm&amp;quot; = no;&lt;br /&gt;
 &lt;br /&gt;
== has_energy_bomb ==&lt;br /&gt;
Determines if a ship has an energy bomb. If it has one, it might launch a mine with role &amp;quot;energy_bomb&amp;quot; as part of his fleeing behavior. currently the only build-in mine with this role is the q-bomb.&amp;lt;br&amp;gt;A ship will only deploy the bomb when it has also fuel-injectors and some fuel left to avoid getting killed by its own bomb. On average it will try to deploy the bomb once every 100 seconds during fleeing.&lt;br /&gt;
&lt;br /&gt;
Example:		&lt;br /&gt;
 &amp;quot;has_energy_bomb&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== has_escape_pod ==&lt;br /&gt;
Determines if a ship has an escape pod. Can be either a boolean value, or a number from 0 to 1 expressing the likelihood of the equipment being present. Starting with version 1.65 ships can have multiple escape pods. To specify more than one escape pod, '''has_escape_pod''' must be set to a numeric value corresponding to the escape pods present on board.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 has_escape_pod = no;&lt;br /&gt;
 has_escape_pod = 0.75;&lt;br /&gt;
 has_escape_pod = 3;&lt;br /&gt;
&lt;br /&gt;
== has_fuel_injection ==&lt;br /&gt;
Determines if a ship has the witchdrive fuel injector.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_fuel_injection&amp;quot; = 0.99;&lt;br /&gt;
&lt;br /&gt;
==has_military_jammer==&lt;br /&gt;
Determines if a ship has a military jammer. Ships equipped with this item become invisible on the radar. &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_military_jammer&amp;quot; = 0.75;&lt;br /&gt;
&lt;br /&gt;
==has_military_scanner_filter==&lt;br /&gt;
Determines if a ship has a military jammer filter. Ships equipped with this item can see ships equipped with a military jammer on the radar. &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_military_scanner_filter&amp;quot; = 0.50;&lt;br /&gt;
&lt;br /&gt;
== has_scoop ==&lt;br /&gt;
Determines if a ship has a fuel/cargo scoop.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_scoop&amp;quot; = no;&lt;br /&gt;
&lt;br /&gt;
== has_scoop_message ==&lt;br /&gt;
A key for cargo. Determines if a barrel generates a default scoop message when scooped. Default is true, but setting it to false suppresses any messages, so a scripts can generate its custom messages on scooping. (Added with Oolite 1.74)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_scoop_message&amp;quot; = no;&lt;br /&gt;
&lt;br /&gt;
== has_shield_booster==&lt;br /&gt;
Determines if a ship has the shield booster. (enlarges max energy with 256)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_shield_booster&amp;quot; = 0.80;&lt;br /&gt;
&lt;br /&gt;
== has_shield_enhancer ==&lt;br /&gt;
Determines if a ship has the coveted shield enhancer. (enlarges max energy with 256 and raises energy recharge rate with 50%)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_shield_enhancer&amp;quot; = 0.45;&lt;br /&gt;
&lt;br /&gt;
== heat_insulation ==&lt;br /&gt;
This real number gives the amount of heat insulation of a ship. Default is 1.0 Only for NPC ships. Playes ships can have the equipment EQ_HEAT_SHIELDING with gives the player than a heat_insulation of 2.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;heat_insulation&amp;quot; = &amp;quot;2.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== hud ==&lt;br /&gt;
Used for a playership, to assign another HUD than the default one.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;hud&amp;quot; = &amp;quot;specialhud.plist&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== hyperspace_motor ==&lt;br /&gt;
If set to false / NO, it will stop ships from executing normal hyperspace jump (player ships will still be able to execute galactic jumps). Default = true / YES. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 &amp;quot;hyperspace_motor&amp;quot; = no;&lt;br /&gt;
&lt;br /&gt;
 hyperspace_motor=NO;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== hyperspace_motor_spin_time ==&lt;br /&gt;
Used to modify jump countdown time. Default = 15.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 &amp;quot;hyperspace_motor_spin_time&amp;quot; = &amp;quot;15&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==is_external_dependency==&lt;br /&gt;
This key should be added to ships that use like_ship references to ships in other oxps but don't depend on them. Normally will Oolite write errors in the log when it can't resolve a like_ship reference. When this key is set to YES, it will suppress the error generation.&amp;lt;br&amp;gt;WARNING: only set this key to YES when the model won't get added to the system without the other oxp installed or you will miss a valuable warning.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;is_external_dependency&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
==is_submunition==&lt;br /&gt;
Key added for missiles with multiple warheads. When this key is set and the entity is spawn or fired by a missile, it inherits its parent as owner. This key must be set so the player will be awarded for a kill by submunition.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;is_submunition&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
==is_template==&lt;br /&gt;
Set this to yes/yes; for ships which are only used through like_ships and are not intended to be used directly. If your (otherwise working) OXP generates warnings about ships with no roles or model attribute, you probably need this.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;is_template&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== laser_color ==&lt;br /&gt;
Determines a ship's laser colour.&lt;br /&gt;
&lt;br /&gt;
As colour you can use a [[Materials in Oolite#Colour specifiers|colour specifier]] or a [[Materials in Oolite#Named colours|named colour]]. The game requires laser colours to be reasonably bright; if the brightest colour component is less than 0.5, the colour will be brightened.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;laser_color&amp;quot; = &amp;quot;cyanColor&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== launch_actions ==&lt;br /&gt;
Triggers a script on the entity just after setup, also when called by spawn and addShip methods.&lt;br /&gt;
Can be used to change to a custom AI, when a ship is generated by standard role. &lt;br /&gt;
[[Shipdata.plist#script_actions|script_actions]]&lt;br /&gt;
&lt;br /&gt;
 Example:&lt;br /&gt;
 &amp;quot;role = trader&amp;quot;;&lt;br /&gt;
 &amp;quot;launch_actions&amp;quot; = (&lt;br /&gt;
   &amp;quot;setAITo: pirateAI.plist&amp;quot;&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== like_ship ==&lt;br /&gt;
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet. With '''like_ship''' you can reference to another existing shipdata entry, and then only specify the differences to the 'original'. It takes the unique '''entry-identifier''' as argument. Of course you have to make sure that the 'original' you are referring to actually exists, or Oolite won't be able to create your ship.&lt;br /&gt;
&lt;br /&gt;
Works well together with the [[#is_template|is_template]]-key.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;my_ship&amp;quot; = {&lt;br /&gt;
 &amp;quot;like_ship&amp;quot; = &amp;quot;adder&amp;quot;;&lt;br /&gt;
 &amp;quot;max_flight_speed&amp;quot; = &amp;quot;700&amp;quot;;&lt;br /&gt;
 &amp;quot;name&amp;quot; = &amp;quot;Freak Turbo Adder&amp;quot;;&lt;br /&gt;
 },&lt;br /&gt;
&lt;br /&gt;
== likely_cargo ==&lt;br /&gt;
This is only used for ships with role asteroid and pirate. With asteroids it gives the likely number of boulders it breaks into. With pirates added by the [[System Populator]]: when lower than 16 it is the cargo, when higher than 15, it is changed in a random value between 0 and 15. This value is overridden by the actual scooped cargo if the pirate had scooped something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;likely_cargo&amp;quot; = &amp;quot;2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
See [[Materials in Oolite]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_cargo ==&lt;br /&gt;
Sets the ship's cargo limit. On explosion of trader ships added by the [[System Populator]], 10% of this value is used as likely cargo. When the result is lower than 16 it is the cargo, when higher than 15, it is changed in a random value between 0 and 15.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_cargo&amp;quot; = &amp;quot;5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_energy ==&lt;br /&gt;
Sets the ship's energy value. (Default value: 200)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_energy&amp;quot; = &amp;quot;300&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_pitch ==&lt;br /&gt;
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_flight_pitch&amp;quot; = &amp;quot;2.2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_roll ==&lt;br /&gt;
Sets roll factor. Will usually range from 0.8 to 4.6.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_flight_roll&amp;quot; = &amp;quot;4.2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_speed ==&lt;br /&gt;
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_flight_speed&amp;quot; = &amp;quot;320&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_flight_yaw ==&lt;br /&gt;
Sets yaw factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0 When no value is defined it will use the same value as max_flight_pitch&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_flight_yaw&amp;quot; = &amp;quot;2.2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_missiles ==&lt;br /&gt;
Sets a ship's missile limit. Maximum allowable value for the player is 16 and for npc ships 32. When not defined, the value with &amp;quot;missiles&amp;quot; is used as max_missiles. When defining more than a few missiles, it could be wise to also define value for &amp;quot;missile_load_time&amp;quot; to avoid massive missile launches. npc ships are more likely to fire missiles the more they carry.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_missiles&amp;quot; = &amp;quot;1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== missile_launch_position ==&lt;br /&gt;
Determines the XYZ point on the model from which a missile is launched.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;missile_launch_position&amp;quot; = &amp;quot;0.0 -2.25 10.0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
This position should lie outside the bounding box of the core entity and not just outside of the ships mesh.  Default value: (0, -4, 1)&amp;lt;br&amp;gt;&lt;br /&gt;
If the position does lie inside the bounding box, the launch position is shifted along its direction until the launched missile lies outside the bounding box of the central entity. (Bounding boxes of subentities are ignored) The collision radius of the launched missile is taken into account. The collision radius for a plain missile is 4.52 meter.&lt;br /&gt;
&lt;br /&gt;
== missile_load_time ==&lt;br /&gt;
Defines the time in seconds before a new missile is ready to fire after one is fired. Mainly useful for npc ships that have many missiles.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;missile_load_time&amp;quot; = &amp;quot;2.1&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== missiles ==&lt;br /&gt;
Sets the number of missiles the ship is equipped with on ship creation. e.g. you can set this at zero and than use a dedicated script to fill up the bay with specific missiles.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;missiles&amp;quot; = &amp;quot;0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== missile_role ==&lt;br /&gt;
Defines the type of missiles (or mines) an NPC ship is provided with. Default is &amp;quot;EQ_MISSILE&amp;quot;. When missiles are loaded on ship creation, 90% will be of this type and 10% will be random, chosen from all possible NPC missiles and mines. Also affects the javascript [[Oolite_JavaScript_Reference:_Ship#selectNewMissile|selectNewMissile()]] command.&lt;br /&gt;
The string defined inside missile_role needs both to be defined inside [[equipment.plist]], and be inside the '''roles''' property of the missile/mine shipdata entry. &lt;br /&gt;
&lt;br /&gt;
To assign a specific missile type to a newly bought player ship, its dependancies must be defined inside [[shipyard.plist]].&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;quot;missile_role&amp;quot; = &amp;quot;EQ_THARGON&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== model ==&lt;br /&gt;
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;model&amp;quot; = &amp;quot;example_ship.dat&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== name ==&lt;br /&gt;
States the model's name as it will be known to the ID computer.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;name&amp;quot; = &amp;quot;ExampleShip Mark IX&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== no_boulders ==&lt;br /&gt;
With older versions, scripted asteroids had no boulders by default. Starting with 1.70 all asteroids produce boulders when hit by a mining laser. no_boulders can overwrite this to emulate the old situation. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;no_boulders&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== pilot ==&lt;br /&gt;
Gives the ship a predefined pilot, defined in [[characters.plist]]. Can eject in pod, if available, and be captured.&amp;lt;BR&amp;gt;&lt;br /&gt;
By default every object starts with a pilot except buoys, missiles, cargo and rocks. By defining a specific pilot,  any default pilot is replaced or a pilot is added to previously unpiloted objects.&lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;pilot&amp;quot; = &amp;quot;constrictor-mission-thief&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
When no pilot is defined, Oolite will create a random pilot based on the ships role. For custom roles this means that Oolite has no clue and the pilot might have other bounties/insurances than desired. For this reason contains Oolite, starting with v 1.75, some predefined pilots: &amp;quot;oolite-trader&amp;quot;, &amp;quot;oolite-pirate&amp;quot;, &amp;quot;oolite-hunter&amp;quot;, &amp;quot;oolite-police&amp;quot;, &amp;quot;oolite-miner&amp;quot;, &amp;quot;oolite-passenger&amp;quot; and &amp;quot;oolite-slave&amp;quot;. When using one of these pilots, a random bounty/insurance will be set appropriate for this pilot role. Pilot bounty is different as ship bounty but on ejecting the pilot inherits the highest of both values. (actually a bitwise OR of both values)&lt;br /&gt;
&lt;br /&gt;
== roles ==&lt;br /&gt;
Assigns which [[role]](s) the entity should have, that can correspond to one specific, exclusive use, or several.&lt;br /&gt;
&lt;br /&gt;
The game engine constantly calls for generic roles to populate the universe.  In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.&lt;br /&gt;
&lt;br /&gt;
'''NB:''' If the ship cannot be docked to, extra care should be taken to avoid using the words '''station''' or '''carrier''' as part of any of the ship's role names. When either of these words are inside the roles key, the ship is automatically given station attributes. Other ships might even fruitless try to dock with it, and it will affect how some ships / entities are shown on the scanner.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;roles&amp;quot; = &amp;quot;hunter(0.25) trader(2.0) pirate&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
or an exclusive role, simply:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;roles&amp;quot; = &amp;quot;uniquely_named_role&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
This has the benefit of being the only ship to be selected when a [[Script.plist|script]] calls for the ''uniquely_named_role'' ship.&lt;br /&gt;
&lt;br /&gt;
An item from the [[commodities]] can also be named as a role, for when that commodity is floating in space and called upon, to be represented by a particular model.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;roles&amp;quot; = &amp;quot;Gold&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Some roles are used by the game engine to populate systems, detect and define properties. (see also the [[System Populator]])&lt;br /&gt;
Such roles include 'thargoid', 'missile' and 'energybomb'.&lt;br /&gt;
Externally used equipment also needs specific mention of role, for example EQ_*_MINE and EQ_*_MISSILE.&lt;br /&gt;
&lt;br /&gt;
== rotational_velocity ==&lt;br /&gt;
May be applied to a sub-entity, like the following entry to the [[Shipdata.plist#subentities|subentity]] spines of the [[Weeviloid Hunter]].&lt;br /&gt;
Takes the form of [[Quaternions|quaternions]]. The following example enables rotation around the Z-axis.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;rotational_velocity&amp;quot; = &amp;quot;0.707 0.0 0.0 0.707&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An explaining example taken from the Oolite Bulletin board.&lt;br /&gt;
&lt;br /&gt;
The rotational velocity key is rotation per second. &lt;br /&gt;
&lt;br /&gt;
For instance, if you want to rotate once per 20 seconds around the Z axis:&lt;br /&gt;
 &lt;br /&gt;
a = 360 ° / 20 = 18 °&lt;br /&gt;
&lt;br /&gt;
[x, y, z] = [0, 0, 1]&lt;br /&gt;
 &lt;br /&gt;
sin a ˜ 0.30902&lt;br /&gt;
 &lt;br /&gt;
cos a ˜ 0.95106&lt;br /&gt;
 &lt;br /&gt;
Q = (0.95106, 0, 0, 0.30902)&lt;br /&gt;
&lt;br /&gt;
'''shipdata.plist entry:'''&lt;br /&gt;
 &amp;quot;rotational_velocity&amp;quot;=&amp;quot;0.95106 0.0 0.0 0.30902&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== scan_class ==&lt;br /&gt;
Will alter the model's appearance on the [[IFF system]].  If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar.  There are other options.&lt;br /&gt;
* CLASS_BUOY&lt;br /&gt;
* CLASS_CARGO&lt;br /&gt;
* CLASS_MILITARY&lt;br /&gt;
* CLASS_MISSILE&lt;br /&gt;
* CLASS_POLICE&lt;br /&gt;
* CLASS_ROCK&lt;br /&gt;
* CLASS_STATION&lt;br /&gt;
* CLASS_THARGOID&lt;br /&gt;
* CLASS_NO_DRAW&lt;br /&gt;
(Name is valid starting with Oolite 1.74. Before it was called &amp;quot;scanClass&amp;quot;. Scripts can define custom colours for ships on the [[IFF system]] so ships might have an other scan_class as is seams.)&lt;br /&gt;
&lt;br /&gt;
==== Developer Note ====&lt;br /&gt;
Oolite uses scan_class internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penalties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;scan_class&amp;quot; = &amp;quot;CLASS_ROCK&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== scanner_range ==&lt;br /&gt;
Sets a custom scanner range. Standard is 25.6 km, thargoids have 50 km. Only applies to NPCs. However, at least since oolite 1.65 all defined scanner ranges are limited to 25.6 km, even for thargoids. This means it only makes sense defining shorter ranges than the maximum range.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;scanner_range&amp;quot; = &amp;quot;25600&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== scoop_position ==&lt;br /&gt;
Determines the XYZ point on the model from which cargo is scooped. (default is 0,0,0)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;scoop_position&amp;quot; = &amp;quot;0.0 -4.5 -23.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
Specifies a [[Scripting Oolite with JavaScript|JavaScript script]] to attach to the ship. Ship scripts are the preferred approach for scripting ships in current Oolite.&lt;br /&gt;
&lt;br /&gt;
== script_info ==&lt;br /&gt;
A property list whose contents are available to JavaScript scripts, for whatever use they desire. It is exposed to JavaScript as the &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Ship#scriptInfo|scriptInfo]]&amp;lt;/code&amp;gt; property of &amp;lt;code&amp;gt;Ship&amp;lt;/code&amp;gt; objects.&amp;lt;br&amp;gt;&lt;br /&gt;
Take note that when using an ascii plist, the JS engine will read in all entries as strings. When you need an entry as number, you might need to explicit convert it to a number. This is specially true for booleans as a &amp;quot;NO&amp;quot; string will be read as true. For all normal keys its Oolite that does the conversion for you.&lt;br /&gt;
&lt;br /&gt;
== script_actions ==&lt;br /&gt;
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity.  As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it.  Should Player already have it, the gift will be in gold. See also [[scripts within shipdata]] for more detailled info.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;script_actions&amp;quot; =&lt;br /&gt;
 (&lt;br /&gt;
     &amp;quot;testForEquipment: EQ_CLOAKING_DEVICE&amp;quot;,&lt;br /&gt;
     {&lt;br /&gt;
        &amp;quot;conditions&amp;quot;&lt;br /&gt;
        (&lt;br /&gt;
           &amp;quot;foundEquipment_bool equal NO&amp;quot;&lt;br /&gt;
        )&lt;br /&gt;
        &amp;quot;do&amp;quot;&lt;br /&gt;
        (&lt;br /&gt;
           &amp;quot;awardEquipment: EQ_CLOAKING_DEVICE&amp;quot;&lt;br /&gt;
        )&lt;br /&gt;
        &amp;quot;else&amp;quot;&lt;br /&gt;
        (&lt;br /&gt;
           &amp;quot;awardCargo: 100 Gold&amp;quot;&lt;br /&gt;
        )&lt;br /&gt;
     }&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
== setup_actions ==&lt;br /&gt;
Arranges a process that may be necessary for some objects, like ball turrets.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;setup_actions&amp;quot; =&lt;br /&gt;
 (&lt;br /&gt;
    &amp;quot;initialiseTurret&amp;quot;&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shaders ==&lt;br /&gt;
The ''shaders'' dictionary has the same structure as the ''[[#materials|materials]]'' dictionary. When [[Shaders in Oolite|shaders]] are available, the contents of the ''shaders'' dictionary are used in preference to those in ''materials''. If shaders are not available, the ''shaders'' dictionary is ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== smooth ==&lt;br /&gt;
Determines if the model will use glLightModel(GL_FLAT) or glLightModel(GL_SMOOTH).&lt;br /&gt;
&lt;br /&gt;
If true, then lighting effects will be interpolated across the polygons of the model, giving a more 'rounded' effect.&lt;br /&gt;
&lt;br /&gt;
Asteroids, Boulders and Splinters use this effect as do some other models.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;smooth&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== spawn ==&lt;br /&gt;
The spawn directory is only used when a ship is added with the command: &amp;quot;spawnShip: shipname&amp;quot;.  This command only allows to add one ship by name (not role!). The position and orientation are taken from a spawn directory that describes the position it is placed and the position it is looking at.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 &amp;quot;spawn&amp;quot;&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;facing_position&amp;quot; = &amp;quot;spu 0 0 0&amp;quot;;&lt;br /&gt;
       &amp;quot;position&amp;quot; = &amp;quot;wpu 0 0 0.2&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== subentities ==&lt;br /&gt;
An array of ''subentity definitions''. A ''subentity'' is an object attached to your ship. There are several types of subentity:&lt;br /&gt;
* ''Static subentities'', the default type, are simply extra models. They are defined as separate shipdata.plist entries, so technically they’re ships, but they don’t have a mind of their own. If the main ship is [[#frangible|frangible]], static subentities can take damage and blow up separately from the main ship. They can also be individually exploded or removed by scripts.&lt;br /&gt;
* ''Docks'' are recognized when setting up a station or carrier, and used to determine the station’s docking port parameters. After set-up, they work just like normal static subentities. The string &amp;quot;dock&amp;quot; in lowercase must be part of the old style name in order to get recognised as the dock subEntity.&lt;br /&gt;
* 'Ball turrets'' turn to track the ship’s current target, and shoot plasma balls if the target is within range (6000 metres). A ball turret’s field of fire is a 157 ° cone centred on its original facing. Currently, ball turrets make no effort not to shoot their own ship, so it is up to the designer to ensure this field of fire is clear. Like a static subentity, a ball turret is based on a shipdata.plist entry so its appearance can be customized. Oolite provides a built-in shipdata entry for ball turrets called, imaginatively, '''ballturret'''.&lt;br /&gt;
* ''Flashers'' are blobs which glow with a pulsating light. From Oolite 1.74 onwards, constant light will also be an option. Note that while flashers appear luminous – they are unaffected by shadows – they do not cast light on other objects.&lt;br /&gt;
&lt;br /&gt;
=== New-style subentity definition ===&lt;br /&gt;
Oolite 1.73 introduced a more flexible, dictionary-based way of specifying subentities. A new-style subentity is a dictionary using the following keys:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Subentity definition properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''type''' || string || One of: “'''standard'''”, “'''ball_turret'''”, “'''flasher'''”. If not specified, “standard” is assumed.&lt;br /&gt;
|-&lt;br /&gt;
| '''subentity_key''' || string || The key of a ''shipdata.plist'' entry. Required for '''standard''' and '''ball_turret''' subentities, ignored for flashers.&lt;br /&gt;
|-&lt;br /&gt;
| '''position''' || vector || The position of the subentity relative to its parent. (This can be specified as a string with three numbers in it, or an array of three numbers, or a dictionary with '''x''', '''y''' and '''z''' entries.) Default: (0, 0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| '''orientation''' || [[quaternion]] || The orientation of the subentity. Ignored for flashers. (This can be specified as a string with four numbers in it, or an array of four numbers, or a dictionary with '''w''', '''x''', '''y''' and '''z''' entries.) Default: (1, 0, 0, 0), which corresponds to no rotation.&lt;br /&gt;
|-&lt;br /&gt;
| '''is_dock''' || boolean || True if the subentity is a dock; false by default. Only applies to '''standard''' subentities. '''Note:''' this is ''not'' implied by having “dock” in the '''subentity_key''', as it is for old-style subentity definitions.&lt;br /&gt;
|-&lt;br /&gt;
| '''fire_rate''' || number || Interval between shots in seconds, for '''ball_turret''' subentities. Default: 0.5; minimum: 0.25.&lt;br /&gt;
|-&lt;br /&gt;
| '''color''' || [[Materials in Oolite#Colour specifiers|colour specifier]] || Single colour for a flasher. Ignored for non-flashers. Default value: '''redColor'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''colors''' || array || Array of colour specifiers for a flasher. Ignored for non-flashers. Before 1.74, only the first entry was used. If not present, see '''color'''. '''Note:''' like [[#laser_color|laser_color]], flasher colours must be “reasonably bright”.&lt;br /&gt;
|-&lt;br /&gt;
| '''frequency''' || number || Pulse rate for flashers, in cycles per second. Ignored for non-flashers. If 0, the flasher will have full intensity all the time in Oolite 1.74 and later, but half intensity in earlier releases. Default: 2.&lt;br /&gt;
|-&lt;br /&gt;
| '''initially_on''' || boolean || Specifiers whether a flasher is turned on when created. Ignored for non-flashers. Default: yes.&lt;br /&gt;
|-&lt;br /&gt;
| '''phase''' || number || Pulse phase offset for flashers, in seconds. Ignored for non-flashers. (This value is simply added to the time to get the pulse parameter.) Default: 0.&lt;br /&gt;
|-&lt;br /&gt;
| '''size''' || positive number || Diameter of a flasher in metres. Ignored for non-flashers. Default: 8. (Why 8? I don’t remember.)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Old-style subentity definition ===&lt;br /&gt;
Prior to Oolite 1.73, this was the the only way to specify a subentity.&lt;br /&gt;
&lt;br /&gt;
An old-style subentity definition is a string with eight items separated by spaces. In the description below, words in bold correspond to keys in [[#New-style subentity definition|new-style definitions]]. There are two variants:&lt;br /&gt;
&lt;br /&gt;
==== Flashers ====&lt;br /&gt;
For a flasher, the entry takes the form:&lt;br /&gt;
 *FLASHER* x y z hue frequency phase size&lt;br /&gt;
''*FLASHER*'' must be precisely the string “*FLASHER*”, in capitals.&lt;br /&gt;
&lt;br /&gt;
''x'', ''y'' and ''z'' form the '''position'''.&lt;br /&gt;
&lt;br /&gt;
''hue'' specifies the [http://en.wikipedia.org/wiki/HSL_and_HSV HSV] hue component (in degrees) of '''color'''. Saturation and value are always 1.&lt;br /&gt;
&lt;br /&gt;
'''frequency''', '''phase''' and '''size''' are the same as in the new-style format.&lt;br /&gt;
&lt;br /&gt;
'''initially_on''' is false.&lt;br /&gt;
&lt;br /&gt;
==== Other subentities ====&lt;br /&gt;
For a non-flasher, the entry takes the form:&lt;br /&gt;
 key x y z qw qx qy qz&lt;br /&gt;
''key'' corresponds to '''subentity_key'''.&lt;br /&gt;
&lt;br /&gt;
''x'', ''y'' and ''z'' form the '''position'''.&lt;br /&gt;
&lt;br /&gt;
''qw'', ''qx'', ''qy'' and ''qz'' form the '''orientation'''.&lt;br /&gt;
&lt;br /&gt;
'''type''' is ''standard'' unless the command ''initialiseTurret'' is present in the [[#setup_actions|setup_actions]] of the subentity, in which case it is ''ball_turret''. Note that the ''initialiseTurret'' no longer does anything when executed in a script; its presence is only used as an indicator to set the ''is_turret'' property when old-style definitions are translated. If ''initialiseTurret'' is inside a condition, it will be ignored. The ''initialiseTurret'' command is not required or useful for turrets which are only referenced using new-style subentity definitions.&lt;br /&gt;
&lt;br /&gt;
'''is_dock''' is implied by having the string “dock” (in lowercase) in the ''key''.&lt;br /&gt;
&lt;br /&gt;
== track_contacts ==&lt;br /&gt;
Tracks the movement of the ship and sends a &amp;quot;CLOSE CONTACT&amp;quot; message to other ship AI's. It uses a time consuming tracking, so only set to true when actually used.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;track_contacts&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== throw_sparks ==&lt;br /&gt;
Each new ship should start in seemingly good operating condition, unless specifically told not to. (Added with oolite 1.73, false by default)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;throw_sparks&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== thrust ==&lt;br /&gt;
Gives the entity an 'inertia' value, telling how fast it can increase or reduce speed (in m/s^2). 0 for rocks and cargo, 50 for a very fast ship, 100 for a station. When used with turrets it defines the turn rate in revolutions per second (with 1 being an average value). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;thrust&amp;quot; = &amp;quot;25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== unpiloted ==&lt;br /&gt;
Used to designate items that will never have a pilot, thus never turn aggressive and never eject a pod. By chance factor, or true/false.&amp;lt;br&amp;gt;&lt;br /&gt;
It will not add a pilot when set to false, but will remove any existing pilot when set to true.&lt;br /&gt;
commsMessages can only be broadcasted by piloted ships. Ships are by default piloted.  cargo , rocks, missiles etc. are not piloted by default.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;unpiloted&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== view_position_.. ==&lt;br /&gt;
Sets the ship's 4 point-of-view positions in XYZ relative to the model.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;view_position_aft&amp;quot; = &amp;quot;0.0 5.0 -20.0&amp;quot;;&lt;br /&gt;
 &amp;quot;view_position_forward&amp;quot; = &amp;quot;0.0 1.9375 5.0&amp;quot;;&lt;br /&gt;
 &amp;quot;view_position_port&amp;quot; = &amp;quot;-11.85 2.825 -3.5&amp;quot;;&lt;br /&gt;
 &amp;quot;view_position_starboard&amp;quot; = &amp;quot;11.85 2.825 -3.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== weapon_energy ==&lt;br /&gt;
This setting works differently depending on the type of entity it's used for:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Missiles.&amp;lt;/b&amp;gt; Changes the damage inflicted by the missile. Any value accepted.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;weapon_energy&amp;quot; = &amp;quot;180&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NPC ships.&amp;lt;/b&amp;gt; Changes the forward weapon damage to a value different to the default one. Values higher than 50 will be ignored.&lt;br /&gt;
&lt;br /&gt;
Default values are: WEAPON_PLASMA_CANNON = 6.0; WEAPON_PULSE_LASER = 15.0; WEAPON_BEAM_LASER = 15.0; WEAPON_MINING_LASER = 50.0; WEAPON_THARGOID_LASER = 12.5; WEAPON_MILITARY_LASER = 23.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;weapon_energy&amp;quot; = &amp;quot;17&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;N.B.&amp;lt;/b&amp;gt; It does not have any effect on player ships.&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weapon_offset ==&lt;br /&gt;
Removed after version 1.65 (it was used to change the offsetpoint of a plasma cannon.)&lt;br /&gt;
&lt;br /&gt;
== weapon_position_.. ==&lt;br /&gt;
Plots the 'gunmouth' points of the model's 4 potential lasers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;weapon_position_aft&amp;quot; = &amp;quot;0.0 -5.0 -20.0&amp;quot;;&lt;br /&gt;
 &amp;quot;weapon_position_forward&amp;quot; = &amp;quot;0.0 0.0417 16.6667&amp;quot;;&lt;br /&gt;
 &amp;quot;weapon_position_port&amp;quot; = &amp;quot;-13.75 -2.0625 -1.875&amp;quot;;&lt;br /&gt;
 &amp;quot;weapon_position_starboard&amp;quot; = &amp;quot;13.75 -2.0625 -1.875&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
= Station keys=&lt;br /&gt;
The following keys are only used by stations or carriers.&lt;br /&gt;
&lt;br /&gt;
== allows_auto_docking ==&lt;br /&gt;
When set false for a station, this station will not allow the use of a docking computer. Default value in &amp;quot;yes&amp;quot;. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 allows_auto_docking = &amp;quot;no&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
== allows_fast_docking ==&lt;br /&gt;
When set true for a station, this station will allow fast docking with the docking computer. Default value in &amp;quot;no&amp;quot;. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 allows_fast_docking = &amp;quot;yes&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
== defense_ship ==&lt;br /&gt;
Gives an oportunity to designate a particular ship by name that will defend a station/carrier. See also [[Shipdata.plist#defense_ship_role|defense_ship_role]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 defense_ship&amp;quot; = &amp;quot;my_defender&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== defense_ship_role ==&lt;br /&gt;
Gives an oportunity to designate a particular (group of) ships that will defend a station/carrier. This has to be specified in the [[Shipdata.plist#roles|roles]] of the ship(s) that are assigned to defend. When launched from a carrier the scan_class becomes that of the carrier. Default role is &amp;quot;police&amp;quot;/&amp;quot;interceptor&amp;quot; for normal stations and &amp;quot;hermit-ship&amp;quot; for stations of CLASS_ROCK. Defense ships with scanclass police or with a hermit-ship role launch with a policeInterceptAI.plist. All other ships use the ai_type as defined in shipdata.plist. After launch, all primary roles are changed into: &amp;quot;defense_ship&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;defense_ship_role&amp;quot; = &amp;quot; carrier_defenders&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== equipment_price_factor ==&lt;br /&gt;
Equipment price mask for dockables.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;equipment_price_factor&amp;quot; = &amp;quot;4.5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== equivalent_tech_level ==&lt;br /&gt;
Sets shipyard tech level for dockables, different to the local system tech_level. Default value is the system tech_level.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;equivalent_tech_level&amp;quot; = 1;&lt;br /&gt;
&lt;br /&gt;
== has_npc_traffic ==&lt;br /&gt;
Determines if a station has NPC traffic. Default is &amp;quot;yes&amp;quot;. When set to &amp;quot;no the station will not launch random traders. Only rotating stations will launch traders when this is set to true.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_npc_traffic&amp;quot; = yes;&lt;br /&gt;
 &lt;br /&gt;
== has_patrol_ships ==&lt;br /&gt;
Determines if a station launches periodic patrol ships. Default is &amp;quot;no&amp;quot;. Main stations always have patrol ships. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_patrol_ships&amp;quot; = yes;&lt;br /&gt;
 &lt;br /&gt;
== has_shipyard ==&lt;br /&gt;
Determines if a station or carrier has a shipyard. By chance factor as number between 0 and 1, but it can also be an array of conditions. Default is &amp;quot;no&amp;quot;, but for main stations has_shipyard is always &amp;quot;yes&amp;quot;. (Name is valid starting with Oolite 1.74. Before it was called &amp;quot;hasShipyard&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;has_shipyard&amp;quot; = &amp;quot;0.75&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;has_shipyard&amp;quot; = (&lt;br /&gt;
                   systemGovernment_number morethan 3,&lt;br /&gt;
                   systemEconomy_number lessthan 4&lt;br /&gt;
                  )&lt;br /&gt;
&lt;br /&gt;
== interstellar_undocking ==&lt;br /&gt;
When set true for a station, this station will allow interstellar docking and undocking in interstellar space. When set to &amp;quot;no&amp;quot; the player docks in nearby normal space. Default value in &amp;quot;no&amp;quot;. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 interstellar_undocking = &amp;quot;yes&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
==is_carrier==&lt;br /&gt;
Added as a tag for making the model be considered a carrier or station.  An alternative to including ''carrier'' or ''station'' among the [[Shipdata.plist#roles|roles]]. When present this key even overrules station/carrier settings with roles. (Name is valid starting with Oolite 1.74. Before it was called &amp;quot;isCarrier&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;is_carrier&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== market ==&lt;br /&gt;
Key that sets the market for stations and carriers. The name defines the key in [[commodities.plist]] that will be used as local market. Without a market key, the stations primaryRole is used as market.  Added with test release 1.74&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;market&amp;quot; = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_defense_ships ==&lt;br /&gt;
Designates how many ships a dockable entity (station, carrier) can launch in defense. Default value  is 3. See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_defense_ships&amp;quot; = &amp;quot;10&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_police ==&lt;br /&gt;
Designates how many police or patrol ships a dockable entity (station, carrier) can launch.  Default value  is 8. See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_police &amp;quot; = &amp;quot;10&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== max_scavengers ==&lt;br /&gt;
Designates how many scavengers or miners a dockable entity (station, carrier) can launch. Default value  is 3. See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;max_scavengers&amp;quot; = &amp;quot;10&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== port_dimensions ==&lt;br /&gt;
Defines the size of the docking port and takes 3 numbers, separated by &amp;quot;x&amp;quot;. This key is generally of little use and can be skipped as it becomes overwritten by the actual size of the bounding box of the dock subentity when a correct dock subentity is defined.&lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;port_dimensions&amp;quot; = &amp;quot;65x30x500&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Size of Oolites main-station dock is: 64.00 x 192.00 x 250.00  while the dimension of a rock-hermit dock is: 138.001 x 138.001 x 250.12 (W x H x L)&amp;lt;br&amp;gt;&lt;br /&gt;
These sizes may be relevant for ship dimensions as since Oolite 1.75 ships must fit in these docks to be allowed docking or launching.&lt;br /&gt;
&lt;br /&gt;
== port_radius ==&lt;br /&gt;
Defines the size of the docking port radius. Or more precise, this is the distance from the station centre to the port location. Default value is 500. This key is generally of little use and can be skipped as it will be overwritten by the real position of the dock subentity.&lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;port_radius&amp;quot; = &amp;quot;500&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
== requires_docking_clearance ==&lt;br /&gt;
Sets the requirement for docking clearance. Default is &amp;quot;no&amp;quot;. See also [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|DockingClearance]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;requires_docking_clearance&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
==rotating==&lt;br /&gt;
Given to a station when rotation is desired. Default is &amp;quot;no&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;rotating&amp;quot; = yes;&lt;br /&gt;
&lt;br /&gt;
== station_roll ==&lt;br /&gt;
Determines the rotation speed of a station. Default value is determined by the systemwide station_roll in planetInfo.plist. If that is not defined, the default is 0.4. Negative values are also possible for a rotation in the other direction. (Key is added in Oolite 1.74.2)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;station_roll&amp;quot; = &amp;quot;-1.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==tunnel_corners==&lt;br /&gt;
Defines the number of corners in the docking tunnel. Ranges from 4 to 128. Default is &amp;quot;4&amp;quot;. (Key is added in Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;tunnel_corners&amp;quot; = 6;&lt;br /&gt;
&lt;br /&gt;
==tunnel_start_angle==&lt;br /&gt;
Defines the position of the first corner of the docking tunnel in degrees. 0 means the first corner is straight up. Default is &amp;quot;45&amp;quot;. (Key is added in Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;tunnel_start_angle&amp;quot; = 0;&lt;br /&gt;
&lt;br /&gt;
==tunnel_aspect_ratio==&lt;br /&gt;
Defines the proportion of the tunnel’s width to its height. Default is &amp;quot;2.67&amp;quot;. (Key is added in Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;quot;tunnel_aspect_ratio&amp;quot; = 1;&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=27553</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=27553"/>
		<updated>2011-04-30T00:05:43Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* viewDirectionChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. note that keystroke listening is not implemented. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; handler is called whenever the player saves a game. The transferred message is one of the following strings: 'standardSave', 'autoSave' or 'quickSave'&lt;br /&gt;
&lt;br /&gt;
 this.playerWillSaveGame = function(message : String)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Using this event is useful for storing temporary variables in missionVariables, just before the game gets saved. missionVariables are slow in use compared to normal JS variables, therefor their use should be minimised for efficient code. The main benefit of using missionVariables is that they are saved in a saved game.&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_LAUNCHING&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_IN_FLIGHT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_Player#alertCondition|player.alertCondition]]&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetDestroyed = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetLost = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; handler is called when the guiScreen is about to change.  It only fires for the screens: GUI_SCREEN_EQUIP_SHIP, GUI_SCREEN_MANIFEST, GUI_SCREEN_MARKET and GUI_SCREEN_SHIPYARD. On these screens a script could change the content of the page to be displayed.  In Oolite 1.75 will 'GUI_SCREEN_SYSTEM_DATA' be added to this list. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenWillChange = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This handler works a bit different as other handlers. It fires for every installed oxp, until an oxp creates a mission screen during this handler. Than it stops. When the mission screen ends and there is no callback function that created a new mission screen, than the missionScreenOpportunity is send again to all installed oxps, starting with the oxp that used the mission screen as last one. All this means that when this handler fires, it is safe to show a mission screen and no further test are needed.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&amp;lt;br&amp;gt;&lt;br /&gt;
This handler for the woldScript is new since Oolite 1.74. After the event is sent to the shipScript, it is now also send to the worldScript with the added entity as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; handler is called when the player view changes, with a string to indicate which view the player is facing. Amongst its possible values are &amp;quot;VIEW_FORWARD&amp;quot;, &amp;quot;VIEW_AFT&amp;quot;, &amp;quot;VIEW_PORT&amp;quot;, &amp;quot;VIEW_STARBOARD&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_CUSTOM&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_GUI_DISPLAY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 this.viewDirectionChanged = function(viewString)&lt;br /&gt;
 {&lt;br /&gt;
   if (viewString == &amp;quot;VIEW_PORT&amp;quot;)&lt;br /&gt;
   {&lt;br /&gt;
      // Your code here&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All the initially planned events have been implemented in 1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=27552</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=27552"/>
		<updated>2011-04-30T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. note that keystroke listening is not implemented. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillSaveGame&amp;lt;/code&amp;gt; handler is called whenever the player saves a game. The transferred message is one of the following strings: 'standardSave', 'autoSave' or 'quickSave'&lt;br /&gt;
&lt;br /&gt;
 this.playerWillSaveGame = function(message : String)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Using this event is useful for storing temporary variables in missionVariables, just before the game gets saved. missionVariables are slow in use compared to normal JS variables, therefor their use should be minimised for efficient code. The main benefit of using missionVariables is that they are saved in a saved game.&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == true&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_LAUNCHING&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == null&amp;quot;, &amp;quot;ship.docked == false&amp;quot;, &amp;quot;ship.status == STATUS_IN_FLIGHT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_Player#alertCondition|player.alertCondition]]&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetDestroyed&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetDestroyed = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetLost&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetLost = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; handler is called when the guiScreen is about to change.  It only fires for the screens: GUI_SCREEN_EQUIP_SHIP, GUI_SCREEN_MANIFEST, GUI_SCREEN_MARKET and GUI_SCREEN_SHIPYARD. On these screens a script could change the content of the page to be displayed.  In Oolite 1.75 will 'GUI_SCREEN_SYSTEM_DATA' be added to this list. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenWillChange = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This handler works a bit different as other handlers. It fires for every installed oxp, until an oxp creates a mission screen during this handler. Than it stops. When the mission screen ends and there is no callback function that created a new mission screen, than the missionScreenOpportunity is send again to all installed oxps, starting with the oxp that used the mission screen as last one. All this means that when this handler fires, it is safe to show a mission screen and no further test are needed.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&amp;lt;br&amp;gt;&lt;br /&gt;
This handler for the woldScript is new since Oolite 1.74. After the event is sent to the shipScript, it is now also send to the worldScript with the added entity as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.75}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;viewDirectionChanged&amp;lt;/code&amp;gt; handler is called when the player view changes, with a string to indicate which view the player is facing. Its possible values are &amp;quot;VIEW_FORWARD&amp;quot;, &amp;quot;VIEW_AFT&amp;quot;, &amp;quot;VIEW_PORT&amp;quot;, &amp;quot;VIEW_STARBOARD&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_CUSTOM&amp;quot;,&lt;br /&gt;
&amp;quot;VIEW_GUI_DISPLAY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 this.viewDirectionChanged= function(viewString)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All the initially planned events have been implemented in 1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=25188</id>
		<title>Oolite JavaScript Reference: Global</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=25188"/>
		<updated>2010-10-28T22:29:50Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* setScreenOverlay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;''' environment includes all Oolite objects and methods accessible by all scripts at all times.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;clock&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''clock''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the game clock's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyNumber&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyNumber''' : Number(read-only)&lt;br /&gt;
Returns the number ot the galaxy the player is in.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;guiScreen&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''guiScreen''' : String(read-only)&lt;br /&gt;
Returns the screen the player is looking at. If in flight, it's set to &amp;quot;GUI_SCREEN_MAIN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''manifest''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to directly access the player ship's manifest properties.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mission&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''mission''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access misson methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;missionVariables&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''missionVariables''' : Object(read-only)&lt;br /&gt;
The &amp;lt;code&amp;gt;missionVariables&amp;lt;/code&amp;gt; object stores values that are stored in saved games. This is the main way for scripts to store information permanently.&lt;br /&gt;
&lt;br /&gt;
Whenever a value is assigned to a property of &amp;lt;code&amp;gt;missionVariables&amp;lt;/code&amp;gt;, it is converted to a string object and tracked with the player. When the value is read, it will be converted to a number if possible, otherwise returned as a string. Example:&lt;br /&gt;
 missionVariables.exampleVar = 42;&lt;br /&gt;
 let x = missionVariables.exampleVar; // x is now the number 42&lt;br /&gt;
&lt;br /&gt;
Mission variables can also be used in legacy scripts and in [[descriptions.plist]] string expansions, by prefixing the name with “mission_”. Example:&lt;br /&gt;
 expandDescription(&amp;quot;My variable is [mission_exampleVar].&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Setting and retrieving mission variables has a small but non-trivial overhead. If a function needs to use a mission variable value several times, it is strongly recommended that it be copied into a local variable and, if necessary, stored back once. Example:&lt;br /&gt;
 let x = missionVariables.exampleVar;&lt;br /&gt;
 if (x &amp;lt; 3)  x = processSmallValue(x);&lt;br /&gt;
 else  x = processBigValue(x);&lt;br /&gt;
 missionVariables.exampleVar = x;&lt;br /&gt;
&lt;br /&gt;
Mission variable names may not begin with an underscore (“_”). Unassigned mission variables are always &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;oolite&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''oolite''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access oolite's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;player&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''player''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the player object's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''system''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the current system's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;timeAccelerationFactor&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''timeAccelerationFactor''' : Number(read/write)&lt;br /&gt;
Also known as TAF. Will change the ratio between game real time and actual real time (default is 1). The accepted range is between 0.0625 (1/16) and 16. Attempting to set numbers outside this range will reset the TAF to 1.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;worldScripts&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''worldScripts''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access all world scripts, their properties and functions.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 log(worldScripts['oolite-nova'].version);&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;displayNameForCommodity&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''displayNameForCommodity'''(commodityName : String) &lt;br /&gt;
Returns the display name corresponding to the specified commodity. Useful in conjunction with localisation OXPs, or expansions that rename commodities depending on which station / system the player is at.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandDescription'''(description : String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Expands a string, substituting special tokens and any key inside square brackets with the substitution rules for [[Methods#Communications|Communications]].&lt;br /&gt;
When local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandDescription('My ball is [my_color].', { 'my_color': 'red' }); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandMissionText&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandMissionText'''(textKey: String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Returns an expanded mission text, substituting any tokens and keys inside square brackets inside the original missiontext.plist value with its corresponding expanded string.&lt;br /&gt;
If local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandMissionText('oolite_trumble_title'); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''log'''([messageClass : String ,] message : String)&lt;br /&gt;
Writes a message to Oolite's log. The optional messageClass can be used to specify which type of message is written to the log.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 log('myOXP.init','MyOXP initialised and ready!');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomInhabitantsDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomInhabitantsDescription'''([plural : boolean])&lt;br /&gt;
Returns a random capitalised word, suitable to describe one sentient being, or - if using the optional plural argument - a group of sentients.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(&amp;quot;You'll meet a &amp;quot; +  randomInhabitantsDescription() +&lt;br /&gt;
                      &amp;quot;. She'll be with a group of &amp;quot; + randomInhabitantsDescription(true) +'.');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomName&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomName'''()&lt;br /&gt;
Returns a random capitalised word, suitable for use as name, or indeed surname.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(randomName() + ' ' + randomName() +' rules this system with an iron fist.');  &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenBackground&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenBackground'''(image : String) &lt;br /&gt;
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenBackground('oolite-nova-system.png');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenOverlay&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenOverlay'''(image : String) &lt;br /&gt;
Temporary override that sets the overlay of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenOverlay('trumblebox.png');&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Shipdata.plist&amp;diff=24283</id>
		<title>Shipdata.plist</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Shipdata.plist&amp;diff=24283"/>
		<updated>2010-09-12T06:56:55Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* hyperspace_motor_spin_time */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''shipdata.[[plist]]''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==accuracy==&lt;br /&gt;
Used with missiles it has influence on tracking of target. Allowed values with missiles are between 0.0 and 10.0. When not defined, the system assings to the missile the accuracy value of 0.0, which corresponds to the standard missile tracking behaviour.&lt;br /&gt;
&lt;br /&gt;
Used with NPC ships it enlarges the chance of shooting at greater distances. Value with NPC ships is between -5 and 10.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;accuracy&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;8&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== aft_eject_position ==&lt;br /&gt;
Determines the XYZ point on the model from which cargo is ejected.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;aft_eject_position&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 -4.5 -23.0&amp;lt;/string&amp;gt;&lt;br /&gt;
== aft_weapon_type ==&lt;br /&gt;
Assigns the ship's laser. &lt;br /&gt;
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;aft_weapon_type&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;WEAPON_BEAM_LASER&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ai_type ==&lt;br /&gt;
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;ai_type&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;pirateAI.plist&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== auto_ai ==&lt;br /&gt;
Introduced in version 1.69 to autoswitch ai to the appropriate one if a ship was added by a script in one of its standard roles like trader or pirate. See also the comment inside the autoAIMap.plist inside Oolite 1.69 or newer. When not defined it will be true by default. Defining auto_ai is only necessary when using one of the standard roles mentioned in the autoAIMap.plist for your ship.&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;auto_ai&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
Starting with Oolite 1.73 also the populator will look at the auto_ai during system setup. When auto_ai is false the ship will keep the ai_type defined for the ship and not give it the default ai for that role.&lt;br /&gt;
&lt;br /&gt;
== beacon ==&lt;br /&gt;
A special feature for beacons and navigation aids.&lt;br /&gt;
The string can be anything - the first letter is what's displayed in the advanced space compass.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;key&amp;gt;beacon&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;X-code&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following characters are known to be used as identifiers for '''stations and other fixed objects''' (listed with their respective OXPs):&lt;br /&gt;
&lt;br /&gt;
 A = Astromine (Commies)&lt;br /&gt;
 B = Black Monk Monastery (Black Monks)&lt;br /&gt;
     A Seedy Space Bar (Random Hits)&lt;br /&gt;
     Nemeanian Military Base (Assassins)&lt;br /&gt;
 C = CoachWhip hOopy Casino (Hoopy Casino)&lt;br /&gt;
     Pi-42 Con Store (Your Ad Here)&lt;br /&gt;
 F = Collective Zero-G Factory (Commies)&lt;br /&gt;
     Collective SLAPU (Commies)&lt;br /&gt;
     Imperial AstroFactory (Dictators)&lt;br /&gt;
 G = Griff Research Ltd Orbital Base (Assassins)&lt;br /&gt;
     GRS Buoy Factory (GRS Buoy Repair)&lt;br /&gt;
 H = Hacker Outpost (Anarchies)&lt;br /&gt;
     Deep Space Hoopy Hotel : Hades Branch (Assassins)&lt;br /&gt;
 L = The Link Base (Ionics)&lt;br /&gt;
     Deep Space Hoopy Hotel : Lernean Branch (Assassins)&lt;br /&gt;
 N = Main Station Beacon&lt;br /&gt;
 P = Tianve Pulsar Monitoring Station (Tianve)&lt;br /&gt;
 R = Rock Hermit (Rock Hermit Locator)&lt;br /&gt;
     Augeaian Orbital Repair Facility (Assassins)&lt;br /&gt;
     Rebel Outpost (Assassins)&lt;br /&gt;
 Q = Hesperides Wiseguy Way-Station (Assassins)&lt;br /&gt;
 S = Navy SecCom Station (Galactic Navy)&lt;br /&gt;
     Special Branch Orbital Headquarters (Assassins)&lt;br /&gt;
 T = Taranis Corporation HQ (Taranis)&lt;br /&gt;
 W = Witchpoint Buoy&lt;br /&gt;
 Z = Free Trade Zone (Free Trade Zone)&lt;br /&gt;
&lt;br /&gt;
The following characters are known to be used for '''non-station objects that may appear anywhere''':&lt;br /&gt;
&lt;br /&gt;
 H = Homing Beacon (ett Homing Beacon)&lt;br /&gt;
&lt;br /&gt;
The following characters should not be assigned easily to stations or ships that are supposed to appear anywhere, because they are likely to be used for ships in other OXPs:&lt;br /&gt;
&lt;br /&gt;
 M = Mark&lt;br /&gt;
 T = Target&lt;br /&gt;
 V = Victim&lt;br /&gt;
 X = general marker&lt;br /&gt;
 + = general marker&lt;br /&gt;
&lt;br /&gt;
Starting with Oolite 1.73 we can also use custom icons with the compass. For that you must define a key in descriptions.plist with the same name as one of the roles of the ship with beacon. Than define the icon in the same way as missile icons. (An array of x/y-coordinates that will be connected by lines)&lt;br /&gt;
 &amp;quot;fuelStation_location&amp;quot; =  (1, 2, -3, 2, -3, -4, 3, -4, 3, 4,  -3, 4, -3, 3, 2, 3, 2, -3, 1, -3 );&lt;br /&gt;
&lt;br /&gt;
== bounty ==&lt;br /&gt;
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law . This bounty setting is overruled when adding ships in one of the populator roles like pirate, trader etc. Pirates are default added with a small bounty and traders are added clean. However, like the player, also the npc bounty can raise when attacking other clean ships or police vessels.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;bounty&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;50&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== cargo_carried ==&lt;br /&gt;
Determines the type of cargo carried as described in [[commodities]] and [[commodities.plist]].  Only one type can be specified. This key can be used for both ships and barrels.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_carried&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;Gold&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When used for barrels, it is also possible to add several units in a pod by preceding the commodity name with a space separated number. Adding more than a ton in a pod is not possible. Defining a quantity for ships is not possible this way.&amp;lt;br&amp;gt;&lt;br /&gt;
Since Oolite 1.74 it will also be possible to define a mix of random cargo for ships by using the string &amp;quot;SCARCE_GOODS&amp;quot; or &amp;quot;PLENTIFUL_GOODS&amp;quot;, instead of a commodity name. The first selects random goods that are scarce at the main station, the second selects goods that are plentiful present at the main station. (Populator added traders heading toward the station always have scarce goods while traders heading from the main station always have plentiful goods on board. It would be wise to stick to this rule with custom ships.)&amp;lt;br&amp;gt;&lt;br /&gt;
To make cargo_carried working for ships, the cargo_type must be &amp;quot;CARGO_NOT_CARGO&amp;quot; to define the ship not being cargo itself. (see below)&lt;br /&gt;
&lt;br /&gt;
== [[cargo_type]] ==&lt;br /&gt;
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID, CARGO_ALLOY, CARGO_MINERALS, CARGO_CARRIED) or a ship, as below, which is not cargo. Works since Oolite 1.71 also for pods spawn by a script. CARGO_CARRIED needs in addition an second key cargo_carried that specifies the cargo. (see below)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_type&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;CARGO_RANDOM&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In v1.63, more control of contents of barrels will be available through the CARGO_CARRIED string.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_type&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;CARGO_CARRIED&amp;lt;/string&amp;gt; &lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_carried&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;4 Gold&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify the cargo of a ship. use &amp;quot;cargo_type&amp;quot; = CARGO_NOT_CARGO  and define the contents of the barrels it will give with &amp;quot;cargo_carried&amp;quot;. In that case there must be no quantity defined, only the type of [[commodity]].&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_type&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;CARGO_NOT_CARGO&amp;lt;/string&amp;gt; &lt;br /&gt;
 &amp;lt;key&amp;gt;cargo_carried&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;Computers&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another notable type of cargo is the scripted item CARGO_SCRIPTED_ITEM, as examplified by the cloacking device. When CARGO_SCRIPTED_ITEM is defined, the barrels will trigger scooping events for the ship-scripts. Other barrels don't trigger scooping events.&amp;lt;br&amp;gt;&lt;br /&gt;
Until 1.74 such scripted barrels were removed from the system after scooping. Starting with 1.74 the barrels are stored in the ships hold like normal barrels when a cargo was defined for them with the JS method &amp;quot;setCargo&amp;quot;. Scripted cargo works with any object that can be scooped. When you have scripted escape pods that must be preserved, fill it with one ton of Slaves.&lt;br /&gt;
&lt;br /&gt;
== cloak_passive ==&lt;br /&gt;
When true, any firing of laser will deactivate the cloak. (Added in oolite 1.73. False by default) &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;cloak_passive&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==conditions==&lt;br /&gt;
Whit this option you can include an array of extra conditions when to add a ship. When the conditions are not met, the ship does not appear in a selection list by role. Useful when you have a standard ship like a trader that should only be added in certain systems.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;conditions&amp;lt;/key&amp;gt;&lt;br /&gt;
      &amp;lt;array&amp;gt;&lt;br /&gt;
               &amp;lt;string&amp;gt;systemGovernment_number equal 3&amp;lt;/string&amp;gt;&lt;br /&gt;
               &amp;lt;string&amp;gt;systemEconomy_number lessthan 4&amp;lt;/string&amp;gt;&lt;br /&gt;
      &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== custom_views==&lt;br /&gt;
Will add the ability to display custom POVs of the player ship, in game toggled by pressing '''v'''.  &lt;br /&gt;
&lt;br /&gt;
This is an array with any number of entries, one for each view, each with:&lt;br /&gt;
*a '''view_description''' - giving a textual description of the view. &lt;br /&gt;
*a '''view_position''' - relative to the origin of the ship model. &lt;br /&gt;
*a '''view_orientation''' - this is a [[Quaternions|quaternion]] expressing a rotation from directly forwards. &lt;br /&gt;
*a '''weapon_facing''' - FORWARD, AFT, PORT or STARBOARD. The weapon that will fire when that view is selected.&lt;br /&gt;
&lt;br /&gt;
The view_position is best chosen by selecting a facet, line or point in Wings and copying down the coordinates. &lt;br /&gt;
&lt;br /&gt;
For the view_orientation you will probably need a calculator but the basic method is to choose a unit vector (x y z) as the axis for a rotation then calculate the four values W X Y and Z for the quaternion as follows: &lt;br /&gt;
&lt;br /&gt;
W = the cosine of half the angle rotated about the axis xyz&amp;lt;br /&amp;gt;&lt;br /&gt;
X = the sine of half the angle rotated about xyz, multiplied by x&amp;lt;br /&amp;gt;&lt;br /&gt;
Y = the sine of half the angle rotated about xyz, multiplied by y &amp;lt;br /&amp;gt;&lt;br /&gt;
Z = the sine of half the angle rotated about xyz, multiplied by z &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Four decimal places are probably enough accuracy for these values.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
      &amp;lt;key&amp;gt;custom_views&amp;lt;/key&amp;gt; &lt;br /&gt;
      &amp;lt;array&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_description&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;External View - Aft&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_position&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;0.0 100.0 -173.21&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_orientation&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;0.966 -0.259 0.0 0.0&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;weapon_facing&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;FORWARD&amp;lt;/string&amp;gt; &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_description&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;Scoop camera&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_position&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;0.0 -38.3333 1.6666&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;view_orientation&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;1.0 0.0 0.0 0.0&amp;lt;/string&amp;gt; &lt;br /&gt;
            &amp;lt;key&amp;gt;weapon_facing&amp;lt;/key&amp;gt; &lt;br /&gt;
            &amp;lt;string&amp;gt;FORWARD&amp;lt;/string&amp;gt; &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
      &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== death_actions ==&lt;br /&gt;
Gives an opportunity to have a ship's death trigger one or a set of [[Shipdata.plist#script_actions|script_actions]].  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;death_actions&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;array&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;spawn: explosive_shrapnel 1&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== debris_role ==&lt;br /&gt;
Specifies the kind of debris an asteroid or boulder generates. When not defined they default to generating 'ships' with role &amp;quot;boulder&amp;quot; or &amp;quot;splinter&amp;quot;.  (Key added with Oolite 1.74)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;debris_role&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;my_boulder_foo&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== defense_ship ==&lt;br /&gt;
Gives an oportunity to designate a particular ship by name that will defend a station/carrier. When launched from a carrier the scanclass becomes that of the carrier.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;defense_ship&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;my_defender&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== defense_ship_role ==&lt;br /&gt;
Gives an oportunity to designate a particular (group of) ships that will defend a station/carrier. This has to be specified in the [[Shipdata.plist#roles|roles]] of the ship(s) that are assigned to defend. When launched from a carrier the scanclass becomes that of the carrier.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;defense_ship_role&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;carrier_defenders&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== density ==&lt;br /&gt;
This real value is used to calculate a ships total mass. Default is 1.0  (Introduced in version 1.69?)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;density&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;1.5&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== display_name ==&lt;br /&gt;
States the model's name as it will be known to the ID computer. By default this is the same as &amp;quot;name&amp;quot;. Added for multilingual oolite.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;display_name&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;ExampleShip Mark IX&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== docking_pattern_model ==&lt;br /&gt;
The name of the .dat file that is used for displaying the docking pattern for this station only.  Default is ring.dat.  (Introduced in version 1.74)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;docking_pattern_model&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;ring.dat&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== energy_recharge_rate ==&lt;br /&gt;
The rate at which energy is replenished.  Stations are at 100, Adders at 2.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;energy_recharge_rate&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;3.5&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== escape_pod_model ==&lt;br /&gt;
With this entry ships can have custom escape pods. (starting from version 1.65) You have to specify the '''role''' of your custom escape pod (not its entry-name).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;escape_pod_model&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;custom_pod&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== escorts ==&lt;br /&gt;
Determines how many escorts an NPC shall have. Maximum is 16. In save systems Oolite may randomly decide to subtract escorts from the defined value. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;escorts&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;4&amp;lt;/integer&amp;gt;&lt;br /&gt;
Warning: Ships with scanClass = CLASS_POLICE should always have escorts set to zero. Oolite will set this value here and add wingmans instead of escorts. Without special scripting escorts won't escort a mother with CLASS_POLICE.&lt;br /&gt;
&lt;br /&gt;
== escort-role ==&lt;br /&gt;
Assigns the specific ship type to be the escort, by the ship's role. (Starting with Oolite 1.74 also the name &amp;quot;escort_role&amp;quot; is accepted.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;escort-role&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;my_custom_escort_role&amp;lt;/string&amp;gt;&lt;br /&gt;
Warning: Only usable since  Oolite 1.71. It will use the AI file defined in shipdata for this escort and will not use any default escortAI. So make sure the summoned escort has an AI defined in its entry that is capable of supporting escorting.&lt;br /&gt;
&lt;br /&gt;
== escort-ship ==&lt;br /&gt;
Assigns the specific ship type to be the escort, by the ship's name. (Starting with Oolite 1.74 also the name &amp;quot;escort_ship&amp;quot; is accepted.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;escort-ship&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;cobramk1&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== equipment_price_factor ==&lt;br /&gt;
Equipment price mask for dockables.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;equipment_price_factor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;4.5&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== equivalent_tech_level ==&lt;br /&gt;
Sets shipyard tech level for dockables, different to the local system techlevel.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;equivalent_tech_level&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== exhaust ==&lt;br /&gt;
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo&lt;br /&gt;
&lt;br /&gt;
 x y z width height length&lt;br /&gt;
&lt;br /&gt;
'''x y z''' is the position relative to the origin of the main model. &lt;br /&gt;
&lt;br /&gt;
'''width''' in meters, how wide a plume is on x axis. (x radius)&lt;br /&gt;
&lt;br /&gt;
'''height''' in meters, how tall a plume is on y axis. (y radius)&lt;br /&gt;
&lt;br /&gt;
'''length''' in meters, how long a plume is on z axis. (This value is in current Oolite versions ignored. Length is now derived from the ships speed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide and 4 m tall. (length info is ignored)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;exhaust&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;array&amp;gt;&lt;br /&gt;
     &amp;lt;string&amp;gt;5 0.0 -25 6.0 4.0 10.0&amp;lt;/string&amp;gt;&lt;br /&gt;
     &amp;lt;string&amp;gt;-5 0.0 -25 6.0 4.0 10.0&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== extra_cargo ==&lt;br /&gt;
New in version 1.62rc3&lt;br /&gt;
Cargobay extension size can now be customised. This is the amount the cargo capacity increases when an extra cargobay is installed. Default value is 15. It is only used with player ships.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;extra_cargo&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;value&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== forward_weapon_type ==&lt;br /&gt;
Assigns the ship's laser. &lt;br /&gt;
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;forward_weapon_type&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;WEAPON_BEAM_LASER&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== frangible ==&lt;br /&gt;
Determines if eventual sub-entities are &amp;quot;loose&amp;quot;. By default any given object is already frangible, so the use of this line must be to negate that. &lt;br /&gt;
If set to false, the object plus subentities will be regarded as a single object.&lt;br /&gt;
If set to true, sub entities can be destroyed seperately from the main object.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;frangible&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
== fragment_chance ==&lt;br /&gt;
Determines if a ship breaks apart into fragments and generates parts with role &amp;quot;wreckage&amp;quot;. By chance factor, or true/false. Default is 90% chance.&lt;br /&gt;
The amount of wreckage is based on the ships mass with a maximum of 3. Wreckage is scaled to match the ships size but is very short living. (0.25s -&amp;gt; 1.25s)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;fragment_chance&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fuel ==&lt;br /&gt;
Determines an NPC ship's fuel storage, which will affect how it uses its Fuel Injectors.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;fuel&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;70&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== has_cloaking_device ==&lt;br /&gt;
Determines if a ship has a cloacking device installed. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_cloaking_device&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.5&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_ecm ==&lt;br /&gt;
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_ecm&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.5&amp;lt;/real&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;key&amp;gt;has_ecm&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_energy_bomb ==&lt;br /&gt;
Determines if a ship has an energy bomb. If it has one, it might launch a mine with role &amp;quot;energy_bomb&amp;quot; as part of his fleeing behavior. currently the only build-in mine with this role is the q-bomb.&amp;lt;br&amp;gt;(Since Oolite 1.73 there is a check to only deploy the bomb when having also fuel-injectors and some fuel left to avoid getting killed by its own bomb)&lt;br /&gt;
&lt;br /&gt;
Example:		&lt;br /&gt;
 &amp;lt;key&amp;gt;has_energy_bomb&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_escape_pod ==&lt;br /&gt;
Determines if a ship has an escape pod. Can be either a boolean value, or a number from 0 to 1 expressing the likelihood of the equipment being present. Starting with version 1.65 ships can have multiple escape pods. To specify more than one escape pod, '''has_escape_pod''' must be set to a numeric value corresponding to the escape pods present on board.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 has_escape_pod = no;&lt;br /&gt;
 has_escape_pod = 0.75;&lt;br /&gt;
 has_escape_pod = 3;&lt;br /&gt;
&lt;br /&gt;
XML example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_escape_pod&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_fuel_injection ==&lt;br /&gt;
Determines if a ship has the witchdrive fuel injector.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_fuel_injection&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.99&amp;lt;/real&amp;gt;&lt;br /&gt;
==has_military_jammer==&lt;br /&gt;
Determines if a ship has a military jammer. Ships equipped with this item become invisible on the radar. &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_military_jammer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.75&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==has_military_scanner_filter==&lt;br /&gt;
Determines if a ship has a military jammer filter. Ships equipped with this item can see ships equipped with a military jammer on the radar. &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_military_scanner_filter&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.50&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_npc_traffic ==&lt;br /&gt;
Determines if a station has NPC traffic (carriers are treated as stations, too). Default is &amp;quot;YES&amp;quot;, when set to NO the station will not launch random traders. Introduced in version 1.70&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_npc_traffic&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_scoop ==&lt;br /&gt;
Determines if a ship has a fuel/cargo scoop.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_scoop&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_scoop_message ==&lt;br /&gt;
A key for cargo. Determines if a barrel generates a default scoop message when scooped. Default is true, but setting it to false suppresses any messages, so a scripts can generate its custom messages on scooping. (Added with Oolite 1.74)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_scoop_message&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_shield_booster==&lt;br /&gt;
Determines if a ship has the shield booster. (enlarges max energy with 256)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_shield_booster&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.80&amp;lt;/real&amp;gt;&lt;br /&gt;
== has_shield_enhancer ==&lt;br /&gt;
Determines if a ship has the coveted shield enhancer. (enlarges max energy with 256 and raises energy recharge rate with 50%)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_shield_enhancer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.45&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== has_shipyard ==&lt;br /&gt;
Determines if a station or carrier has a shipyard. By chance factor as number between 0 and 1, but it can also be an array of conditions. (Name is valid starting with Oolite 1.74. Before it was called &amp;quot;hasShipyard&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;has_shipyard&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;0.75&amp;lt;real/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== heat_insulation ==&lt;br /&gt;
This real number gives the amount of heat insulation of a ship. Default is 1.0 Only for NPC ships. Playes ships can have the equipment EQ_HEAT_SHIELDING with gives the player than a heat_insulation of 2.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;heat_insulation&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;2.0&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== hud ==&lt;br /&gt;
Used for a playership, to assign another HUD than the default one.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;hud&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;specialhud.plist&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== hyperspace_motor ==&lt;br /&gt;
If set to false / NO, it will stop ships from executing normal hyperspace jump (player ships will still be able to execute galactic jumps). Default = true / YES. (Planned for Oolite 1.75)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 &amp;lt;key&amp;gt;hyperspace_motor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;false/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 hyperspace_motor=NO;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== hyperspace_motor_spin_time ==&lt;br /&gt;
Used to modify jump countdown time. Default = 15. (Added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 &amp;lt;key&amp;gt;hyperspace_motor_spin_time&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;15&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 hyperspace_motor_spin_time=15;&lt;br /&gt;
&lt;br /&gt;
==is_carrier==&lt;br /&gt;
Added as a tag for making the model be considered a carrier or station.  An alternative to including ''carrier'' or ''station'' among the [[Shipdata.plist#roles|roles]]. When present this key even overrules station/carrier settings with roles. (Name is valid starting with Oolite 1.74. Before it was called &amp;quot;isCarrier&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;is_carrier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==is_submunition==&lt;br /&gt;
Key added for missiles with multiple warheads. When this key is set and the entity is spawn or fired by a missile, it inherits its parent as owner. This key must be set so the player will be awarded for a kill by submunition. (Key added in Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;is_submunition&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==is_template==&lt;br /&gt;
Set this to yes/&amp;lt;true/&amp;gt; for ships which are only used through like_ships and are not intended to be used directly. If your (otherwise working) OXP generates warnings about ships with no roles or model attribute, you probably need this.  (Key added in Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;is_template&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== laser_color ==&lt;br /&gt;
Determines a ship's laser colour.&lt;br /&gt;
&lt;br /&gt;
In Oolite 1.69 and later, this is any [[Materials in Oolite#Colour specifiers|colour specifier]]. In earlier versions, it must be a [[Materials in Oolite#Named colours|named colour]]. Also as of 1.69, the game requires laser colours to be reasonably bright; if the brightest colour component is less than 0.5, the colour will be brightened.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;laser_color&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;cyanColor&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== launch_actions ==&lt;br /&gt;
Triggers a script on the entity just after setup, also when called by spawn and addShip methods.&lt;br /&gt;
Can be used to change to a custom AI, when a ship is generated by standard role. &lt;br /&gt;
[[Shipdata.plist#script_actions|script_actions]]&lt;br /&gt;
&lt;br /&gt;
 Example:&lt;br /&gt;
 &amp;quot;role = trader&amp;quot;&lt;br /&gt;
 &amp;lt;key&amp;gt;launch_actions&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;array&amp;gt;&lt;br /&gt;
   &amp;lt;string&amp;gt;setAITo: pirateAI.plist&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== like_ship ==&lt;br /&gt;
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet. With '''like_ship''' you can reference to another existing shipdata entry, and then only specify the differences to the 'original'. It takes the unique '''entry-identifier''' as argument. Of course you have to make sure that the 'original' you are referring to actually exists, or Oolite won't be able to create your ship.&lt;br /&gt;
&lt;br /&gt;
Works well together with the [[#is_template|is_template]]-key.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;like_ship&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;adder&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;max_flight_speed&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;700&amp;lt;/real&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;Freak Turbo Adder&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== likely_cargo ==&lt;br /&gt;
This is only used for ships with role asteroid and pirate. With asteroids it gives the likely number of boulders it breaks into. With pirates added by the [[System Populator]]: when lower than 16 it is the cargo, when higher than 15, it is changed in a random value between 0 and 15. This value is overridden by the actual scooped cargo if the pirate had scooped something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;likely_cargo&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== market ==&lt;br /&gt;
Key that sets the market for stations and carriers. The name defines the key in [[commodities.plist]] that will be used as local market. Without a market key, the stations primaryRole is used as market.  Added with test release 1.74&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;market&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;none&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== materials ==&lt;br /&gt;
See [[Materials in Oolite]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_cargo ==&lt;br /&gt;
Sets the ship's cargo limit. On explosion of trader ships added by the [[System Populator]], 10% of this value is used as likely cargo. When the result is lower than 16 it is the cargo, when higher than 15, it is changed in a random value between 0 and 15.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_cargo&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;5&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== max_defense_ships ==&lt;br /&gt;
Designates how many ships a dockable entity (station, carrier) can launch in defense. See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_defense_ships&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;10&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== max_energy ==&lt;br /&gt;
Sets the ship's energy value.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_energy&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;300&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_pitch ==&lt;br /&gt;
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_flight_pitch&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;2.2&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_roll ==&lt;br /&gt;
Sets roll factor. Will usually range from 0.8 to 4.6.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_flight_roll&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;4.2000000000000002&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== max_flight_speed ==&lt;br /&gt;
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_flight_speed&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;320&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== max_flight_yaw ==&lt;br /&gt;
Sets yaw factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0 When no value is defined it will use the same value as max_flight_pitch&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_flight_yaw&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;2.2&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== max_missiles ==&lt;br /&gt;
Sets a ship's missile limit. Maximum allowable value for the player is 16 and for npc ships 32. When not defined, the value with &amp;quot;missiles&amp;quot; is used as max_missiles. When defining more than a few missiles, it could be wise to also define value for &amp;quot;missile_load_time&amp;quot; to avoid massive missile launches. npc ships are more likely to fire missiles the more they carry.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_missiles&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
== max_police ==&lt;br /&gt;
Designates how many police or patrol ships a dockable entity (station, carrier) can launch.  See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_police &amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;10&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== max_scavengers ==&lt;br /&gt;
Designates how many scavengers or miners a dockable entity (station, carrier) can launch. See also [[Station Ships]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;max_scavengers&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;10&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== missile_launch_position ==&lt;br /&gt;
Determines the XYZ point on the model from which a missile is launched.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;missile_launch_position&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 -2.25 10.0&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== missile_load_time ==&lt;br /&gt;
Defines the time in seconds before a new missile is ready to fire after one is fired. Mainly useful for npc ships that have many missiles. Added with test release 1.74&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;missile_load_time&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;2.1&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== missiles ==&lt;br /&gt;
Sets a ship's probable number of missiles.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;missiles&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;integer&amp;gt;0&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== missile_role ==&lt;br /&gt;
Defines the entity that is launched as missile. Can specify a certain missile-type or any other ship-entity by role. Only applies to NPC's, player-ship dependacies must be defined in the [[shipyard.plist]]. If no missile_role is defined and a NPC ship launches a missile he most often chooses the default missile but sometimes chooses one at random from all ships with role missile inside one of the installed OXP's. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;key&amp;gt;missile_role&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;thargon&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== model ==&lt;br /&gt;
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;model&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;example_ship.dat&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== name ==&lt;br /&gt;
States the model's name as it will be known to the ID computer.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;ExampleShip Mark IX&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== no_boulders ==&lt;br /&gt;
With older versions, scripted asteroids had no boulders by default. Starting with 1.70 all asteroids produce boulders when hit by a mining laser. no_boulders can overwrite this to emulate the old situation. By chance factor, or true/false.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;no_boulders&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== pilot ==&lt;br /&gt;
Gives the ship a predefined pilot, defined in characters.plist. &lt;br /&gt;
Can eject in pod, if available, and be captured. &lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;pilot&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;constrictor-mission-thief&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;!-- key to entry in characters.plist --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== port_dimensions ==&lt;br /&gt;
Defines the size of the docking port and takes 3 numbers. This key is generally of little use and can be skipped as it becomes overwritten by the size of the bounding box of the dock subentity.&lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;port_dimensions&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;65 30 500&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== port_radius ==&lt;br /&gt;
Defines the size of the docking port radius. Or more precise, this is the distance from the station centre to the port location. Default value is 500. This key is generally of little use and can be skipped as it will be overwritten by the real position of the dock subentity.&lt;br /&gt;
  &lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;port_radius&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;500&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== requires_docking_clearance ==&lt;br /&gt;
Sets the requirement for docking clearance. Default is false. See also [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|DockingClearance]]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;requires_docking_clearance&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;/true&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== roles ==&lt;br /&gt;
Assigns which [[role]](s) the entity should have, that can correspond to one specific, exclusive use, or several.&lt;br /&gt;
&lt;br /&gt;
The game engine constantly calls for generic roles to populate the universe.  In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.&lt;br /&gt;
&lt;br /&gt;
'''NB:''' If the ship cannot be docked to, extra care should be taken to avoid using the words '''station''' or '''carrier''' as part of any of the ship's role names. When either of these words are inside the roles key, the ship is automatically given station attributes. Other ships might even fruitless try to dock with it, and it will affect how some ships / entities are shown on the scanner.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;hunter(0.25) trader(2.0) pirate&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or an exclusive role, simply:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;uniquely_named_role&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has the benefit of being the only ship to be selected when a [[Script.plist|script]] calls for the ''uniquely_named_role'' ship.&lt;br /&gt;
&lt;br /&gt;
An item from the [[commodities]] can also be named as a role, for when that commodity is floating in space and called upon, to be represented by a particular model.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
 &amp;lt;string&amp;gt;Gold&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some roles are used by the game engine to populate systems, detect and define properties. (see also the [[System Populator]])&lt;br /&gt;
Such roles include 'thargoid', 'missile' and 'energybomb'.&lt;br /&gt;
Externally used equipment also needs specific mention of role, for example EQ_*_MINE and EQ_*_MISSILE.&lt;br /&gt;
&lt;br /&gt;
==rotating==&lt;br /&gt;
Given to a station when rotation is desired.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;rotating&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== rotational_velocity ==&lt;br /&gt;
May be applied to a sub-entity, like the following entry to the [[Shipdata.plist#subentities|subentity]] spines of the [[Weeviloid Hunter]].&lt;br /&gt;
Takes the form of [[Quaternions|quaternions]]. The following example enables rotation around the Z-axis.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;rotational_velocity&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.707 0.0 0.0 0.707&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== scan_class ==&lt;br /&gt;
Will alter the model's appearance on the [[IFF system]].  If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar.  There are other options.&lt;br /&gt;
* CLASS_BUOY&lt;br /&gt;
* CLASS_CARGO&lt;br /&gt;
* CLASS_MILITARY&lt;br /&gt;
* CLASS_MISSILE&lt;br /&gt;
* CLASS_POLICE&lt;br /&gt;
* CLASS_ROCK&lt;br /&gt;
* CLASS_STATION&lt;br /&gt;
* CLASS_THARGOID&lt;br /&gt;
* CLASS_NO_DRAW&lt;br /&gt;
(Name is valid starting with Oolite 1.74. Before it was called &amp;quot;scanClass&amp;quot;. Also starting with 1.74 is that scripts can define custom colours for ships on the [[IFF system]] so ships might have an other scan_class as is seams.)&lt;br /&gt;
&lt;br /&gt;
==== Developer Note ====&lt;br /&gt;
Oolite uses scan_class internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penalties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;scan_class&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;CLASS_ROCK&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== scanner_range ==&lt;br /&gt;
Sets a custom scanner range. Standard is 25.6 km, thargoids have 50 km. Only applies to NPCs. However, at least since oolite 1.65 all defined scanner ranges are limited to 25.6 km, even for thargoids. This means it only makes sense defining shorter ranges than the maximum range.&lt;br /&gt;
&lt;br /&gt;
== scoop_position ==&lt;br /&gt;
Determines the XYZ point on the model from which cargo is scooped. (default is 0,0,0)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;scoop_position&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 -4.5 -23.0&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== script ==&lt;br /&gt;
Specifies a [[Scripting Oolite with JavaScript|JavaScript script]] to attach to the ship. Ship scripts were introduced with Oolite test release 1.70, and are the preferred approach to scripting ships in new versions of Oolite.&lt;br /&gt;
&lt;br /&gt;
== script_info ==&lt;br /&gt;
A property list whose contents are available to JavaScript scripts, for whatever use they desire. It is exposed to JavaScript as the &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Ship#scriptInfo|scriptInfo]]&amp;lt;/code&amp;gt; property of &amp;lt;code&amp;gt;Ship&amp;lt;/code&amp;gt; objects.&amp;lt;br&amp;gt;&lt;br /&gt;
Take note that when using an ascii plist, the JS engine will read in all entries as strings. When you need an entry as number, you might need to explicit convert it to a number. This is specially true for booleans as a &amp;quot;NO&amp;quot; string will be read as true. For all normal keys its Oolite that does the conversion for you.&lt;br /&gt;
&lt;br /&gt;
== script_actions ==&lt;br /&gt;
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity.  As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it.  Should Player already have it, the gift will be in gold. See also [[scripts within shipdata]] for more detailled info.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;script_actions&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;array&amp;gt;&lt;br /&gt;
     &amp;lt;string&amp;gt;debugOn&amp;lt;/string&amp;gt;&lt;br /&gt;
     &amp;lt;string&amp;gt;testForEquipment: EQ_CLOAKING_DEVICE&amp;lt;/string&amp;gt;&lt;br /&gt;
     &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;conditions&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;array&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;foundEquipment_bool equal NO&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;/array&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;do&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;array&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;awardEquipment: EQ_CLOAKING_DEVICE&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;/array&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;else&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;array&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;awardCargo: 100 Gold&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;/array&amp;gt;&lt;br /&gt;
     &amp;lt;/dict&amp;gt;&lt;br /&gt;
     &amp;lt;string&amp;gt;debugOff&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup_actions ==&lt;br /&gt;
Arranges a process that may be necessary for some objects, like ball turrets.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;setup_actions&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;array&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;initialiseTurret&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shaders ==&lt;br /&gt;
The ''shaders'' dictionary has the same structure as the ''[[#materials|materials]]'' dictionary. When [[Shaders in Oolite|shaders]] are available, the contents of the ''shaders'' dictionary are used in preference to those in ''materials''. If shaders are not available, the ''shaders'' dictionary is ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== smooth ==&lt;br /&gt;
Determines if the model will use glLightModel(GL_FLAT) or glLightModel(GL_SMOOTH).&lt;br /&gt;
&lt;br /&gt;
If true, then lighting effects will be interpolated across the polygons of the model, giving a more 'rounded' effect.&lt;br /&gt;
&lt;br /&gt;
Asteroids, Boulders and Splinters use this effect as do some other models.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;smooth&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== spawn ==&lt;br /&gt;
The spawn directory is only used when a ship is added with the command: &amp;quot;spawnShip: shipname&amp;quot;.  This command only allows to add one ship by name (not role!). The position and orientation are taken from a spawn directory that describes the position it is placed and the position it is looking at.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 &amp;lt;key&amp;gt;spawn&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;dict&amp;gt;&lt;br /&gt;
       &amp;lt;key&amp;gt;facing_position&amp;lt;/key&amp;gt;&lt;br /&gt;
       &amp;lt;string&amp;gt;spu 0 0 0&amp;lt;/string&amp;gt;&lt;br /&gt;
       &amp;lt;key&amp;gt;position&amp;lt;/key&amp;gt;&lt;br /&gt;
       &amp;lt;string&amp;gt;wpu 0 0 0.2&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== station_roll ==&lt;br /&gt;
Determines the rotation speed of a station. Default value is determined by the systemwide station_roll in planetInfo.plist. If that is not defined, the default is 0.4. Negative values are also possible for a rotation in the other direction. (Key is added in Oolite 1.74.2)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;station_roll &amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;-1.5&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== subentities ==&lt;br /&gt;
An array of ''subentity definitions''. A ''subentity'' is an object attached to your ship. There are several types of subentity:&lt;br /&gt;
* ''Static subentities'', the default type, are simply extra models. They are defined as separate shipdata.plist entries, so technically they’re ships, but they don’t have a mind of their own. If the main ship is [[#frangible|frangible]], static subentities can take damage and blow up separately from the main ship. They can also be individually exploded or removed by scripts.&lt;br /&gt;
* ''Docks'' are recognized when setting up a station or carrier, and used to determine the station’s docking port parameters. After set-up, they work just like normal static subentities. The string &amp;quot;dock&amp;quot; in lowercase must be part of the old style name in order to get recognised as the dock subEntity.&lt;br /&gt;
* 'Ball turrets'' turn to track the ship’s current target, and shoot plasma balls if the target is within range (6000 metres). A ball turret’s field of fire is a 157 ° cone centred on its original facing. Currently, ball turrets make no effort not to shoot their own ship, so it is up to the designer to ensure this field of fire is clear. Like a static subentity, a ball turret is based on a shipdata.plist entry so its appearance can be customized. Oolite 1.72 or later provides a built-in shipdata entry for ball turrets called, imaginatively, '''ballturret'''.&lt;br /&gt;
* ''Flashers'' are blobs which glow with a pulsating light. From Oolite 1.74 onwards, constant light will also be an option. Note that while flashers appear luminous – they are unaffected by shadows – they do not cast light on other objects.&lt;br /&gt;
&lt;br /&gt;
=== New-style subentity definition ===&lt;br /&gt;
Oolite 1.73 introduced a more flexible, dictionary-based way of specifying subentities. A new-style subentity is a dictionary using the following keys:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Subentity definition properties&lt;br /&gt;
! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''type''' || string || One of: “'''standard'''”, “'''ball_turret'''”, “'''flasher'''”. If not specified, “standard” is assumed.&lt;br /&gt;
|-&lt;br /&gt;
| '''subentity_key''' || string || The key of a ''shipdata.plist'' entry. Required for '''standard''' and '''ball_turret''' subentities, ignored for flashers.&lt;br /&gt;
|-&lt;br /&gt;
| '''position''' || vector || The position of the subentity relative to its parent. (This can be specified as a string with three numbers in it, or an array of three numbers, or a dictionary with '''x''', '''y''' and '''z''' entries.) Default: (0, 0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| '''orientation''' || [[quaternion]] || The orientation of the subentity. Ignored for flashers. (This can be specified as a string with four numbers in it, or an array of four numbers, or a dictionary with '''w''', '''x''', '''y''' and '''z''' entries.) Default: (1, 0, 0, 0), which corresponds to no rotation.&lt;br /&gt;
|-&lt;br /&gt;
| '''is_dock''' || boolean || True if the subentity is a dock; false by default. Only applies to '''standard''' subentities. '''Note:''' this is ''not'' implied by having “dock” in the '''subentity_key''', as it is for old-style subentity definitions.&lt;br /&gt;
|-&lt;br /&gt;
| '''fire_rate''' || number || Interval between shots in seconds, for '''ball_turret''' subentities. Default: 0.5; minimum: 0.25.&lt;br /&gt;
|-&lt;br /&gt;
| '''color''' || [[Materials in Oolite#Colour specifiers|colour specifier]] || Single colour for a flasher. Ignored for non-flashers. Default value: '''redColor'''.&lt;br /&gt;
|-&lt;br /&gt;
| '''colors''' || array || Array of colour specifiers for a flasher. Ignored for non-flashers. Before 1.74, only the first entry was used. If not present, see '''color'''. '''Note:''' like [[#laser_color|laser_color]], flasher colours must be “reasonably bright”.&lt;br /&gt;
|-&lt;br /&gt;
| '''frequency''' || number || Pulse rate for flashers, in cycles per second. Ignored for non-flashers. If 0, the flasher will have full intensity all the time in Oolite 1.74 and later, but half intensity in earlier releases. Default: 2.&lt;br /&gt;
|-&lt;br /&gt;
| '''initially_on''' || boolean || Specifiers whether a flasher is turned on when created. Ignored for non-flashers. Default: yes.&lt;br /&gt;
|-&lt;br /&gt;
| '''phase''' || number || Pulse phase offset for flashers, in seconds. Ignored for non-flashers. (This value is simply added to the time to get the pulse parameter.) Default: 0.&lt;br /&gt;
|-&lt;br /&gt;
| '''size''' || positive number || Diameter of a flasher in metres. Ignored for non-flashers. Default: 8. (Why 8? I don’t remember.)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Old-style subentity definition ===&lt;br /&gt;
Prior to Oolite 1.73, this was the the only way to specify a subentity.&lt;br /&gt;
&lt;br /&gt;
An old-style subentity definition is a string with eight items separated by spaces. In the description below, words in bold correspond to keys in [[#New-style subentity definition|new-style definitions]]. There are two variants:&lt;br /&gt;
&lt;br /&gt;
==== Flashers ====&lt;br /&gt;
For a flasher, the entry takes the form:&lt;br /&gt;
 *FLASHER* x y z hue frequency phase size&lt;br /&gt;
''*FLASHER*'' must be precisely the string “*FLASHER*”, in capitals.&lt;br /&gt;
&lt;br /&gt;
''x'', ''y'' and ''z'' form the '''position'''.&lt;br /&gt;
&lt;br /&gt;
''hue'' specifies the [http://en.wikipedia.org/wiki/HSL_and_HSV HSV] hue component (in degrees) of '''color'''. Saturation and value are always 1.&lt;br /&gt;
&lt;br /&gt;
'''frequency''', '''phase''' and '''size''' are the same as in the new-style format.&lt;br /&gt;
&lt;br /&gt;
'''initially_on''' is false.&lt;br /&gt;
&lt;br /&gt;
==== Other subentities ====&lt;br /&gt;
For a non-flasher, the entry takes the form:&lt;br /&gt;
 key x y z qw qx qy qz&lt;br /&gt;
''key'' corresponds to '''subentity_key'''.&lt;br /&gt;
&lt;br /&gt;
''x'', ''y'' and ''z'' form the '''position'''.&lt;br /&gt;
&lt;br /&gt;
''qw'', ''qx'', ''qy'' and ''qz'' form the '''orientation'''.&lt;br /&gt;
&lt;br /&gt;
'''type''' is ''standard'' unless the command ''initialiseTurret'' is present in the [[#setup_actions|setup_actions]] of the subentity, in which case it is ''ball_turret''. Note that the ''initialiseTurret'' no longer does anything when executed in a script; its presence is only used as an indicator to set the ''is_turret'' property when old-style definitions are translated. If ''initialiseTurret'' is inside a condition, it will be ignored. The ''initialiseTurret'' command is not required or useful for turrets which are only referenced using new-style subentity definitions.&lt;br /&gt;
&lt;br /&gt;
'''is_dock''' is implied by having the string “dock” (in lowercase) in the ''key''.&lt;br /&gt;
&lt;br /&gt;
== track_contacts ==&lt;br /&gt;
Tracks the movement of the ship and sends a &amp;quot;CLOSE CONTACT&amp;quot; message to other ship AI's. It uses a time consuming tracking, so only set to true when actually used.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;track_contacts&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== throw_sparks ==&lt;br /&gt;
Each new ship should start in seemingly good operating condition, unless specifically told not to. (Added with oolite 1.73, false by default)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;throw_sparks&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== thrust ==&lt;br /&gt;
Gives the entity an 'inertia' value, telling how fast it can increase or reduce speed (in m/s^2). 0 for rocks and cargo, 50 for a very fast ship, 100 for a station. When used with turrets it defines the turn rate in revolutions per second (with 1 being an average value). &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;thrust&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;25&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== unpiloted ==&lt;br /&gt;
Used to designate items that will never have a pilot, thus never turn aggressive and never eject a pod. By chance factor, or true/false.&amp;lt;br&amp;gt;&lt;br /&gt;
It will not add a pilot when set to false, but will remove any existing pilot when set to true.&lt;br /&gt;
commsMessages can only be broadcasted by piloted ships. Ships are by default piloted.  cargo , rocks, missiles etc. are not piloted by default.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;unpiloted&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== view_position_.. ==&lt;br /&gt;
Sets the ship's 4 point-of-view positions in XYZ relative to the model.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;view_position_aft&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 5.0 -20.0&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;view_position_forward&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 1.9375 5.0&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;view_position_port&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;-11.85 2.825 -3.5&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;view_position_starboard&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;11.85 2.825 -3.5&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== weapon_energy ==&lt;br /&gt;
This setting works differently depending on the type of entity it's used for:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Missiles.&amp;lt;/b&amp;gt; Changes the damage inflicted by the missile. Any value accepted.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_energy&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;180&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NPC ships.&amp;lt;/b&amp;gt; Changes the forward weapon damage to a value different to the default one. Values higher than 50 will be ignored.&lt;br /&gt;
&lt;br /&gt;
Default values are: WEAPON_PLASMA_CANNON = 6.0; WEAPON_PULSE_LASER = 15.0; WEAPON_BEAM_LASER = 15.0; WEAPON_MINING_LASER = 50.0; WEAPON_THARGOID_LASER = 12.5; WEAPON_MILITARY_LASER = 23.0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_energy&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;17&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;N.B.&amp;lt;/b&amp;gt; It does not have any effect on player ships.&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weapon_offset ==&lt;br /&gt;
Used to change the offsetpoint of a plasma cannon. Removed after version 1.65&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_offset_x&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;real&amp;gt;10&amp;lt;/real&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weapon_position_.. ==&lt;br /&gt;
Plots the 'gunmouth' points of the model's 4 potential lasers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_position_aft&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 -5.0 -20.0&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_position_forward&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;0.0 0.0417 16.6667&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_position_port&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;-13.75 -2.0625 -1.875&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;weapon_position_starboard&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;13.75 -2.0625 -1.875&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=23455</id>
		<title>Oolite JavaScript Reference: SystemInfo</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=23455"/>
		<updated>2010-07-26T01:06:03Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Special Witchspace Location */&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;
&lt;br /&gt;
{{Oolite-class-added|1.74}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;''' objects provide information about a specific system.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;coordinates&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''coordinates''' : {{oojsclass|Vector3D}} (read-only)&lt;br /&gt;
The coordinates of the system in light years. e.g. for Lave: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;. The z component is always zero.&lt;br /&gt;
&lt;br /&gt;
The upper left corner has the coordinate &amp;lt;code&amp;gt;(0, 0, 0)&amp;lt;/code&amp;gt;. Going right increases the x value while going down on the map increases the y value.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).coordinates&lt;br /&gt;
returns the coordinates of the system with an ID number of 7 in the current galaxy. In the first galaxy that would be the coordinates for Lave: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the galaxy.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''systemID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== More properties ==&lt;br /&gt;
In addition to the properties above, you can access many other system properties, using the same keys as [[planetinfo.plist]].&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 &amp;lt;code&amp;gt;System.info.description = &amp;quot;This is a dull planet.&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
sets the description of the current planet  to “This is a dull planet.”&lt;br /&gt;
&lt;br /&gt;
Properties that are changed in &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; are stored in the save file and are permanently changed for that commander. When both the planetInfo.plist and the data from a changed &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; file are present, those of the system.info are used. You can undo any changes in &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; by setting the value to &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;distanceToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''distanceToSystem'''(system : SystemInfo) : Number&lt;br /&gt;
Returns the distance in light years to another &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).distanceToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
If galaxyNumber is 0, this returns 92.8.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;routeToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''routeToSystem'''(system : SystemInfo [, &amp;quot;OPTIMIZED_BY_JUMPS&amp;quot; | &amp;quot;OPTIMIZED_BY_TIME&amp;quot;] ) : Object&lt;br /&gt;
Returns a dictionary containing the route information to another &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;. The dictionary contains the array of system IDs that belong to the &amp;lt;code&amp;gt;route&amp;lt;/code&amp;gt; found, the &amp;lt;code&amp;gt;distance&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; corresponding to said route. Takes the optional parameter &amp;lt;code&amp;gt;&amp;quot;OPTIMIZED_BY_JUMPS&amp;quot;&amp;lt;/code&amp;gt; (default) or &amp;lt;code&amp;gt;&amp;quot;OPTIMIZED_BY_TIME&amp;quot;&amp;lt;/code&amp;gt; to calculate least number of jumps or fastest transit time routes respectively.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 var myRoute = System.infoForSystem(galaxyNumber, 7).routeToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
 myRoute.route&lt;br /&gt;
 myRoute.distance&lt;br /&gt;
 myRoute.time&lt;br /&gt;
returns:&lt;br /&gt;
 7,129,227,73,89,222,29,42,131,62,150,36,28,16,185,86,138,51,8  (the route)&lt;br /&gt;
 96.40  (distance of added jumps)&lt;br /&gt;
 530.40 (travelled time)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemsInRange&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{Oolite-method-added|1.74.2}}&lt;br /&gt;
 function '''systemsInRange'''([range : Number]) : Array&lt;br /&gt;
Returns an array of &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s in range (default: 7) from the given system.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' will not produce correct results if used in interstellar space.&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;SystemInfo.[[#systemsInRange_2|systemsInRange()]]&amp;lt;/code&amp;gt; (which always provides results relative to the current system).&lt;br /&gt;
&lt;br /&gt;
== Static methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;filteredSystems&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''filteredSystems'''(this : Object, predicate : Function) : Array of SystemInfo&lt;br /&gt;
A list of the &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s for which &amp;lt;code&amp;gt;predicate&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 // This is the actual implementation of &amp;lt;code&amp;gt;[[#systemsInRange_2|systemsInRange()]]&amp;lt;/code&amp;gt; in Oolite 1.74.&lt;br /&gt;
 SystemInfo.systemsInRange = function(range) &lt;br /&gt;
 { &lt;br /&gt;
    if (range === undefined) &lt;br /&gt;
    { &lt;br /&gt;
        range = 7; &lt;br /&gt;
    } &lt;br /&gt;
    &lt;br /&gt;
    var thisSystem = system.info; &lt;br /&gt;
    return SystemInfo.filteredSystems(this, function(other) &lt;br /&gt;
    { &lt;br /&gt;
        return (other.systemID !== thisSystem.systemID) &amp;amp;&amp;amp; (thisSystem.distanceToSystem(other) &amp;lt;= range); &lt;br /&gt;
    }); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemsInRange&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''systemsInRange'''([range : Number]) : Array&lt;br /&gt;
Returns an array of &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s in range (default: 7) from the current system.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of 1.74.2, this method works correctly for all systemInfos in the current galaxy, and for the current witchspace location. Trying to use it for other galaxies - or for a non-current witchspace location - will produce an error.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 system.info.systemsInRange(5);&lt;br /&gt;
&lt;br /&gt;
== Special Witchspace Location ==&lt;br /&gt;
&lt;br /&gt;
In order to access information about the current witchspace location while in witchspace itself - an in-between systems location, one that the player can only reach via a misjump - the short form for the local SystemInfo (system.info) will access a special, generic witchspace location, one that always return data for the ''current'' witchspace position, or null values if the player is not in witchspace.&lt;br /&gt;
&lt;br /&gt;
In practice, the witchspace SystemInfo works like all others, with the exception that you cannot store the whole witchspace systemInfo inside a single convenience variable for later use, and that you cannot change specific values to apply to witchspace. As an example, trying to set a value for the local witchspace 'system':&lt;br /&gt;
&lt;br /&gt;
 system.info.economy = 5;&lt;br /&gt;
&lt;br /&gt;
will simply be ignored while in witchspace.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=23454</id>
		<title>Oolite JavaScript Reference: SystemInfo</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=23454"/>
		<updated>2010-07-26T01:00:29Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &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;
&lt;br /&gt;
{{Oolite-class-added|1.74}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;''' objects provide information about a specific system.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;coordinates&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''coordinates''' : {{oojsclass|Vector3D}} (read-only)&lt;br /&gt;
The coordinates of the system in light years. e.g. for Lave: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;. The z component is always zero.&lt;br /&gt;
&lt;br /&gt;
The upper left corner has the coordinate &amp;lt;code&amp;gt;(0, 0, 0)&amp;lt;/code&amp;gt;. Going right increases the x value while going down on the map increases the y value.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).coordinates&lt;br /&gt;
returns the coordinates of the system with an ID number of 7 in the current galaxy. In the first galaxy that would be the coordinates for Lave: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the galaxy.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''systemID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== More properties ==&lt;br /&gt;
In addition to the properties above, you can access many other system properties, using the same keys as [[planetinfo.plist]].&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 &amp;lt;code&amp;gt;System.info.description = &amp;quot;This is a dull planet.&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
sets the description of the current planet  to “This is a dull planet.”&lt;br /&gt;
&lt;br /&gt;
Properties that are changed in &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; are stored in the save file and are permanently changed for that commander. When both the planetInfo.plist and the data from a changed &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; file are present, those of the system.info are used. You can undo any changes in &amp;lt;code&amp;gt;system.info&amp;lt;/code&amp;gt; by setting the value to &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;distanceToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''distanceToSystem'''(system : SystemInfo) : Number&lt;br /&gt;
Returns the distance in light years to another &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).distanceToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
If galaxyNumber is 0, this returns 92.8.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;routeToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''routeToSystem'''(system : SystemInfo [, &amp;quot;OPTIMIZED_BY_JUMPS&amp;quot; | &amp;quot;OPTIMIZED_BY_TIME&amp;quot;] ) : Object&lt;br /&gt;
Returns a dictionary containing the route information to another &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;. The dictionary contains the array of system IDs that belong to the &amp;lt;code&amp;gt;route&amp;lt;/code&amp;gt; found, the &amp;lt;code&amp;gt;distance&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; corresponding to said route. Takes the optional parameter &amp;lt;code&amp;gt;&amp;quot;OPTIMIZED_BY_JUMPS&amp;quot;&amp;lt;/code&amp;gt; (default) or &amp;lt;code&amp;gt;&amp;quot;OPTIMIZED_BY_TIME&amp;quot;&amp;lt;/code&amp;gt; to calculate least number of jumps or fastest transit time routes respectively.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 var myRoute = System.infoForSystem(galaxyNumber, 7).routeToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
 myRoute.route&lt;br /&gt;
 myRoute.distance&lt;br /&gt;
 myRoute.time&lt;br /&gt;
returns:&lt;br /&gt;
 7,129,227,73,89,222,29,42,131,62,150,36,28,16,185,86,138,51,8  (the route)&lt;br /&gt;
 96.40  (distance of added jumps)&lt;br /&gt;
 530.40 (travelled time)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemsInRange&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{Oolite-method-added|1.74.2}}&lt;br /&gt;
 function '''systemsInRange'''([range : Number]) : Array&lt;br /&gt;
Returns an array of &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s in range (default: 7) from the given system.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' will not produce correct results if used in interstellar space.&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;SystemInfo.[[#systemsInRange_2|systemsInRange()]]&amp;lt;/code&amp;gt; (which always provides results relative to the current system).&lt;br /&gt;
&lt;br /&gt;
== Static methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;filteredSystems&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''filteredSystems'''(this : Object, predicate : Function) : Array of SystemInfo&lt;br /&gt;
A list of the &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s for which &amp;lt;code&amp;gt;predicate&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 // This is the actual implementation of &amp;lt;code&amp;gt;[[#systemsInRange_2|systemsInRange()]]&amp;lt;/code&amp;gt; in Oolite 1.74.&lt;br /&gt;
 SystemInfo.systemsInRange = function(range) &lt;br /&gt;
 { &lt;br /&gt;
    if (range === undefined) &lt;br /&gt;
    { &lt;br /&gt;
        range = 7; &lt;br /&gt;
    } &lt;br /&gt;
    &lt;br /&gt;
    var thisSystem = system.info; &lt;br /&gt;
    return SystemInfo.filteredSystems(this, function(other) &lt;br /&gt;
    { &lt;br /&gt;
        return (other.systemID !== thisSystem.systemID) &amp;amp;&amp;amp; (thisSystem.distanceToSystem(other) &amp;lt;= range); &lt;br /&gt;
    }); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemsInRange&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''systemsInRange'''([range : Number]) : Array&lt;br /&gt;
Returns an array of &amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;s in range (default: 7) from the current system.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' As of 1.74.2, this method works correctly for all systemInfos in the current galaxy, and for the current witchspace location. Trying to use it for other galaxies - or for a non-current witchspace location - will produce an error.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 system.info.systemsInRange(5);&lt;br /&gt;
&lt;br /&gt;
== Special Witchspace Location ==&lt;br /&gt;
&lt;br /&gt;
In order to access information about witchspace locations - ones the player can only reach via a misjump, the short form for the local SystemInfo (system.info) will access a special, generic witchspace location, one that always return data for the ''current'' witchspace location, or null values if the player is not in witchspace.&lt;br /&gt;
&lt;br /&gt;
In practice, the witchspace SystemInfo works like all others, with the exception that you cannot store the whole witchspace systemInfo inside a single convenience variable for later use, and that you cannot change specific values to apply to witchspace. For example:&lt;br /&gt;
&lt;br /&gt;
 system.info.economy = 5;&lt;br /&gt;
&lt;br /&gt;
will be ignored in witchspace.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_mission_offering&amp;diff=23419</id>
		<title>OXP mission offering</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_mission_offering&amp;diff=23419"/>
		<updated>2010-07-21T12:03:30Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* How mission offering should be done with JS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How mission offering should be done with Legacy script =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Location for offering ==&lt;br /&gt;
Missions should only be offered while being docked. To prevent offering on special stations make sure you are docked at the main station:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;dockedAtMainStation_bool equal YES&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Only if you are offering something on a special station you can check for just being docked, but then you should also check the station name.&lt;br /&gt;
&lt;br /&gt;
  conditions = (&amp;quot;status_string equal STATUS_DOCKED&amp;quot;, &amp;quot;dockedStationName_string equal Your Station Name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Here is &amp;quot; Your Station Name&amp;quot; the name of the station as defined in [[shipyard.plist]] under &amp;quot;name&amp;quot;. You could skip the first test for being docked as dockedStationName_string only has the stationname if you are docked.&lt;br /&gt;
&lt;br /&gt;
== Conditions for offering ==&lt;br /&gt;
&lt;br /&gt;
Before placing text also check if the missionscreen is not in use. (See the documents in the downloadeble package below for more info)&lt;br /&gt;
&lt;br /&gt;
For Oollite versions up to 1.68 that do not know the &amp;quot;notequal&amp;quot; condition or for compatibillity with those versions use:&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string oneof GUI_SCREEN_MAIN, GUI_SCREEN_STATUS).&lt;br /&gt;
&lt;br /&gt;
At the end of the docking procedure the script runs immediately for one time with gui_screen_string = GUI_SCREEN_MAIN but already with status_string = STATUD_DOCKED. All following moments the script runs with as gui_screen_string the screen you are looking at. When you do nothing further this will be the  GUI_SCREEN_STATUS .  (= F5) You could also explicit check for the mission screen and put your whole action in the else line.&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string equal GUI_SCREEN_MISSION); do = (); else = (your stuff);&lt;br /&gt;
&lt;br /&gt;
But this involves an extra nested condition, so most people will probably prefer the first method. Versions 1.69 and newer will have a not-equal option.&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string notequal GUI_SCREEN_MISSION).&lt;br /&gt;
&lt;br /&gt;
== Setting up the message ==&lt;br /&gt;
&lt;br /&gt;
In the do part you must set a mission image. If you have no image set it to &amp;quot;none&amp;quot;, otherwise you can get an image from a previous offer. Be aware that some computers are case sensitive so use the same casing as the actual picture. The pictures are placed in a folder called &amp;quot;images&amp;quot;, inside the OXP.&lt;br /&gt;
&lt;br /&gt;
 setMissionImage: none&lt;br /&gt;
        or&lt;br /&gt;
 setMissionImage: my_pict.png&lt;br /&gt;
&lt;br /&gt;
Then set the output to the MissionScreen with&lt;br /&gt;
&lt;br /&gt;
 setGuiToMissionScreen&lt;br /&gt;
&lt;br /&gt;
This command creates an empty missionscreen and any text after this will go to this missionscreen. The text is then placed with:&lt;br /&gt;
&lt;br /&gt;
 addMissionText: entryname&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Entryname&amp;quot; is a key value in the file [[missiontext.plist]]  If you use a second addMissionText commands the text is added below the previous. If you add to much text it runs off the screen and is lost. So make sure you don't use to much text.&lt;br /&gt;
The system automatic puts a &amp;quot;hit space to continue&amp;quot; message at the bottom. On hitting this space key the MissionScreen will clear and the StatusScreen is put up. There exists also a command to put up the StatusScreen but you don't need that with offering.&lt;br /&gt;
&lt;br /&gt;
== Offering with Choices ==&lt;br /&gt;
&lt;br /&gt;
When you in addition use the command: &lt;br /&gt;
&lt;br /&gt;
 setMissionChoices: entryname&lt;br /&gt;
&lt;br /&gt;
the &amp;quot;hit space to continue&amp;quot; message is replaced by your choices. Your choices is in this case a key entry in the [[missiontext.plist]] file with as contents an array. On the bottom of your screen you see the contents of the array and if you select one, the variable &amp;quot;missionChoice_string&amp;quot; contains the name of the chosen entry-string. When you are offering choices first make clear that:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;missionChoice_string undefined&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
And in the following conditions:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;missionChoice_string equal Your String&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
And make sure that on all possible choices that the player can make, the choice is reseted: &amp;quot;resetMissionChoice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Some excisting missions reset the choices just before the offering itself, but in that case it is possible that the choices of another active mission that is offered on the same station is reset before it can act on the choices. If you want to play save, just reset the choices on launching so they are clear on the next docking. Also use distinctive text for &amp;quot;Your String&amp;quot; and not just &amp;quot;YES&amp;quot; or &amp;quot;NO&amp;quot; as other badly written OXP could react on those often used responses.&lt;br /&gt;
&lt;br /&gt;
== Setting up the mission desciption ==&lt;br /&gt;
&lt;br /&gt;
If you start a mission it is wise to add a short description and or a location for later reference by the player with:&lt;br /&gt;
&lt;br /&gt;
 setMissionDescription: entryname&lt;br /&gt;
 addMissionDestination: planet_number&lt;br /&gt;
&lt;br /&gt;
Entryname is a key value in the [[missiontext.plist]] file. This must be a short description as long text won't wrap around but runs off the screen at the right side. For planet_numbet you ca use a plain number between 0 and 255 or a variable between square brackets. The destination is visible as a red cross in the galactic chart. If the mission is over you clear this description and the location with:&lt;br /&gt;
&lt;br /&gt;
 clearMissionDescription&lt;br /&gt;
 removeMissionDestination: planet_number&lt;br /&gt;
&lt;br /&gt;
Notice that you do not need to specify the mission name in setting and clearing the missionDescription. The system automatic uses the name of the missionscript that uses this command to store the description. This also means that you can not use these two commands outside the missionscript like inside a death_action of a ship.&lt;br /&gt;
The best lessons are taken by examining existing scripts.  You can download more info and a test OXP here:  [[Media:MOP-Test_1.1.zip|Mission Offering Protocol]]&lt;br /&gt;
&lt;br /&gt;
= How mission offering should be done with JS =&lt;br /&gt;
&lt;br /&gt;
Starting with Oolite 1.74 we have a new method for displaying mission screens, one that minimises the mission screen conflicts that have afflicted scripts for quite some time: [[Oolite_JavaScript_Reference:_Mission#runScreen|mission.runScreen]], please refer to that part of the documentation when writing new missions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The method described below is only needed with Oolite 1.73 or older, and will not work in future versions of Oolite: it was fairly complex to use, and due to its limitations, conflicts between different OXPs were always likely. The code samples below are offered as documentation of how the system worked in practice in order to understand how older javascript code worked, when updating it to more recent versions of Oolite.&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' From the next paragraph on, whenever javascript is mentioned, that refers to older javascript methods &amp;amp; practices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For javascript all the legacy scripts considerations apply.&lt;br /&gt;
You need make sure you don't set up a message when there is already a mission screen or a report screen displayed. Also you shouldn't set up your mission screen when there are valid mission choices that don't belong to your script. With JS every oxp can react to a handler and when your handler code is triggered you must verify no other oxp has already reacted on that handler before you.&lt;br /&gt;
&lt;br /&gt;
== script example for mission offering on JS ==&lt;br /&gt;
&lt;br /&gt;
Below is an example script for clash free mission offering. It should work with Oolite version 1.73 and newer.&lt;br /&gt;
&lt;br /&gt;
 this.name        = &amp;quot;demo&amp;quot;; &lt;br /&gt;
 this.author      = &amp;quot;eric walch&amp;quot;;&lt;br /&gt;
 this.copyright   = &amp;quot;© 2008 eric walch.&amp;quot;;&lt;br /&gt;
 this.description = &amp;quot;Empty script structure that handles population and mission offering&amp;quot;; &lt;br /&gt;
 this.version     = &amp;quot;0.0&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 // N.B. Works only with 1.73+.&lt;br /&gt;
 &lt;br /&gt;
 // startUp only runs once at startup before the demoscreen shows up.&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
     this.reset(); // this.reset() fires not for a cmdr Jameson. When needed for a Jameson, call it here.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // this runs after loading in a saved game. missionVariables are read in at this point.&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
    this.mustPopulate = true;&lt;br /&gt;
    /* used for adding ships after a first launch.&lt;br /&gt;
    This way you don't have to time consuming check every launch if a ship was already there.&lt;br /&gt;
    */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
    if(missionVariables.offering) missionVariables.offering = null;&lt;br /&gt;
    /* When using the missionVariables.offering variable in script you need this function to clear the&lt;br /&gt;
    variable in case the player launched from within the missionscreen without making choices. By clearing&lt;br /&gt;
    this, most scripts that are created acording this layout will automatic do the offer again.&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    /*&lt;br /&gt;
    This is also the place to add your messages to the arrival report with:&lt;br /&gt;
    if(condition) player.addMessageToArrivalReport(expandDescription(&amp;quot;Your message&amp;quot;));&lt;br /&gt;
    */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
        // an other eventhandler could have launched the ship already when it fires before this script.&lt;br /&gt;
        if(player.ship.docked) this.missionOffers();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.missionScreenEnded = this.missionChoiceWasReset = this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
    if(!player.ship.docked) return;&lt;br /&gt;
    if(mission.choice) this.choiceEvaluation();&lt;br /&gt;
    this.missionOffers();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.missionOffers = function()&lt;br /&gt;
 {&lt;br /&gt;
    if (guiScreen == &amp;quot;GUI_SCREEN_MISSION&amp;quot; || guiScreen == &amp;quot;GUI_SCREEN_REPORT&amp;quot;) return; &lt;br /&gt;
 	// there will be a &amp;quot;missionScreenEnded&amp;quot; or &amp;quot;reportScreenEnded&amp;quot; in future to react uppon.&lt;br /&gt;
    if (missionVariables.offering || (mission.choice &amp;amp;&amp;amp; mission.choice != &amp;quot;&amp;quot;)) return;&lt;br /&gt;
 	// when &amp;quot;missionVariables.offering&amp;quot; or &amp;quot;mission.choice&amp;quot; are present it means that an other script claimed the mission_screen.&lt;br /&gt;
    if (player.ship.dockedStation.isMainStation)&lt;br /&gt;
    {&lt;br /&gt;
        //  Your stuff for the main station&lt;br /&gt;
        /*&lt;br /&gt;
        Missionscreens are set up using the command:&lt;br /&gt;
        mission.runMissionScreen(&amp;quot;mission_text&amp;quot;, &amp;quot;backgroundscreen.png&amp;quot;, &amp;quot;choices_text&amp;quot;, &amp;quot;ship_role&amp;quot;, &amp;quot;music&amp;quot;)&lt;br /&gt;
        You can transfer 5 variables at once that formerly had to set or cleared each seperately.&lt;br /&gt;
        When not needed you can transfer a null. nulls at the end can be omitted, in between must be used.&lt;br /&gt;
        &lt;br /&gt;
        When you do an offer you must set a variable to tell an offer is made. It is not safe to use the main mission&lt;br /&gt;
        variable for this. Use missionVariables.offering for this. At the same time you know an other script is busy&lt;br /&gt;
        offering when this variable is set. In case the player launched from within a missionscreen without making an&lt;br /&gt;
        offer, the missionVariables.offering should be reset by script. Please do it on docking and not launching.&lt;br /&gt;
        That way other oxp's that might need the value get an last change on using its content.&lt;br /&gt;
        */&lt;br /&gt;
    }&lt;br /&gt;
    else if (player.ship.dockedStation.shipDescription == &amp;quot;My Station&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        // Your stuff for a special named station&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.choiceEvaluation = function()&lt;br /&gt;
 {&lt;br /&gt;
    if (missionVariables.offering == &amp;quot;MY_OFFER&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
         /* It is saver to not use a simple YES, but use a YES_MISSION. This just for the case there is&lt;br /&gt;
         a conflict with an other bad written oxp that also has a simple YES as answer. */&lt;br /&gt;
        if(mission.choice == &amp;quot;YES_MISSION&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // put your code here. &lt;br /&gt;
            missionVariables.offering = null;&lt;br /&gt;
            mission.choice = null;&lt;br /&gt;
            /* resetting the mission.choice triggers the &amp;quot;missionChoiceWasReset&amp;quot; handler. &lt;br /&gt;
            therefor this must always happen after other variables are reset to prefent that the script&lt;br /&gt;
            tries to run again.  */&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            if (mission.choice == &amp;quot;NO_MISSION&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                // put your code here&lt;br /&gt;
                missionVariables.offering = null;&lt;br /&gt;
                mission.choice = null;&lt;br /&gt;
            } else {missionVariables.offering = null} // one should never get here.&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.setUpShips = function()&lt;br /&gt;
 {&lt;br /&gt;
    // Put here your code that populates the system.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
    if(system.isInterstellarSpace) return;&lt;br /&gt;
    this.setUpShips();&lt;br /&gt;
    // Put here your code else than setting ships up.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.playerEnteredNewGalaxy = function(Galaxy)&lt;br /&gt;
 {&lt;br /&gt;
    // This handler will be rarely needed.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipLaunchedFromStation = function()&lt;br /&gt;
 {&lt;br /&gt;
   /* The first launch after a restart the system must be populated after a launch.&lt;br /&gt;
   The other times it happens after a WitchspaceJump */&lt;br /&gt;
   if(this.mustPopulate) {this.setUpShips(); this.mustPopulate = false}&lt;br /&gt;
    // put here your other code.&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_mission_offering&amp;diff=23416</id>
		<title>OXP mission offering</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_mission_offering&amp;diff=23416"/>
		<updated>2010-07-21T11:43:42Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* How mission offering should be done with JS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How mission offering should be done with Legacy script =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Location for offering ==&lt;br /&gt;
Missions should only be offered while being docked. To prevent offering on special stations make sure you are docked at the main station:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;dockedAtMainStation_bool equal YES&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Only if you are offering something on a special station you can check for just being docked, but then you should also check the station name.&lt;br /&gt;
&lt;br /&gt;
  conditions = (&amp;quot;status_string equal STATUS_DOCKED&amp;quot;, &amp;quot;dockedStationName_string equal Your Station Name&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Here is &amp;quot; Your Station Name&amp;quot; the name of the station as defined in [[shipyard.plist]] under &amp;quot;name&amp;quot;. You could skip the first test for being docked as dockedStationName_string only has the stationname if you are docked.&lt;br /&gt;
&lt;br /&gt;
== Conditions for offering ==&lt;br /&gt;
&lt;br /&gt;
Before placing text also check if the missionscreen is not in use. (See the documents in the downloadeble package below for more info)&lt;br /&gt;
&lt;br /&gt;
For Oollite versions up to 1.68 that do not know the &amp;quot;notequal&amp;quot; condition or for compatibillity with those versions use:&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string oneof GUI_SCREEN_MAIN, GUI_SCREEN_STATUS).&lt;br /&gt;
&lt;br /&gt;
At the end of the docking procedure the script runs immediately for one time with gui_screen_string = GUI_SCREEN_MAIN but already with status_string = STATUD_DOCKED. All following moments the script runs with as gui_screen_string the screen you are looking at. When you do nothing further this will be the  GUI_SCREEN_STATUS .  (= F5) You could also explicit check for the mission screen and put your whole action in the else line.&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string equal GUI_SCREEN_MISSION); do = (); else = (your stuff);&lt;br /&gt;
&lt;br /&gt;
But this involves an extra nested condition, so most people will probably prefer the first method. Versions 1.69 and newer will have a not-equal option.&lt;br /&gt;
&lt;br /&gt;
 conditions = (gui_screen_string notequal GUI_SCREEN_MISSION).&lt;br /&gt;
&lt;br /&gt;
== Setting up the message ==&lt;br /&gt;
&lt;br /&gt;
In the do part you must set a mission image. If you have no image set it to &amp;quot;none&amp;quot;, otherwise you can get an image from a previous offer. Be aware that some computers are case sensitive so use the same casing as the actual picture. The pictures are placed in a folder called &amp;quot;images&amp;quot;, inside the OXP.&lt;br /&gt;
&lt;br /&gt;
 setMissionImage: none&lt;br /&gt;
        or&lt;br /&gt;
 setMissionImage: my_pict.png&lt;br /&gt;
&lt;br /&gt;
Then set the output to the MissionScreen with&lt;br /&gt;
&lt;br /&gt;
 setGuiToMissionScreen&lt;br /&gt;
&lt;br /&gt;
This command creates an empty missionscreen and any text after this will go to this missionscreen. The text is then placed with:&lt;br /&gt;
&lt;br /&gt;
 addMissionText: entryname&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Entryname&amp;quot; is a key value in the file [[missiontext.plist]]  If you use a second addMissionText commands the text is added below the previous. If you add to much text it runs off the screen and is lost. So make sure you don't use to much text.&lt;br /&gt;
The system automatic puts a &amp;quot;hit space to continue&amp;quot; message at the bottom. On hitting this space key the MissionScreen will clear and the StatusScreen is put up. There exists also a command to put up the StatusScreen but you don't need that with offering.&lt;br /&gt;
&lt;br /&gt;
== Offering with Choices ==&lt;br /&gt;
&lt;br /&gt;
When you in addition use the command: &lt;br /&gt;
&lt;br /&gt;
 setMissionChoices: entryname&lt;br /&gt;
&lt;br /&gt;
the &amp;quot;hit space to continue&amp;quot; message is replaced by your choices. Your choices is in this case a key entry in the [[missiontext.plist]] file with as contents an array. On the bottom of your screen you see the contents of the array and if you select one, the variable &amp;quot;missionChoice_string&amp;quot; contains the name of the chosen entry-string. When you are offering choices first make clear that:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;missionChoice_string undefined&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
And in the following conditions:&lt;br /&gt;
&lt;br /&gt;
 conditions = (&amp;quot;missionChoice_string equal Your String&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
And make sure that on all possible choices that the player can make, the choice is reseted: &amp;quot;resetMissionChoice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Some excisting missions reset the choices just before the offering itself, but in that case it is possible that the choices of another active mission that is offered on the same station is reset before it can act on the choices. If you want to play save, just reset the choices on launching so they are clear on the next docking. Also use distinctive text for &amp;quot;Your String&amp;quot; and not just &amp;quot;YES&amp;quot; or &amp;quot;NO&amp;quot; as other badly written OXP could react on those often used responses.&lt;br /&gt;
&lt;br /&gt;
== Setting up the mission desciption ==&lt;br /&gt;
&lt;br /&gt;
If you start a mission it is wise to add a short description and or a location for later reference by the player with:&lt;br /&gt;
&lt;br /&gt;
 setMissionDescription: entryname&lt;br /&gt;
 addMissionDestination: planet_number&lt;br /&gt;
&lt;br /&gt;
Entryname is a key value in the [[missiontext.plist]] file. This must be a short description as long text won't wrap around but runs off the screen at the right side. For planet_numbet you ca use a plain number between 0 and 255 or a variable between square brackets. The destination is visible as a red cross in the galactic chart. If the mission is over you clear this description and the location with:&lt;br /&gt;
&lt;br /&gt;
 clearMissionDescription&lt;br /&gt;
 removeMissionDestination: planet_number&lt;br /&gt;
&lt;br /&gt;
Notice that you do not need to specify the mission name in setting and clearing the missionDescription. The system automatic uses the name of the missionscript that uses this command to store the description. This also means that you can not use these two commands outside the missionscript like inside a death_action of a ship.&lt;br /&gt;
The best lessons are taken by examining existing scripts.  You can download more info and a test OXP here:  [[Media:MOP-Test_1.1.zip|Mission Offering Protocol]]&lt;br /&gt;
&lt;br /&gt;
= How mission offering should be done with JS =&lt;br /&gt;
&lt;br /&gt;
The method described below is only needed with Oolite 1.73 or older. Starting with Oolite 1.74 a new method for displaying a mission screen is introduced that is much easier in use and much less likely to give conflicts between different oxp's. So, when you now start creating a new script, forget the stuff below and start using the [[Oolite_JavaScript_Reference:_Mission#runScreen|new method for displaying a missionscreen]]. The code samples below is at the best useful to understand older code you might want to alter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For java script all above about legacy scripts applies. Just make sure you don't set up a message when there is already a Missionscreen or a Reportscreen on display. Also don't set up your missionscreen when there are valid mission choices they don't belong to you. With JS every oxp can react on an handler and when your handler code is triggered you must verify no other oxp has already reacted on that handler before you.&lt;br /&gt;
&lt;br /&gt;
== script example for missionoffering on JS ==&lt;br /&gt;
&lt;br /&gt;
Below is an example script for clash free mission offering. It should work with Oolite version 1.73 and newer.&lt;br /&gt;
&lt;br /&gt;
 this.name        = &amp;quot;demo&amp;quot;; &lt;br /&gt;
 this.author      = &amp;quot;eric walch&amp;quot;;&lt;br /&gt;
 this.copyright   = &amp;quot;© 2008 eric walch.&amp;quot;;&lt;br /&gt;
 this.description = &amp;quot;Empty script structure that handles population and mission offering&amp;quot;; &lt;br /&gt;
 this.version     = &amp;quot;0.0&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 // N.B. Works only with 1.73+.&lt;br /&gt;
 &lt;br /&gt;
 // startUp only runs once at startup before the demoscreen shows up.&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
     this.reset(); // this.reset() fires not for a cmdr Jameson. When needed for a Jameson, call it here.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // this runs after loading in a saved game. missionVariables are read in at this point.&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
    this.mustPopulate = true;&lt;br /&gt;
    /* used for adding ships after a first launch.&lt;br /&gt;
    This way you don't have to time consuming check every launch if a ship was already there.&lt;br /&gt;
    */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
    if(missionVariables.offering) missionVariables.offering = null;&lt;br /&gt;
    /* When using the missionVariables.offering variable in script you need this function to clear the&lt;br /&gt;
    variable in case the player launched from within the missionscreen without making choices. By clearing&lt;br /&gt;
    this, most scripts that are created acording this layout will automatic do the offer again.&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    /*&lt;br /&gt;
    This is also the place to add your messages to the arrival report with:&lt;br /&gt;
    if(condition) player.addMessageToArrivalReport(expandDescription(&amp;quot;Your message&amp;quot;));&lt;br /&gt;
    */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
        // an other eventhandler could have launched the ship already when it fires before this script.&lt;br /&gt;
        if(player.ship.docked) this.missionOffers();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.missionScreenEnded = this.missionChoiceWasReset = this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
    if(!player.ship.docked) return;&lt;br /&gt;
    if(mission.choice) this.choiceEvaluation();&lt;br /&gt;
    this.missionOffers();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.missionOffers = function()&lt;br /&gt;
 {&lt;br /&gt;
    if (guiScreen == &amp;quot;GUI_SCREEN_MISSION&amp;quot; || guiScreen == &amp;quot;GUI_SCREEN_REPORT&amp;quot;) return; &lt;br /&gt;
 	// there will be a &amp;quot;missionScreenEnded&amp;quot; or &amp;quot;reportScreenEnded&amp;quot; in future to react uppon.&lt;br /&gt;
    if (missionVariables.offering || (mission.choice &amp;amp;&amp;amp; mission.choice != &amp;quot;&amp;quot;)) return;&lt;br /&gt;
 	// when &amp;quot;missionVariables.offering&amp;quot; or &amp;quot;mission.choice&amp;quot; are present it means that an other script claimed the mission_screen.&lt;br /&gt;
    if (player.ship.dockedStation.isMainStation)&lt;br /&gt;
    {&lt;br /&gt;
        //  Your stuff for the main station&lt;br /&gt;
        /*&lt;br /&gt;
        Missionscreens are set up using the command:&lt;br /&gt;
        mission.runMissionScreen(&amp;quot;mission_text&amp;quot;, &amp;quot;backgroundscreen.png&amp;quot;, &amp;quot;choices_text&amp;quot;, &amp;quot;ship_role&amp;quot;, &amp;quot;music&amp;quot;)&lt;br /&gt;
        You can transfer 5 variables at once that formerly had to set or cleared each seperately.&lt;br /&gt;
        When not needed you can transfer a null. nulls at the end can be omitted, in between must be used.&lt;br /&gt;
        &lt;br /&gt;
        When you do an offer you must set a variable to tell an offer is made. It is not safe to use the main mission&lt;br /&gt;
        variable for this. Use missionVariables.offering for this. At the same time you know an other script is busy&lt;br /&gt;
        offering when this variable is set. In case the player launched from within a missionscreen without making an&lt;br /&gt;
        offer, the missionVariables.offering should be reset by script. Please do it on docking and not launching.&lt;br /&gt;
        That way other oxp's that might need the value get an last change on using its content.&lt;br /&gt;
        */&lt;br /&gt;
    }&lt;br /&gt;
    else if (player.ship.dockedStation.shipDescription == &amp;quot;My Station&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        // Your stuff for a special named station&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.choiceEvaluation = function()&lt;br /&gt;
 {&lt;br /&gt;
    if (missionVariables.offering == &amp;quot;MY_OFFER&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
         /* It is saver to not use a simple YES, but use a YES_MISSION. This just for the case there is&lt;br /&gt;
         a conflict with an other bad written oxp that also has a simple YES as answer. */&lt;br /&gt;
        if(mission.choice == &amp;quot;YES_MISSION&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // put your code here. &lt;br /&gt;
            missionVariables.offering = null;&lt;br /&gt;
            mission.choice = null;&lt;br /&gt;
            /* resetting the mission.choice triggers the &amp;quot;missionChoiceWasReset&amp;quot; handler. &lt;br /&gt;
            therefor this must always happen after other variables are reset to prefent that the script&lt;br /&gt;
            tries to run again.  */&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            if (mission.choice == &amp;quot;NO_MISSION&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                // put your code here&lt;br /&gt;
                missionVariables.offering = null;&lt;br /&gt;
                mission.choice = null;&lt;br /&gt;
            } else {missionVariables.offering = null} // one should never get here.&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.setUpShips = function()&lt;br /&gt;
 {&lt;br /&gt;
    // Put here your code that populates the system.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
    if(system.isInterstellarSpace) return;&lt;br /&gt;
    this.setUpShips();&lt;br /&gt;
    // Put here your code else than setting ships up.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.playerEnteredNewGalaxy = function(Galaxy)&lt;br /&gt;
 {&lt;br /&gt;
    // This handler will be rarely needed.&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 this.shipLaunchedFromStation = function()&lt;br /&gt;
 {&lt;br /&gt;
   /* The first launch after a restart the system must be populated after a launch.&lt;br /&gt;
   The other times it happens after a WitchspaceJump */&lt;br /&gt;
   if(this.mustPopulate) {this.setUpShips(); this.mustPopulate = false}&lt;br /&gt;
    // put here your other code.&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Mission_variable&amp;diff=23415</id>
		<title>Mission variable</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Mission_variable&amp;diff=23415"/>
		<updated>2010-07-21T11:41:15Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* JavaScript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mission variables are states that can be set and queried by a script in [[script.plist]], or any JavaScript script.&lt;br /&gt;
&lt;br /&gt;
They may be set to strings of characters that represent states (often in unspaced capital letters - just a style recommendation), or to numeric values, eg.&lt;br /&gt;
&lt;br /&gt;
 '''set: mission_myGreatMission_status START_OF_THE_MISSION'''&lt;br /&gt;
 // mission_myGreatMission_status will be set to the string 'START_OF_THE_MISSION'&lt;br /&gt;
 &lt;br /&gt;
 '''set: mission_myGreatMission_rewardValue 105.5'''&lt;br /&gt;
 // mission_myGreatMission_rewardValue will be set to 105.5&lt;br /&gt;
 // I might alter this value before I award it as credits at the end of the mission&lt;br /&gt;
&lt;br /&gt;
They should have a unique name that is ''always'' prefixed by '''mission_'''. A good naming scheme is to use '''mission_''' followed by a unique identifier for your script (for example, '''fredJamesMission1''') followed by an underscore followed by the use to which the variable is being put (for example, '''_counter1''' or '''_EnemyName''').&lt;br /&gt;
&lt;br /&gt;
Mission variables are saved in the player's saved game file.&lt;br /&gt;
&lt;br /&gt;
=== Good Examples of Mission Variable Names ===&lt;br /&gt;
&lt;br /&gt;
 '''mission_fredJamesMission_counter1'''&lt;br /&gt;
 // might be set to a number that's incremented or decremented every so often&lt;br /&gt;
 &lt;br /&gt;
 '''mission_trumbles_decisionKey'''&lt;br /&gt;
 // could be the result of a missionChoice&lt;br /&gt;
 &lt;br /&gt;
 '''mission_moonShot_stage'''&lt;br /&gt;
 // could be a phrase describing the current scripted action eg. BEGINNING_MISSION or KILLING_ALIENS or MISSION_COMPLETE&lt;br /&gt;
&lt;br /&gt;
=== Poor Examples of Mission Variable Names ===&lt;br /&gt;
&lt;br /&gt;
 '''mission_counter'''&lt;br /&gt;
 // no mission identifier&lt;br /&gt;
 &lt;br /&gt;
 '''mission_variable'''&lt;br /&gt;
 // no mission identifier&lt;br /&gt;
 &lt;br /&gt;
 '''mission_mymissionisaverycomplexaffairthatImightmisspell_andthisisanequallycomplexvariable'''&lt;br /&gt;
 // could be easily misspelt or misunderstood&lt;br /&gt;
&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
&lt;br /&gt;
In JavaScript, mission variables can be accessed through the [[Oolite_JavaScript_Reference:_Global#missionVariables|missionVariables global variable]]. In JavaScript, the '''mission_''' prefix is not used. Two equivalent examples:&lt;br /&gt;
 missionVariables.myGreatMission_status = &amp;quot;START_OF_THE_MISSION&amp;quot;;&lt;br /&gt;
 missionVariables[&amp;quot;myGreatMission_status&amp;quot;] = &amp;quot;START_OF_THE_MISSION&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite_scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=23414</id>
		<title>Oolite JavaScript Reference: Global</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=23414"/>
		<updated>2010-07-21T11:36:36Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;''' environment includes all Oolite objects and methods accessible by all scripts at all times.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;clock&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''clock''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the game clock's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyNumber&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyNumber''' : Number(read-only)&lt;br /&gt;
Returns the number ot the galaxy the player is in.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;guiScreen&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''guiScreen''' : String(read-only)&lt;br /&gt;
Returns the screen the player is looking at. If in flight, it's set to &amp;quot;GUI_SCREEN_MAIN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''manifest''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to directly access the player ship's manifest properties.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mission&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''mission''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access misson methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;missionVariables&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''missionVariables''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access and modify misson variables, used to store information inside save game files.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;oolite&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''oolite''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access oolite's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;player&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''player''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the player object's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''system''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the current system's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;timeAccelerationFactor&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''timeAccelerationFactor''' : Number(read/write)&lt;br /&gt;
Also known as TAF. Will change the ratio between game real time and actual real time (default is 1). The accepted range is between 0.0625 (1/16) and 16. Attempting to set numbers outside this range will reset the TAF to 1.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;worldScripts&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''worldScripts''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access all world scripts, their properties and functions.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 log(worldScripts['oolite-nova'].version);&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;displayNameForCommodity&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''displayNameForCommodity'''(commodityName : String) &lt;br /&gt;
Returns the display name corresponding to the specified commodity. Useful in conjunction with localisation OXPs, or expansions that rename commodities depending on which station / system the player is at.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandDescription'''(description : String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Expands a string, substituting special tokens and any key inside square brackets with the substitution rules for [[Methods#Communications|Communications]].&lt;br /&gt;
When local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandDescription('My ball is [my_color].', { 'my_color': 'red' }); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandMissionText&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandMissionText'''(textKey: String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Returns an expanded mission text, substituting any tokens and keys inside square brackets inside the original missiontext.plist value with its corresponding expanded string.&lt;br /&gt;
If local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandMissionText('oolite_trumble_title'); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''log'''([messageClass : String ,] message : String)&lt;br /&gt;
Writes a message to Oolite's log. The optional messageClass can be used to specify which type of message is written to the log.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 log('myOXP.init','MyOXP initialised and ready!');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomInhabitantsDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomInhabitantsDescription'''([plural : boolean])&lt;br /&gt;
Returns a random capitalised word, suitable to describe one sentient being, or - if using the optional plural argument - a group of sentients.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(&amp;quot;You'll meet a &amp;quot; +  randomInhabitantsDescription() +&lt;br /&gt;
                      &amp;quot;. She'll be with a group of &amp;quot; + randomInhabitantsDescription(true) +'.');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomName&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomName'''()&lt;br /&gt;
Returns a random capitalised word, suitable for use as name, or indeed surname.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(randomName() + ' ' + randomName() +' rules this system with an iron fist.');  &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenBackground&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenBackground'''(image : String) &lt;br /&gt;
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenBackground('oolite-nova-system.png');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenOverlay&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenOverlay'''(image : String) &lt;br /&gt;
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenOverlay('trumblebox.png');&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=23412</id>
		<title>Oolite JavaScript Reference: Global</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Global&amp;diff=23412"/>
		<updated>2010-07-20T16:52:26Z</updated>

		<summary type="html">&lt;p&gt;Kaks: added reference to global methods &amp;amp; objects.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''&amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;''' environment includes all Oolite objects and methods accessible by all scripts at all times.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;clock&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''clock''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the game clock's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyNumber&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyNumber''' : Number(read-only)&lt;br /&gt;
Returns the number ot the galaxy the player is in.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;guiScreen&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''guiScreen''' : String(read-only)&lt;br /&gt;
Returns the screen the player is looking at. If in flight, it's set to &amp;quot;GUI_SCREEN_MAIN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mission&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''manifest''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to directly access the player ship's manifest properties.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mission&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''mission''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access misson methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;oolite&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''oolite''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access oolite's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;player&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''player''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the player object's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''system''' : Object(read-only)&lt;br /&gt;
This property allows an OXP to access the current system's properties and methods.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;timeAccelerationFactor&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''timeAccelerationFactor''' : Number(read/write)&lt;br /&gt;
Also known as TAF. Will change the ratio between game real time and actual real time (default is 1). The accepted range is between 0.0625 (1/16) and 16. Attempting to set numbers outside this range will reset the TAF to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;displayNameForCommodity&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''displayNameForCommodity'''(commodityName : String) &lt;br /&gt;
Returns the display name corresponding to the specified commodity. Useful in conjunction with localisation OXPs, or expansions that rename commodities depending on which station / system the player is at.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandDescription'''(description : String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Expands a string, substituting special tokens and any key inside square brackets with the substitution rules for [[Methods#Communications|Communications]].&lt;br /&gt;
When local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandDescription('My ball is [my_color].', { 'my_color': 'red' }); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;expandMissionText&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''expandMissionText'''(textKey: String [, locals : Object (Dictionary)]) : String&lt;br /&gt;
Returns an expanded mission text, substituting any tokens and keys inside square brackets inside the original missiontext.plist value with its corresponding expanded string.&lt;br /&gt;
If local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 expandMissionText('oolite_trumble_title'); &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''log'''([messageClass : String ,] message : String)&lt;br /&gt;
Writes a message to Oolite's log. The optional messageClass can be used to specify which type of message is written to the log.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 log('myOXP.init','MyOXP initialised and ready!');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomInhabitantsDescription&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomInhabitantsDescription'''([plural : boolean])&lt;br /&gt;
Returns a random capitalised word, suitable to describe one sentient being, or - if using the optional plural argument - a group of sentients.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(&amp;quot;You'll meet a &amp;quot; +  randomInhabitantsDescription() +&lt;br /&gt;
                      &amp;quot;. She'll be with a group of &amp;quot; + randomInhabitantsDescription(true) +'.');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;randomName&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''randomName'''()&lt;br /&gt;
Returns a random capitalised word, suitable for use as name, or indeed surname.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 player.consoleMessage(randomName() + ' ' + randomName() +' rules this system with an iron fist.');  &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenBackground&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenBackground'''(image : String) &lt;br /&gt;
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenBackground('oolite-nova-system.png');&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setScreenOverlay&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
 function '''setScreenOverlay'''(image : String) &lt;br /&gt;
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 setScreenOverlay('trumblebox.png');&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Mission&amp;diff=23410</id>
		<title>Oolite JavaScript Reference: Mission</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Mission&amp;diff=23410"/>
		<updated>2010-07-20T12:09:01Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* runScreen */&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 '''mission''' global object is used to run mission screens, and perform other actions related to mission scripting.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;addMessageText&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''addMessageText'''(message : String)&lt;br /&gt;
&lt;br /&gt;
Appends text to the currently running mission screen.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;markSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''markSystem'''(systemNumber : Number)&lt;br /&gt;
&lt;br /&gt;
Mark a system on the long range chart. (It is currently possible to mark multiple systems at once, as in &amp;lt;code&amp;gt;mission.markSystem(4, 54, 222)&amp;lt;/code&amp;gt;, but this syntax ''may'' be deprecated for Oolite 1.75.)&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;[[#unmarkSystem|unmarkSystem()]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;runScreen&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{Oolite-method-added|1.74}}&lt;br /&gt;
 '''runScreen(parameters : Object [, callback : Function [, this : Object]])''' &lt;br /&gt;
Present a mission screen.&lt;br /&gt;
&lt;br /&gt;
The appearance of the mission screen is defined by the properties of the &amp;lt;code&amp;gt;parameters&amp;lt;/code&amp;gt; object. The currently defined properties are:&lt;br /&gt;
* &amp;lt;code&amp;gt;title : String&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;titleKey : String&amp;lt;/code&amp;gt; (Key in [[missiontext.plist]])&lt;br /&gt;
* &amp;lt;code&amp;gt;music : String&amp;lt;/code&amp;gt; (name of a music file)&lt;br /&gt;
* &amp;lt;code&amp;gt;overlay : String&amp;lt;/code&amp;gt; (name of an image used as overlay)&lt;br /&gt;
* &amp;lt;code&amp;gt;background : String&amp;lt;/code&amp;gt; (name of a picture used as background)&lt;br /&gt;
* &amp;lt;code&amp;gt;model : String&amp;lt;/code&amp;gt; (Role of a ship that will be shown as rotating ship)&lt;br /&gt;
* &amp;lt;code&amp;gt;message : String&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;messageKey : String&amp;lt;/code&amp;gt; (Key in [[missiontext.plist]])&lt;br /&gt;
* &amp;lt;code&amp;gt;choicesKey : String&amp;lt;/code&amp;gt; (Key in [[missiontext.plist]])&lt;br /&gt;
&lt;br /&gt;
Some of these are mutually exclusive; for instance, “title” oveerrides “titleKey”.&lt;br /&gt;
&lt;br /&gt;
The callback function is a function that is called when the player makes a choice. Every runScreen can have its own specific callback function, or you can design a single function to handle multiple mission screens instead.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A simple mission screen:&lt;br /&gt;
 mission.runScreen({&lt;br /&gt;
     title: &amp;quot;My first mission screen&amp;quot;,&lt;br /&gt;
     message: &amp;quot;This am a mission screen wot is good&amp;quot;,&lt;br /&gt;
     choicesKey: &amp;quot;me_firstmission_choices&amp;quot;&lt;br /&gt;
 },&lt;br /&gt;
 function (choice)&lt;br /&gt;
 {&lt;br /&gt;
     if (choice === &amp;quot;1_YES&amp;quot;)  player.commsMessage(&amp;quot;Yay!&amp;quot;);&lt;br /&gt;
     else if (choice === &amp;quot;2_NO&amp;quot;)  player.commsMessage(&amp;quot;Boo.&amp;quot;);&lt;br /&gt;
     else  player.commsMessage(&amp;quot;Whut?&amp;quot;);&lt;br /&gt;
 });&lt;br /&gt;
In [[missiontext.plist]], you’ll need the following. The numbers are used because choices are sorted by key.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;me_firstmission_choices&amp;quot; =&lt;br /&gt;
     {&lt;br /&gt;
         &amp;quot;1_YES&amp;quot; = &amp;quot;Yes.&amp;quot;;&lt;br /&gt;
         &amp;quot;2_NO&amp;quot; = &amp;quot;No.&amp;quot;;&lt;br /&gt;
         &amp;quot;3_MAYBE&amp;quot; = &amp;quot;Maybe.&amp;quot;;&lt;br /&gt;
     };&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The call does not have to be laid out as above. The parameters object can be manipulated in any way you want beforehand, and the callback function can be written out of line. For example, the following is equivalent:&lt;br /&gt;
 var parameters = new Object();&lt;br /&gt;
 parameters.title = &amp;quot;My first mission screen&amp;quot;;&lt;br /&gt;
 parameters.message = &amp;quot;This am&amp;quot;;&lt;br /&gt;
 parameters.choicesKey = &amp;quot;me_firstmission_choices&amp;quot;;&lt;br /&gt;
 parameters.message += &amp;quot; a mission screen wot is good&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 function callback(choice)&lt;br /&gt;
 {&lt;br /&gt;
     if (choice === &amp;quot;1_YES&amp;quot;)  player.commsMessage(&amp;quot;Yay!&amp;quot;);&lt;br /&gt;
     else if (choice === &amp;quot;2_NO&amp;quot;)  player.commsMessage(&amp;quot;Boo.&amp;quot;);&lt;br /&gt;
     else  player.commsMessage(&amp;quot;Whut?&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 mission.runScreen(parameters, callback);&lt;br /&gt;
&lt;br /&gt;
This form is more complicated, and the ordering is less intuitive. However, it does allow you to make complex decisions about the parameters in code, and writing the callback out of line can be preferable if it’s long. It is recommended that you start out with the first approach, but keep in mind that there are other options if it becomes too limiting.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setInstructions&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''setInstructions(instructions : String, [worldScriptName : String])'''&lt;br /&gt;
&lt;br /&gt;
Specify a message to put on the Manifest screen (usually short instructions for current mission), under the title “Missions”.&lt;br /&gt;
&lt;br /&gt;
When not called from within a world script, the name of a world script must be specified so that Oolite knows which script the message belongs to. Clear the message by calling &amp;lt;code&amp;gt;setInstructions(null)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It is recommended that &amp;lt;code&amp;gt;setInstructions()&amp;lt;/code&amp;gt; is used only when you need to customise the text for a specific scenario. For static text, use &amp;lt;code&amp;gt;[[#setInstructionsKey|setInstructionsKey()]]&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;[[#setInstructionsKey|setInstructionsKey()]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;setInstructionsKey&amp;lt;/code&amp;gt; ===&lt;br /&gt;
{{Oolite-method-added|1.74}}&lt;br /&gt;
 function '''setInstructionsKey(messageKey : String, [worldScript : String])'''&lt;br /&gt;
&lt;br /&gt;
Like &amp;lt;code&amp;gt;[[#setInstructions|setInstructions()]]&amp;lt;/code&amp;gt;, but looks up the specified &amp;lt;code&amp;gt;messageKey&amp;lt;/code&amp;gt; in [[missiontext.plist]].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;[[#setInstructions|setInstructions()]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;unmarkSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''unmarkSystem'''(systemNumbers : Number)&lt;br /&gt;
&lt;br /&gt;
Remove a mark set with &amp;lt;code&amp;gt;[[#markSystem|markSystem()]]&amp;lt;/code&amp;gt;. (It is currently possible to mark multiple systems at once, as in &amp;lt;code&amp;gt;mission.unmarkSystem(4, 54, 222)&amp;lt;/code&amp;gt;, but this syntax ''may'' be deprecated for Oolite 1.75.)&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &amp;lt;code&amp;gt;[[#markSystem|markSystem()]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Missiontext.plist&amp;diff=23409</id>
		<title>Missiontext.plist</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Missiontext.plist&amp;diff=23409"/>
		<updated>2010-07-20T11:31:46Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Special Expansions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the filename of the file that contains all the text relevant to scripted missions.  See the [[Property_list|Property List]] page for more detail on plists.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
The file is organised as a dictionary &amp;lt;dict&amp;gt;. &lt;br /&gt;
Every entry consists of the name &amp;lt;key&amp;gt;, followed by the text &amp;lt;string&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 Example:&lt;br /&gt;
   conhunt_short_desc1 = &amp;quot;Hunt for the constrictor stolen from Xeer.&amp;quot;;&lt;br /&gt;
 or in XML:&lt;br /&gt;
   &amp;lt;key&amp;gt;conhunt_short_desc1&amp;lt;/key&amp;gt;&lt;br /&gt;
   &amp;lt;string&amp;gt;Hunt for the constrictor stolen from Xeer.&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Special Expansions==&lt;br /&gt;
&lt;br /&gt;
These can be included in your text, inside the quotation marks in openStep, or inside the &amp;lt;string&amp;gt;..&amp;lt;/string&amp;gt; tags in XML, to automatically insert the following details&lt;br /&gt;
&lt;br /&gt;
[commander_name] - Displays the name of the saved game file.&lt;br /&gt;
&lt;br /&gt;
[commander_shipname] - Displays the name of the player's ship, as specified by [[shipdata.plist]].&lt;br /&gt;
&lt;br /&gt;
[commander_shipdisplayname] - Could be different from commander_shipname.&lt;br /&gt;
&lt;br /&gt;
[commander_rank] - Displays the player's Elite rating.&lt;br /&gt;
&lt;br /&gt;
[commander_legal_status] - Displays the player's current legal status.&lt;br /&gt;
&lt;br /&gt;
[commander_bounty] - Displays the current bounty on the player. ''(Oolite v1.74 &amp;amp; up)''&lt;br /&gt;
&lt;br /&gt;
[nom] - Generate a random surname.&lt;br /&gt;
&lt;br /&gt;
[thanks-for-assist] - Err, thanks the player for their assistance.&lt;br /&gt;
&lt;br /&gt;
[police-thanks-for-assist] - the police thanks the player personally.&lt;br /&gt;
&lt;br /&gt;
[describe-pirate] - Random description for an outlaw.&lt;br /&gt;
&lt;br /&gt;
[describe-Pirate] - Capitalized random description for an outlaw.&lt;br /&gt;
&lt;br /&gt;
[thargoid_curses] - Random Thargoid curses.&lt;br /&gt;
&lt;br /&gt;
[police_warning] - Random impending fines notifications.&lt;br /&gt;
&lt;br /&gt;
[police_attack_warning] - Random warning of immediate(?) attack.&lt;br /&gt;
&lt;br /&gt;
%H - Will display the current system name i.e. Isinor.&lt;br /&gt;
&lt;br /&gt;
%I - Displays the current system name with &amp;quot;ian&amp;quot; attached i.e. Isinorian.&lt;br /&gt;
&lt;br /&gt;
%R - Random word.&lt;br /&gt;
&lt;br /&gt;
%N - Random name. More variation than with %R. (Feature added with Oolite 1.73)&lt;br /&gt;
&lt;br /&gt;
%Jxxx - Will display the system name of system with ID number &amp;quot;xxx&amp;quot;. xxx must be a 3 digit number or no replacement takes place. e.g. %J007 is Lave. This replacement follows any system renaming by other oxp's. (Feature added with Oolite 1.73)&lt;br /&gt;
&lt;br /&gt;
If the message contains other elements enclosed in square brackets [like_this]&lt;br /&gt;
that correspond to mission_variable names or keys in descriptions.plist, then these will also be expanded and substituted into the original message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For further details, see also [[Methods#Communications|Communications in Methods]].&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
Several spacial characters are used in determining the layout of the text, just as in Wiki.&lt;br /&gt;
&lt;br /&gt;
*'''\&amp;quot;''' Enables the use of colons.&lt;br /&gt;
*'''\\n''' Insers a hard Enter.&lt;br /&gt;
&lt;br /&gt;
In XML:&lt;br /&gt;
*'''\n''' Inserts a hard Enter.&lt;br /&gt;
&lt;br /&gt;
 Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;trumble_offer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt;string&amp;gt;Commander,\n\nYou look like a man who could use a Trumble!...&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Choices ==&lt;br /&gt;
Most missions offer a choice, that is the spirit of elite. &lt;br /&gt;
&lt;br /&gt;
 Example:&lt;br /&gt;
 &amp;lt;key&amp;gt;nova_yesno&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;dict&amp;gt;&lt;br /&gt;
 		&amp;lt;key&amp;gt;YES&amp;lt;/key&amp;gt;&lt;br /&gt;
 		&amp;lt;string&amp;gt;Okay, I'll help.&amp;lt;/string&amp;gt;&lt;br /&gt;
 		&amp;lt;key&amp;gt;NO&amp;lt;/key&amp;gt;&lt;br /&gt;
 		&amp;lt;string&amp;gt;No, sorry.&amp;lt;/string&amp;gt;&lt;br /&gt;
 	&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Futurevision_OXP&amp;diff=23383</id>
		<title>Futurevision OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Futurevision_OXP&amp;diff=23383"/>
		<updated>2010-07-16T22:48:29Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Futurevision.oxp''' is a now obsolete [[OXP]] which provided some Oolite 1.71 scripting features for Oolite 1.70. It was intended for use by JavaScript OXP developers.&lt;br /&gt;
&lt;br /&gt;
This version provides the following:&lt;br /&gt;
* [http://www.aegidian.org/bb/viewtopic.php?p=47550#47550 Global functions with lowercase names].&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Vector#random|Vector.random()]]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Vector#randomDirection|Vector.randomDirection()]]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Vector#randomDirectionAndLength|Vector.randomDirectionAndLength()]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [http://www.aegidian.org/bb/viewtopic.php?p=46338#46338 &amp;lt;code&amp;gt;Sound&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SoundSource&amp;lt;/code&amp;gt;] – although they don’t actually play sound.&lt;br /&gt;
&lt;br /&gt;
[[Media:Futurevision.oxp.zip|Download]] (5 KiB)&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXPs_%27N%27_to_%27S%27&amp;diff=23338</id>
		<title>OXPs 'N' to 'S'</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXPs_%27N%27_to_%27S%27&amp;diff=23338"/>
		<updated>2010-07-14T13:38:53Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Others */  updated orbits link to point at the latest version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OXP_Icon_3.png‎|128px|right]]&lt;br /&gt;
== Index ==&lt;br /&gt;
&lt;br /&gt;
[[OXPs 'N' to 'S'#Links|Go to Index]]&lt;br /&gt;
&lt;br /&gt;
== N  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/newships.oxp.zip ''New Ships'']&lt;br /&gt;
| [[Hamadryad]]&amp;lt;br&amp;gt;[[Josher]]&amp;lt;br&amp;gt;[[Naga]]&amp;lt;br&amp;gt;[[Ringhals]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a variety of mining and trade ships seen in previous versions of Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Neolite Ships]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Oolite ships replacement set.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/hud_ng.oxp.zip ''NG HUD'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/nuvipers.zip ''Nu Vipers'']&lt;br /&gt;
| [[GalCop Viper Mark II]]&amp;lt;br&amp;gt;[[GalCop Viper Cruiser]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Increases the types of Viper patrol ships appearing in the space lanes and defending Stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Nukes.oxp|Nuclear Torpedos]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Adds some powerful, but slow moving, missiles.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Nuit Space Station OXP]]&lt;br /&gt;
|&lt;br /&gt;
| [[Nuit Space Station OXP|Nuit Space Station]]&lt;br /&gt;
| Station. [[Isis Interstellar]] formally announces the availability of their newest creation, the Nuit space station.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== O  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Old Ships]]&lt;br /&gt;
| [[Bushmaster Miner]]&amp;lt;br&amp;gt;[[Cat_%28Oolite%29|Cat (Cougar)]]&amp;lt;br&amp;gt;[[Chameleon_%28Oolite%29|Chameleon]]&amp;lt;br&amp;gt;[[Ghavial_%28Oolite%29|Ghavial]]&amp;lt;br&amp;gt;[[Iguana_%28Oolite%29|Iguana]]&amp;lt;br&amp;gt;[[Monitor_%28Oolite%29|Monitor]]&amp;lt;br&amp;gt;[[Ophidian_%28Oolite%29|Ophidian]]&amp;lt;br&amp;gt;[[Salamander_%28Oolite%29|Salamander]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A collection of ships from ArcElite and Elite-A.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Old_Ships_2010|Old Ships 2010]] {{OXPUpdated|2010-05-23}}&lt;br /&gt;
| [[Bushmaster  Miner]]&amp;lt;br&amp;gt;[[Cat_%28Oolite%29|Cat (Cougar)]]&amp;lt;br&amp;gt;[[Chameleon_%28Oolite%29|Chameleon]]&amp;lt;br&amp;gt;[[Ghavial_%28Oolite%29|Ghavial]]&amp;lt;br&amp;gt;[[Iguana_%28Oolite%29|Iguana]]&amp;lt;br&amp;gt;[[Monitor_%28Oolite%29|Monitor]]&amp;lt;br&amp;gt;[[Monitor 2]]&amp;lt;br&amp;gt;[[Ophidian_%28Oolite%29|Ophidian]]&amp;lt;br&amp;gt;[[Salamander_%28Oolite%29|Salamander]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A new version of Murgh's Old Ships, retextured by P.A.Groove. Includes a bonus ship, the Monitor 2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Oo-Haul]]&lt;br /&gt;
| [[L-Crate_Hauler|L-Crate Hauler]]&lt;br /&gt;
|&lt;br /&gt;
|[[Oolite_Missions#Oo-haul_Escort_Missions|Mission]]. Vast corporate bulk haulers can be seen in the space lanes. Commanders with a respectable Elite rating who chose to dock with a [[Pi-42]] base may also be offered missions to escort one of these haulers safely to its destination. You must also install the [[Your Ad Here!|Your Ad Here!]] OXP for this OXP to work properly.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://terrastorage.ath.cx/Marmagka/9fffb0bdf04397418d5ef9c3715b14c8/OoliteItaliano_v1.4.zip''Oolite Italiano v1.4'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Miscellaneous. First ever Oolite localization OXP. Requires Oolite v1.74 or later.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.boxcn.net/shared/ch3lsepk9k ''Oolite Russian v1.0'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Miscellaneous. The second Oolite localization OXP. Requires Oolite v1.72 or later.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Orb]]&lt;br /&gt;
| [[Orb]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a new alien race, which may (or may not) help GalCop in the battle against the Thargoids.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/x9u5xoulkq ''Orbits 1.2.1''] {{OXPUpdated|2010-07-08}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Utility. Positions planets on orbits around the sun. Requires Oolite v1.74.x.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Ore Processor]] {{OXPUpdated|2010-06-05}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Ore_Processor|Equipment]]. When mounted to a ships fuel scoop systems extracts valuable materials from asteroid fragments. A must for any Commander working as a miner.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Orisis]]&lt;br /&gt;
| [[Orisis]]&lt;br /&gt;
|&lt;br /&gt;
|BigTraders. New passenger liners that ferry passengers around.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Outrider_%28Oolite%29|Outrider]]&lt;br /&gt;
| [[Outrider_%28Oolite%29|Outrider]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A medium fighter produced by the [[Taranis Corporation HQ (Oolite)|Taranis Corporation]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[OXPConfig|OXP Config 1.08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Tools/Utility. This tool gives you the ability to configure several oxps. It changes internal (local) settings of the oxps to enable (or disable) logging or audio functions and special settings to recognize errors or to avoid clashes. (Updated 04/09/2009)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== P  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pallas]]&lt;br /&gt;
| [[Pallas]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A fast but lightly shielded fighter.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[P.A. Groove Stations OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Stations. Adds lots of different types of Coriolis and Dodec Stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pelamis]]&lt;br /&gt;
| [[Pelamis]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Pelamis trade ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Personalities OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a bunch of unique, well-known personalities to the Ooniverse. Keen to meet yourself in your game (or have others meet yourself in their game)? Submit your own personality in the OXP's thread on the Oolite BBs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Phoenix]]&lt;br /&gt;
| [[Phoenix]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A strange ship, built from salvaged parts from various Serpent Class ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Pirate Coves OXP|Pirate Coves]]&lt;br /&gt;
|&lt;br /&gt;
| [[Pirate Coves OXP|Pirate Coves]]&lt;br /&gt;
| [[Oolite_Missions#Pirate_Coves|Mission]]. Some rock hermits in the more dangerous systems have been taken over by pirates. Traders coming too close are likely to be assaulted by scrambled pirates keen to relive them of their cargo.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/piratetraps.oxp.zip ''Pirate Traps'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. To combat piracy GalCop sometimes deploys dummies of trade ships. Pirates who fire on them have their details transmitted to the police and face large fines.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Planetfall_OXP|Planetfall]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|System. Allows the player to land on and trade at the planets and moons of each system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pods_OXP|Pods]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Cargo. Many new varieties of cargo pod, including fuel, missile, bulk, and empty, plus pods which take a couple of goes to scoop, jam in the fuel scoop, explode and even bring a trumble. Designed as a balanced OXP, to add some positives and some negatives to cargo scooping, to give more realism. Those of you who also use the [[UPS_Courier|UPS Courier]] OXP can also [http://www.boxcn.net/shared/sytn2yhpu0 download a little add-on] to the OXP that applies some of the new pods to UPS ones too (UPS Courier needs to be installed for the add-on to work).&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| Probe&amp;lt;br /&amp;gt;(Now part of the [[Armoury_OXP|Armoury  OXP]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. A long-range probe missile, flies away from the ship and scans at ranges of 50km and 100km, reporting ships found back to the ship. It then turns around and comes back, ready for fuel scooping and re-use.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pteradyne Technologies Ships OXP]]&lt;br /&gt;
| [[Excalibur]]&amp;lt;br&amp;gt;[[Paladin]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A powerful combat ship, the Excalibur is offered for sale on the open market. The Paladin is the even tougher Military version, although sometimes these ships fall into the wrong hands.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Python Class Cruiser]]&lt;br /&gt;
| [[Python Class Cruiser]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A large powerful trade ship, which can also hold its own in battle. Alternate shader version also available. (Shaders require Oolite 1.69 or later.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Q  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== R  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/racers.oxp.zip ''Racers'']&lt;br /&gt;
|[[Chicaneer Mk II]]&amp;lt;br&amp;gt;[[Chicaneer Mk IV]]&amp;lt;br&amp;gt;[[Dragster Mk I]]&amp;lt;br&amp;gt;[[Dragster Mk II]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds dedicated racing ships to the Universe. Although very fast, these ships are pure racers with no cargo bays and light shields. The focus on pure speed makes them ill-suited to combat or trading roles.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/index.php/RingPod.oxp ''Racing Rings'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Adds Racing Rings to the Galaxy 1 systems of Lave and Zaonce. Fly through the rings in order and completing the race circuit will transmit the competitors' time.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|[[Ramon's_Anaconda|Ramon's Anaconda]]&lt;br /&gt;
|[[Ramon's_Anaconda|Ramon's Anaconda]]&lt;br /&gt;
|&lt;br /&gt;
| Ship. This is a fantastic re-imagining of the Anaconda freighter, made by  Ramon, with assistance by Griff. Check out its special features!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Random_Docking_Music_OXP|Random Docking Music]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Plays a randomly selected music track on activating docking computers  (slow dock), from a list set inside the OXP.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|[[Random Hits OXP|Random Hits 1.4.2]] {{OXPUpdated|2010-07-05}}&lt;br /&gt;
|[[GalMine Hopper]]&lt;br /&gt;
|[[Space Bar]]&lt;br /&gt;
|[[Oolite_Missions#Random_Hits|Missions]] / Ships / Stations / Feature. Adds [[Space Bar|Seedy Space Bars]] to the space lanes of all Anarchy Systems. Commanders who chose to dock with one can view a Bulletin Board displaying details of the local Galaxies Most Wanted Criminals. Large bounties are paid for killing or capturing one of these offenders. Missions are procedurally generated using a database of over 40,000 words creating over one trillion different Bulletin Board Advertisements. Missions are therefore effectively never-ending. This OXP requires [http://developer.berlios.de/project/showfiles.php?group_id=3577&amp;amp;release_id=13778 Version 1.74 of Oolite].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[http://terrastorage.ath.cx/Marmagka/e8e9ce360da6bb40f5952cbe00f02501/RedSet.zip ''RedSet''] {{OXPNew|2010-06-18}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Backgrounds for the UI screens. Just a small demo of one of Oolite v1.74's new features.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[RegistrationID|Registration ID]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Flavour.  All Oolite standard ships now have ID tags.. You need at least Oolite  1.73 and a Graphics card capable of running shaders on a full setting..&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Remorse_Of_Conscience_v2|Remorse Of Conscience]]&lt;br /&gt;
| [[Remorse_Of_Conscience_v2|Remorse Of Conscience]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A trade ship with a large hold, that can hold its own in combat. A good upgrade from the Cobra Mk III.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Renegade Pirates OXP|Renegade Pirates V3.0]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships / Feature. Adds rare very well armed pirate versions of Classic Elite ships to the more lawless systems. These pirates carry high bounties, but their multiple lasers and plasma cannons will make mince-meat of a young Jameson. Do not install this OXP until you have an Iron Ass!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/RVandGS.zip ''Renegade Viper + Grass Snake'']&lt;br /&gt;
|[[Renegade Viper]]&amp;lt;br&amp;gt;[[Grass Snake]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Sometimes even GalCops are victims of crime, finding their Vipers stolen from the docking berth. The joy-rider gives the stolen Viper a new lick of paint and joins a pirate fleet. Large bounties are paid for ridding the space lanes of these thieves. The Grass Snake is a trade ship with a large hold, often used by pirates.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Repair_Bots_OXP|Repair 'Bots]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. A pylon mounted canister of repair nanobots. These can be activated in-flight, when they scan your ship for damaged equipment and attempt to fix an item of it (a random one if multiple items are found). They are reliable for lower tech items, but as the equipment gets more complicated they sometimes struggle. But if all else fails, buy, try and fly again...&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Ring_Racer_OXP|Ring Racer]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Mission. Corporate Systems Ring Racing League in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Rock Hermit Locator|Rock Hermit Locator 1.3.2]] {{OXPUpdated|2010-05-31}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Rock Hermit Locator is a piece of equipment for your ship to locate Rock Hermits. Useful for miners and Traders. You need to already have bought the advanced space compass that works in tandem with the RHL (&amp;quot;Rock Hermit Locator&amp;quot;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== S  ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Saleza Aeronautics]]&lt;br /&gt;
| [[Bellatrix Cruiser]]&amp;lt;br&amp;gt;[[Rigel Bomber]]&amp;lt;br&amp;gt;[[Saiph Interceptor]]&lt;br /&gt;
|&lt;br /&gt;
|Ships / Feature. High Tech Corporate States gain their own patrol craft. Some of these ships are also available on the open market.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Santa]]&lt;br /&gt;
| [[Santa]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Just for fun adds a (very rare) Santa Sledge to the space lanes escorted by plasma gun toting reindeer space bikers!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Save_Anywhere|Save Anywhere]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Utility. Save Anywhere allows you to save your game at any OXP Station, instead of only at Main Stations, as in the standard game.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/c/c7/BlackBaron1.70.zip ''Scourge of the Black Baron v1.70'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#The_Scourge_of_the_Black_Baron|Mission]]. A sequel to the [http://capnhack.com/hosting/oolite/Oolite/OXPs/longway.oxp.zip ''Long Way Around''] mission, featuring combat and transport missions. Well suited to a relative novice in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Second_Wave_OXP|Second Wave]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. Some new variants on the standard Thargoid Warship and Thargon Robot Fighter.&amp;lt;br&amp;gt;Adds a variety of new alien ship variants.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/s-ships1.zip ''Selezen's S-Ships'']&lt;br /&gt;
| [[GalCop SWAT Viper]]&amp;lt;br&amp;gt;[[Oresrian Trader]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. In response to increasing piracy GalCop has introduced the SWAT Viper, a beefed up version of the standard Viper. Also adds the peaceful Oresrian Trader.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Sell equipment OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Allows you to resell all equipment you bought at an equipment store of suitable techlevel. For a small fee you purchase the &amp;quot;Sell xyz&amp;quot;-option, and are refunded 60 per cent of the original price.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Shady Billboards OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Demo. The '''Shady Billboards''' OXP demonstrates [[shaders in Oolite]] by displaying adverts from [[Your_Ad_Here!|Your Ad Here!]] on an animated electronic billboard.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Shady Cobra OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. A [[shaders in Oolite|Shader]] example (requires Oolite 1.69 or later). Replaces the normal model for the Cobra Mk III with one featuring the new Shaders.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[S.I.R.F.]] {{OXPNew|2010-07-02}}&lt;br /&gt;
|&lt;br /&gt;
| [[S.I.R.F.|System Independent Repair Facility]]&lt;br /&gt;
| Stations. The station is a repair facility for ships in the systems. First released in 2006 on Oosat 2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/All-Stars_0.zip ''Skrounk All-Stars Limited'']&lt;br /&gt;
| [[All Stars Large Freighter]]&amp;lt;br&amp;gt;[[Seymour Class Sled]]&amp;lt;br&amp;gt;[[Starbelly Class Sled]]&amp;lt;br&amp;gt;[[Starhawk|Star Hawk]]&amp;lt;br&amp;gt;[[Starwolf_Mark_I|Starwolf Mk I]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A set of ships featuring a large trade ship and a variety of fighters and escorts.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Smivs'_ShipSet|Smivs' ShipSet]] {{OXPUpdated|2010-05-22}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. This OXP is a replacement ship set giving the ships and other objects in Oolite a new, more sophisticated look. This is achieved by applying new textures to the original models. This preserves the originality of the game...the ships are the same, but better looking!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Snark]]&lt;br /&gt;
| [[Snark]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The Snark is a powerful fighter / trader, often used by pirates and bounty hunters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Snoopers|Snoopers2.0.3]] {{OXPUpdated|2010-06-17}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. The galactic news network.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Solid Gold Cobra Mk.3]] {{OXPNew|2010-06-09}}&lt;br /&gt;
| [[Solid Gold Cobra Mk.3]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A Solid Gold Cobra Mk.3&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Spearhead Interceptor Mk.I]]&lt;br /&gt;
| [[Spearhead Interceptor Mk.I]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A pure fighter, fast and nippy but with a weak shield, no cargo bay and can be a twitchy bird to fly. Often used as an escort or part of a pirate fleet acting in a hit an run role.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Spy Hunter OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Spyhunter|Mission]]. A mission for the Galactic Navy available to a Commander with a rating of 'Dangerous' or above. Spys from the Empire sometimes infiltrate GalCop space. Commanders wishing to volunteer for hunting duties should visit the Navy base at Inines in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/StarWars.zip ''Star Wars Ships'']&lt;br /&gt;
| [[A-Wing]]&amp;lt;br&amp;gt;[[B-Wing]]&amp;lt;br&amp;gt;[[Lambda Shuttle]]&amp;lt;br&amp;gt;[[Tie-Fighter]]&amp;lt;br&amp;gt;[[Tie-Interceptor]]&amp;lt;br&amp;gt;[[X-Wing]]&amp;lt;br&amp;gt;[[Y-Wing]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a set of ships from the Star Wars Universe to Oolite. Tie Fighters are occasionally used by GalCop to support Viper patrols, but all ships are available on the open market and may be used by traders, pirates and bounty hunters alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Status Quo Q-bomb OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Changes the behaviour of Q-bombs according to the [[Status Quo]] novel. They don't detonate in gravity wells, like close to planets or suns.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Stealth_OXP|Stealth]] {{OXPNew|2010-06-15}}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Mission. Small G3 mission to showcase the new scanner capabilities of 1.74 and to introduce stealth ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| ''[http://www.box.net/shared/static/9cwp2jk84o.zip Sung's Detailed Textures]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Replacement textures for all Classic Elite Ships. The author's web-site no longer has a link to his textures. The link will download them directly from Lestradae's hosting site.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Shady Sungs|Sung's Detailed Textures (Shader Version)]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Same as the above oxp, only now with shader support. Normal maps &amp;amp; Effects maps by ADCK. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [http://sancho.dk/oolite/sunskimmers.zip ''Sunskimmers'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Normally in Oolite ships tend to stick to the space lanes and so are rarely encountered on the way to the Sun. This OXP adds ships to the sun / planet corridor increasing the chance of meeting other ships whilst sun-skimming.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[S.T.E]]&lt;br /&gt;
| [[S.T.E]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The S.T.E addon ship a step up from the Cobra III improved trading capabilities also has increased speed over Cobra, is also available in 3 colour options blue, red and yellow.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[SuperCobra]]&lt;br /&gt;
| [[SuperCobra]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The awesome Super Cobra. A beefed up version of the Cobra Mk III featuring larger engines, more cargo space and stronger shields.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;  &lt;br /&gt;
| [[Superhub]]&lt;br /&gt;
|&lt;br /&gt;
| [[Superhub]]&lt;br /&gt;
| Stations. Traffic congestion in the Ooniverse is growing and while the stations are getting more advanced the market asked for a more radical solution. This solution comes in the form of the [[GASEC]] Superhub. The GASEC Superhub is the first station that is capable of transporting itself to it's destination, two engine bays allow the GASEC SR-GD (Space Rotary Galactic Drive) to be fitted. At the destination these engines can be taken out for re-use in other transport missions.  ''v1.2 updated 12th November 2009''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Swift]]&lt;br /&gt;
| [[Swift]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. As the name implies, a very fast ship often used by pirates or bounty hunters. Although fast, cargo space is limited and the shield is nominal.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;  &lt;br /&gt;
| [[Switeck's_Mod_OXP|Switeck's Mod]] {{OXPNew|2010-07-08}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Rebalancing of ships and market prices. Pirate ships are more likely to have ECMs and Escape Pods. Adders, Boas and Boa 2s can now be pirates too. Market prices altered slightly. Two Jameson saves included for a Medium and Hard alternative starts. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[System_Redux_%28Oolite%29|System Redux]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. Texture the home planet, add a planet/moon combination to each system. For Oolite v1.71 to 1.73.4. On v1.74+ use the [[OXPs_'A'_to_'F'#D|Deep Horizons System Redux 2 (beta)]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
{{Navbox OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:OXP Lists]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=All_OXPs_by_Category&amp;diff=23337</id>
		<title>All OXPs by Category</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=All_OXPs_by_Category&amp;diff=23337"/>
		<updated>2010-07-14T13:34:39Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Others */  updated orbits link to point at the latest version, commented an early js example as obsolete.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OXP_Icon_cat.png‎|right|128px]]&lt;br /&gt;
== Index ==&lt;br /&gt;
&lt;br /&gt;
[[All OXPs by Category#Links|Go to Index]]&lt;br /&gt;
&lt;br /&gt;
== Sound Sets ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Amiga Replacement Sounds ]]&lt;br /&gt;
| Based on the sound set used in the Amiga version of the original Elite. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/CustomSounds.zip ''Custom Sounds'']&lt;br /&gt;
|The largest of the currently available sound sets, this pack replaces or adds over 40 sounds, featuring additional music and extensive use of a calm female computer voice to warn the Commander of alarming events.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/6/63/Halsis.zip ''Hal's Hot Sister'']&lt;br /&gt;
| Featuring a female cockpit voice.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/file/mm2ekntynom/Hawksound.zip ''Hawksound'']&lt;br /&gt;
| Clean sounds. Quality female computer voice, new weapon, damage and some station interface sounds. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/5/53/MildAudio.oxp.zip ''MildAudio'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds2.zip ''Murgh's Replacement Sounds'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds.zip ''Wiggy's Replacement Sounds]&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds3.zip ''Xaotik's Replacement Sounds'']&lt;br /&gt;
| Same as ''MildAudio'' above.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/edl1p4lm3o ''Combined Murgh, Wiggy &amp;amp; Xaotik's sounds'']&lt;br /&gt;
| (Needs oolite 1.73+)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternative HUDs ==&lt;br /&gt;
[[HUD images here]]&amp;lt;br&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/pLists/hud.plist ''Compact HUD'']&lt;br /&gt;
| No description available. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.jblythe.f9.co.uk/Deepspace/Download/DeepspaceHUD_OXP.zip ''Deepspace HUD'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Dr HUD OXP]]&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fighter HUD (Oolite)|Fighter HUD]]&lt;br /&gt;
| All-in-one turn coordinator. Combined instrument panel for speed, fuel, cabin temperature, laser temperature, altitude. Polarized glass laser sight.  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/2/2d/G-HUD_Mk2.oxp.zip ''G-HUD Mk2'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Killer_Wolf's_Dynamic_HUD|Killer Wolf's Dynamic HUD]]&lt;br /&gt;
| HUD that switches display according to the current alert status. Oolite 1.74+ required.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/kleptohud.oxp.zip ''Klepto-HUD'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.crimsonforge.co.uk/cloister/MedusaHud.oxp.zip ''Medusa HUD'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/megawalnutdash.oxp.zip ''Mega-Walnut Dashboard'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[MilSpec HUD OXP]]&lt;br /&gt;
| Adds targeting aids, emphasis on functionality. Current version is now dynamic, switches according to alert status. Oolite 1.74+ required.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/hud_ng.oxp.zip ''NG HUD'']&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/d/d9/TrekHud.zip ''Trek HUD'']&lt;br /&gt;
| No description available. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockable Objects ==&lt;br /&gt;
More information on Carriers appearing in Oolite can be found [[Oolite Carriers|here]].&amp;lt;br&amp;gt;&lt;br /&gt;
More information on Stations appearing in Oolite can be found [[Oolite Stations|here]].&amp;lt;br&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Anarchies OXP]]&lt;br /&gt;
| [[Hacker Outpost]], [[Salvage Gang]], [[Military station|Sentinel Station]], and [[Military station|Renegade Station]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Aquatics OXP]]&lt;br /&gt;
| [[Aquarian Shipbuilding Corp. HQ]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[The Assassins Guild OXP]]&lt;br /&gt;
| [[Navy Station]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Baakili Far Trader]]&lt;br /&gt;
| Adds a dockable Alien ship.  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Black_Monk_Monastary|Bank of the Black Monks]]&lt;br /&gt;
| [[Black Monk Monastary]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Behemoth]]&lt;br /&gt;
| Adds a dockable Navy Cruiser. Updated from the version on Oosat1. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[ADCK's_Behemoths|Behemoths - Shadered&amp;lt;br&amp;gt;(By ADCK)]]&lt;br /&gt;
| Based on the above oxp, but with 2 new behemoths and shaders, plus many new ships. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Bulk Haulers]]&lt;br /&gt;
| Adds many Bulk Haulers to the game, including a retextured version of Aegidians Bulk Hauler as seen in the Oolite video on YouTube, which until recently has not been available to the public. (Requires [[BigShips_OXP|Big Ships]] and Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[BuoyRepair]]&lt;br /&gt;
| [[Buoy Repair Facility]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Commies]]&lt;br /&gt;
| [[Astro Mines]], [[CZGF|Collective Zero-G Factory]], and [[SLAPU|Solar Laboratory and Production Unit]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Deep Space Dredger]]&lt;br /&gt;
| Adds dockable Space Dredgers to the space lanes, defended by a squad of [[Sabre|Sabre fighters]]. Version 2.3 has new, improved textures.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Dictators OXP]]&lt;br /&gt;
| [[Imperial AstroFactory]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Diso.zip Diso]&lt;br /&gt;
| [[Navy Station]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Griff_Industries|Dodo Stations OXP v1.1]]&lt;br /&gt;
| Retextured [[Dodecahedron Station (Oolite)|Dodo]] and [[Icosahedron Station (Oolite)|Ico]] stations, by Griff and CaptKev. v1.1 updated 18th May 2010.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Feudal States|Feudal States OXP]]&lt;br /&gt;
| [[Royal Hunting Lodge]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Free Trade Zone]]&lt;br /&gt;
| Adds an independent trading post of dubious legality to Multi-Government systems. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Fuel Station OXP]]&lt;br /&gt;
| Adds fly-thru Fuel Stations and Fuel Satellites near the witchpoint and along route one. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Galactic Navy OXP]]&lt;br /&gt;
| [[Navy_SecCom_Station|Navy Sector Command Station]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Gates OXP]]&lt;br /&gt;
| Adds short-cut jump gates to suitable systems, speeding journeys between the main station and witchpoint for a fee of only 250Cr.  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Globe station|Globe Station OXP]]&lt;br /&gt;
| A new type of station appears at advanced systems. (Updated 22/10/2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/GrittyCoriolis.oxp.zip ''Gritty Coriolis'']&lt;br /&gt;
| The Corolis Station gets a more detailed texture. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[HoOpy Casino]]&lt;br /&gt;
| HoOpy Casinos appear near the station in advanced systems. Commanders who chose to dock can win or lose credits in games of chance. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Lave Academy OXP]]&lt;br /&gt;
| Adds the Lave Academy Orbital station above Lave (and now other planets), with three new mini-game tests of the Commanders' ship skills.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Military_station|Military Station OXP]]&lt;br /&gt;
| Well armed Military Stations appear in the more advanced systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Nuit Space Station OXP]]&lt;br /&gt;
| [[Isis Interstellar]] formally announces the availability of their newest creation, the Nuit space station.  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[P.A. Groove Stations OXP]]&lt;br /&gt;
| Adds lots of different types of Coriolis and Dodec Stations. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Planetfall OXP]]&lt;br /&gt;
| Allows the player to land on and trade at the planets and moons of each system. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Random Hits OXP]]&lt;br /&gt;
| [[Space Bar]]  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Superhub]]&lt;br /&gt;
| ''v1.2 updated 12th November 2009''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Taranis OXP]]&lt;br /&gt;
| [[Taranis Corporation HQ (Oolite)|Taranis Corporation HQ]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Taxi Galactica]]&lt;br /&gt;
| [[Taxi Galactica|Taxi Station]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Thargoid Carrier]]&lt;br /&gt;
| Arms the Thargoids with a vast carrier capital vessel. Many OXPs increase the fire-power available to the GalCop Navy. If you chose to play with these OXPs installed, then you should really give the Bugs a chance and allow them access to this mighty craft! &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.wagar.org.uk/downloads/software/oolite/Tianve1.3.zip ''Tianve'']&lt;br /&gt;
| [[Navy Station]] &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[S.I.R.F.|S.I.R.F. OXP]]&lt;br /&gt;
| The station is a repair facility for ships in the systems. First  released in 2006 on Oosat 2. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Torus station|Torus Station]]&lt;br /&gt;
| Adds a vast 2001 style space station to very high tech level systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Trader Outpost (Oolite)|Trade Outpost]]&lt;br /&gt;
| Griff trade outpost without ads.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Transhab station|Transhab Station]] &lt;br /&gt;
| Adds a large station with rotating arms to some medium tech level systems. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Your Ad Here!]]&lt;br /&gt;
| [[Your Ad Here!|Constore]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
''Customisations by Government / Tech Level, Flavour OXPs, System OXPs&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Anarchies OXP]]&lt;br /&gt;
| Complete overhaul of Oolite's legal rating system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Asteroid Storm]]&lt;br /&gt;
| Adds lots of different types of Asteroids to the Universe.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Black Monk Monastery]]&lt;br /&gt;
| Loansharks / Banking&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[BlOomberg Markets]]&lt;br /&gt;
| This expansion varies the in-game economy by generating random events that affect commodity prices.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[BuoyRepair]]&lt;br /&gt;
| Repair company for defect or destroyed nav-beacons (Updated 28/06/2010). &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cargo Wreck Teaser OXP]]&lt;br /&gt;
| Adds lots of different types of cargo canisters. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Commies]]&lt;br /&gt;
| Communist systems have their own police forces, transports, stations and miners. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://deephorizonindustries.com/ Deep Horizons System Redux 2]&lt;br /&gt;
| This Beta release OXP textures the primary (main) planet of an Oolite  system based on a combination of economy and tech level using over 40  custom created textures. It also incorporates the ability to add up to  10 moons and 20 additional planets per system, each featuring it's own  custom texture. It replaces [[System Redux (Oolite)|System Redux 1]]. Also on the website  linked here, are three compatible OXP's, &amp;lt;u&amp;gt;Light Down OXP&amp;lt;/u&amp;gt; (which changes  system light levels, stars and nebula settings), &amp;lt;u&amp;gt;Gas Giant Skimming OXP&amp;lt;/u&amp;gt;  (which allows skimming of fuel and rare gases from Gas Giant planets),  and &amp;lt;u&amp;gt;Pirate Ambushes OXP&amp;lt;/u&amp;gt; (which gives pirates the ability to move the  witchpoint beacons in certain systems). &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[DeepSpacePirates|Deep Space Pirates]] &lt;br /&gt;
| This OXP adds ships outside the space lanes.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Dictators OXP]]&lt;br /&gt;
| Dictatorship systems gain their own police forces, supply craft and stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Famous Planets OXP]]&lt;br /&gt;
| Adds unique planetary textures to certain planets.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Feudal States]]&lt;br /&gt;
| The Feudal States is an OXP that adds various new elements to the leading feudal systems in Oolite galaxies.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Galactic Navy]]&lt;br /&gt;
| Adds to the already formidable arsenal of the Galactic Navy. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Generation_Ships_OXP|Generation Ships]]&lt;br /&gt;
| Adds Generation Ships to interstellar space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Interstellar help OXP]]&lt;br /&gt;
| Allows you to help out some traders who got stuck in interstellar space without fuel.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/monument.zip ''Monument'']&lt;br /&gt;
| A monument to famous Commanders can sometimes be seen near the Sun.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/piratetraps.oxp.zip ''Pirate Traps'']&lt;br /&gt;
| To combat piracy GalCop sometimes deploys dummies of trade ships. Pirates who fire on them have their details transmitted to the police and face large fines.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Pods OXP]]&lt;br /&gt;
| Adds lots of different types of cargo canisters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/index.php/RingPod.oxp ''Racing Rings'']&lt;br /&gt;
| Adds Racing Rings to the Galaxy 1 systems of Lave and Zaonce.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Random Hits OXP]]&lt;br /&gt;
| Bounty Hunting.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Saleza Aeronautics]]&lt;br /&gt;
| High Tech Corporate States gain their own patrol craft.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Snoopers]]&lt;br /&gt;
| The galactic news network. Updated 17/06/2010 &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://sancho.dk/oolite/sunskimmers.zip ''Sunskimmers'']&lt;br /&gt;
| This OXP adds ships to the sun / planet corridor increasing the chance of meeting other ships whilst sun-skimming.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[System Redux (Oolite)|System Redux]]&lt;br /&gt;
| Texture the home planet, add a planet/moon combination to each system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Taxi Galactica]]&lt;br /&gt;
| Taxi Service&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/TGY.zip ''Tionisla Orbital Graveyard''] &lt;br /&gt;
| Adds the graveyard to the Galaxy 1 system of Tionisla.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Total patrol OXP|Total Patrol OXP]]&lt;br /&gt;
| Replaces the default police AIs with a totalPatrolAI which lets police ships patrol between all three major points of the system: planet, witchpoint and sun. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[UPS Courier]]&lt;br /&gt;
| Courier service.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Your Ad Here!]]&lt;br /&gt;
| Convenience stores.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Missions ==&lt;br /&gt;
More information on Oolite Missions can be found [[Oolite Missions|here]].&amp;lt;br&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Aquatics OXP]]&lt;br /&gt;
| Contains a mission based out of the [[Aquarian Shipbuilding Corp. HQ]]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[The Assassins Guild OXP]]&lt;br /&gt;
| 21 missions involving murder to order in Galaxy 7.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Asteroid Storm]]&lt;br /&gt;
| A well known station in Galaxy 1 comes under threat from a large asteroid strike. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Black Monk Monastery]]&lt;br /&gt;
| Deal with the loan sharks.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[BlackjacksBullion OXP]]&lt;br /&gt;
| Starts in galaxy 2 at Telace as Commander Blackjack arrives via escape pod at the same station you have just docked.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cataclysm OXP]]&lt;br /&gt;
| Sends you on a mission far bigger than anything you have done for the Navy so far.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/3smiibdosb Constrictor Mission Hints OXP]&lt;br /&gt;
| Gives more hints when doing the native Contrictor Mission.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Deposed OXP]]&lt;br /&gt;
| A series of missions set in Galaxy 4 for an experienced Commander.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Galactic Navy OXP]]&lt;br /&gt;
| The Galactic Navy needs you.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Ionics OXP]]&lt;br /&gt;
| A series of missions set in Galaxy 2 featuring the Ionics Company of Zaria.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Lave Academy OXP]]&lt;br /&gt;
| Training missions.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Localhero OXP]]&lt;br /&gt;
| Adds a mission campaign in the first galaxies. (Updated 9.04.2008) &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[LongWay_OXP|Long Way Around]]&lt;br /&gt;
| A transport mission well suited to the novice in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/index.php/Lovecats.oxp ''Lovecats 1.2'']&lt;br /&gt;
| Love and betrayal amongst the feline races of Galaxy 4. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Military Fiasco]]&lt;br /&gt;
| A mission for the Navy available to a Commander with more than 1,000 kills.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Oo-Haul]]&lt;br /&gt;
| Be offered missions to escort a hauler safely to its destination&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pirate Coves OXP]]&lt;br /&gt;
| No description available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Random Hits OXP]]&lt;br /&gt;
| Bounty Hunting.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Ring Racer OXP]]&lt;br /&gt;
| Corporate Systems Ring Racing League in Galaxy 1. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/c/c7/BlackBaron1.70.zip ''Scourge of the Black Baron v1.70'']&lt;br /&gt;
| A sequel to the [[LongWay_OXP|Long Way Around]] mission, featuring combat and transport missions. Well suited to a relative novice in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Spy Hunter OXP]]&lt;br /&gt;
| A mission for the Galactic Navy available to a Commander with a rating of 'Dangerous' or above.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Stealth OXP]]&lt;br /&gt;
| Small G3 mission to showcase the new scanner capabilities of 1.74 and to introduce stealth ships. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Taranis OXP]]&lt;br /&gt;
| A mission is also available for law abiding Commanders with a rating of Competent or better.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Thargoid Wars]]&lt;br /&gt;
| War with the Thargoids intensifies featuring new attack and defense missions. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[TCAT OXP|To Catch a Thargoid]]&lt;br /&gt;
| The Bugs are back - G3 follow-up mission to Thargoid Plans, for Dangerous or Elite rank Commanders. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Trident Down]]&lt;br /&gt;
| A series of missions set in Galaxy 4 involving the investigation of a vicious attack on an Trident Shuttle operated by [[Executive SpaceWays]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[UPS Courier]]&lt;br /&gt;
| The UPS Courier service will randomly offer Commanders the option of taking goods or documents from system to system. Some say experienced Couriers may also be offered combat missions.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Vector OXP]]&lt;br /&gt;
| Special feature - 'Richmans World' - a unusual mission type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ship Systems ==&lt;br /&gt;
More information on Oolite Equipment can be found [[Oolite Equipment|here]].&amp;lt;br&amp;gt;&lt;br /&gt;
===Equipment===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Auto eject OXP|Auto Eject OXP]]&lt;br /&gt;
| This OXP adds a piece of equipment which ejects your escape pod automatically when your energy becomes too low.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Automatic Chaff System]]&lt;br /&gt;
| An enhanced chaff-based missile countermeasure system by [[User:Wyvern|Wyvern]], based on [[User:Thargoid|Thargoid]]'s [[Armoury OXP|AMS]] and [[User talk:Ramirez|Ramirez]]'s [[Missiles_and_Bombs|Chaff Dispenser]]. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Bounty Scanner]]&lt;br /&gt;
| The Bounty Scanner adds bounty details (if any) to the targeting lock-box display when locked onto other ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Energy_Equipment_OXP|Emergency Charge Device]]&lt;br /&gt;
| Acts as an extra boost to the ships energy supplies in case of emergency.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Energy_Equipment_OXP|Emergency Energy Unit]]&lt;br /&gt;
| A variance on the Emergency Charge Device.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/ettBeaconLauncher.zip ''ETT Homing Beacon'']&lt;br /&gt;
| Mark a position in space by deploying a pylon mounted beacon.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Fuel Collector OXP|Fuel Collector]]&lt;br /&gt;
| The Fuel Collector enables you to very slowly gather fuel whilst cruising in space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fuel Tank]]&lt;br /&gt;
| Mounts in place of a missile, to top up 3 light years of fuel.  &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Hyperradio js OXP|Hyperradio]]&lt;br /&gt;
| This device gives you the ability to listen to your own music.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Misjump Analyser]]&lt;br /&gt;
| This analyser scans the witchspace in the direction of the target system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Missile Analyser]]&lt;br /&gt;
| This analyser scans incoming missiles and sets the target to the incoming missile when it is no standard missile. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Ore Processor]]&lt;br /&gt;
| When mounted to a ships fuel scoop systems extracts valuable materials from asteroid fragments. A must for any Commander working as a miner. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Armoury_OXP|Probe Missile]]&lt;br /&gt;
| Non-lethal missile that flys away and reports on ships found, when it returns it can be scooped and reused. Part of the [[Armoury_OXP|Armoury OXP]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Repair_Bots_OXP|Repair 'Bots]]&lt;br /&gt;
| A pylon mounted canister of repair nanobots.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Rock Hermit Locator]]&lt;br /&gt;
| The Rock Hermit Locator is a piece of equipment for your ship to locate Rock Hermits.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Target_Autolock_OXP|Target Autolock]]&lt;br /&gt;
| A software update for the standard [[Scanner Targeting Enhancement]] equipment that automatically locks onto attacking ships if you have no prior target selected. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Target Reticle]]&lt;br /&gt;
| A software update for the standard [[Scanner Targeting Enhancement]] equipment that automatically turns the reticle red when the target is in the centre of the reticle.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;  bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Welcome_Mat_OXP|Welcome Mat]]&lt;br /&gt;
| Software upgrade for the communications systems to expand the information given to the commander on arrival from witchspace into a new system. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Weapons===&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Armoury OXP]]&lt;br /&gt;
| New meta-oxp containing  AMS, Captured Thargons, Drones, Probe and Missile Rack OXPs  functionality plus some other new bombs and the missile machine.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Dragon|Dragon's Military Smart Missile]]&lt;br /&gt;
| An improved Hard Head Missile with more bang for your Credit.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Hired_Guns_OXP|Hired Guns]]&lt;br /&gt;
| Gives the chance to agree a contract for a pair of ships to accompany you on your next journey and fight on your behalf alongside you. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Killit_OXP|''Killit™'' insta-death super weapons]]&lt;br /&gt;
| Adds a bunch of insane super weapons.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Missiles and Bombs]]&lt;br /&gt;
| Adds the Cascade stand-off missile, Multiple-warhead anti-Thargoid missile, Frag Mine, Frag Missile, EMP Missile and short-range defence missile to the game. The new weapons are available to the player and NPCs alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Nukes.oxp|Nuclear Torpedos]]&lt;br /&gt;
| Adds some powerful, but slow moving, missiles. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Status Quo Q-bomb OXP|Status Quo Q-bomb]]&lt;br /&gt;
| Changes the behaviour of Q-bombs according to the [[Status Quo]] novel. They don't detonate in gravity wells, like close to planets or suns. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
''Other objects and miscellaneous eyecandy''&amp;lt;br&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 200px;&amp;quot;|Name !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Behemoth Spacewar]] &lt;br /&gt;
| Adds intelligence to the Behemoth and brings a combat with Thargoids &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[BigShips OXP]]&lt;br /&gt;
|  Adds the new role &amp;quot;bigTrader&amp;quot; to the game, designed for large ships which are unable to dock with stations due to their size. Also includes an AI which can be used for such ships, but DOES NOT include any ships of its own. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/clearskies.oxp_.zip ''Clear Skies'']&lt;br /&gt;
| Reduces nebula effects. Handy if your system is finding it hard to run Oolite. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Diso.zip ''Diso'']&lt;br /&gt;
| Extra planets and stations are added to the Diso system in Galaxy 1. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Display reputation OXP]]&lt;br /&gt;
| Displays your passenger and contract reputation in your ship's manifest. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance]]&lt;br /&gt;
| Sets the docking clearance on for all stations in Oolite. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[External Views OXP]]&lt;br /&gt;
| Adds better outside views to all the Classic Elite Ships. Warning: Do not use with Oolite 1.70 and above! From Oolite 1.70 onwards improved outside views have been added to the game itself, so you don't need this OXP anymore. Just throw it away. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/d57y0uip74 ''FarSun'']&lt;br /&gt;
| Places suns further away from the planet than standard Oolite. New, improved, and fully compatible with Novae! &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Freaky Thargoids OXP]]&lt;br /&gt;
| Shader example, requires Oolite 1.69. With this OXP installed, Thargoids will use the new Shaders. This was one of the first ships with shaders. Starting with 1.74 the shaders for this ship won't work anymore as intended but the ship can still be used if wanted. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/k2lvh3enuy ''Griff's Explosion Debris'']&lt;br /&gt;
| Adds new alloy &amp;amp; debris models to exploding ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/illicit_unlock.oxp.zip ''Illicit Unlock'']&lt;br /&gt;
| Allows the player to fly all the Classic Elite Ships. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/t3n98yhk6n ''Illicit Unlock - Griff Version'']&lt;br /&gt;
| Based on the above, Allows the player to fly Griffs pirate/viper Ships. (Requires [[Griff Industries|Griff's Normalmapped Ships]] ) &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[JavaScript test OXP]]&lt;br /&gt;
| Initial JavaScript scripting example, obsolete. (was originally created for Oolite 1.68)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/dropbox/Lave171.zip ''Lave'']&lt;br /&gt;
| Gives the Lave System a make-over adding all the features described in The Dark Wheel novella included with the original Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/x9u5xoulkq ''Orbits 1.2.1'']&lt;br /&gt;
| Positions planets on orbits around the sun. Requires Oolite v1.74.x&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[OXPConfig]]&lt;br /&gt;
| This tool gives you the ability to configure several oxps. It changes internal (local) settings of the oxps to enable (or disable) logging or audio functions and special settings to recognize errors or to avoid clashes. (Updated 04/09/2009) &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Random Docking Music OXP]]&lt;br /&gt;
| Plays a randomly selected music track on activating docking computers (slow dock), from a list set inside the OXP. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[RegistrationID|Registration ID]]&lt;br /&gt;
| All Oolite standard ships now have ID tags.. You need at least Oolite 1.73 and a Graphics card capable of running shaders on a full setting.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Save Anywhere]]&lt;br /&gt;
| Save Anywhere allows you to save your game at any OXP Station, instead of only at Main Stations, as in the standard game. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Shady Billboards OXP]]&lt;br /&gt;
| The Shady Billboards OXP demonstrates shaders in Oolite by displaying adverts from Your Ad Here! on an animated electronic billboard.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Switeck's Mod OXP]]&lt;br /&gt;
| Rebalancing of ships and market prices. Adds two Jameson saves, for Medium and Hard difficulty.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/r05ub873b5 ''TAF Reset'']&lt;br /&gt;
| Resets the Time Acceleration Factor (TAF) to 1.0 upon docking. Requires Oolite v1.73+. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.wagar.org.uk/downloads/software/oolite/Tianve1.3.zip ''Tianve'']&lt;br /&gt;
| Adds scenery, including a pulsar, to the Galaxy 1 system of Tianve.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== International Versions of Oolite ==&lt;br /&gt;
&lt;br /&gt;
*[http://marc-schaffer.ch/data/OoliteGerman_V0.3.zip  Oolite German v0.3]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Media:OoliteItaliano_v1.3.zip|''Oolite Italiano  v1.3'']]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.box.net/shared/ch3lsepk9k  Oolite Russian v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.box.net/shared/rrlm77ztzm  Oolite en français]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ship Sets ==&lt;br /&gt;
''Retextures / remodels of the Oolite ships and objects''&lt;br /&gt;
*[[Accessories OXP]] A re-texture set of all the non-ship objects (eg Stations, Cargo pods, Asteroids etc) in Oolite. Features lighting effects for v1.74 and above. Matches with the [[Smivs' ShipSet]] as below.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Deepspace Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Griff ArcElite]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Griff Industries|Griff's Normalmapped Ships OXP]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://capnhack.com/hosting/oolite/Oolite/OXPs/mPakRedux.zip ''M-Pack (Rusties)''] Adds rusty versions of all the Classic Elite ships.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Neolite Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Smivs' ShipSet]] A re-texture set of all the Oolite ships, using the original models for authenticity.&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.box.net/shared/static/9cwp2jk84o.zip ''Sung's Detailed Textures''] Replacement textures for all Classic Elite Ships. Shader version below.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Shady Sungs]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ships and Ship Variants ==&lt;br /&gt;
{{Navbox OXP Ships}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
{{Navbox OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:OXP Lists]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23028</id>
		<title>Oolite JavaScript Reference: Script</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23028"/>
		<updated>2010-06-27T15:52:45Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &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&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt;''' class represents a JavaScript script. There are currently two categories of script: ''ship scripts'', which are attached to individual ships / in-game entities, and ''world scripts'', which are effectively attached to the player.&lt;br /&gt;
&lt;br /&gt;
==Scripting overview==&lt;br /&gt;
World scripts are run once at game start-up, at which point they may create ''event handlers''. Event handlers are functions with predefined names which are called by the game at specific points. Ship scripts are run when their ship is loaded, and can also create event handlers. An event handler is specified as a property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object itself. For example, to set up an event handler for the ''willDock'' event, a script would typically look like this:&lt;br /&gt;
 this.willDock = function()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This assigns an anonymous function with no arguments to the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object’s &amp;lt;code&amp;gt;willDock&amp;lt;/code&amp;gt; property. Another way to achieve the same thing would be:&lt;br /&gt;
 function willDockEventHandler()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 this.willDock = willDockEventHandler;&lt;br /&gt;
&lt;br /&gt;
This form has the advantage that it’s easy to remove and re-add the event handler. (Event handlers may be added or removed at any time.)&lt;br /&gt;
 delete this.willDock;  // stop handling willDock events&lt;br /&gt;
 this.willDock = willDockEventHandler;  // start handling willDock events again&lt;br /&gt;
&lt;br /&gt;
A property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object which is a function is called a '''method'''. The most common use for methods is for event handlers, but a script may assign itself arbitrary methods, and any script may call the methods of anothe &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object. For instance, consider the case of a ship which needs to interact with its escorts in an unusual way. The script for the escorts may define a method such as:&lt;br /&gt;
 this.escortPerformSpecialManoeuvret(target)&lt;br /&gt;
 {&lt;br /&gt;
     // Do something very clever here&lt;br /&gt;
 }&lt;br /&gt;
which the mothership might do as follows:&lt;br /&gt;
 // Warning: untested code&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre(target)&lt;br /&gt;
 {&lt;br /&gt;
     this.ship.escorts.forEach(function(escort){escort.script.escortPerformSpecialManoeuvre(this.target)}, this);&lt;br /&gt;
 }&lt;br /&gt;
I can hear the cries of “huh” now, so let’s expand on that a little:&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre()&lt;br /&gt;
 {&lt;br /&gt;
     // The function we want to call for each element of the escorts array.&lt;br /&gt;
     function callEscortMethod(escort)&lt;br /&gt;
     {&lt;br /&gt;
         escort.script.escortPerformSpecialManoeuvre(this.target);&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Get the list of escorts from our ship.&lt;br /&gt;
     var escorts = this.ship.escorts;&lt;br /&gt;
     &lt;br /&gt;
     // For each element in the list, call callEscortMethod().&lt;br /&gt;
     escorts.forEach(callEscortMethod, this);&lt;br /&gt;
 }&lt;br /&gt;
Note: it is a good idea to use reasonably unique names for methods. If your ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method, and some other ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method that does something completely different, one may be called when the other was intended.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; objects to not have many predefined properties. Instead, the script can set whatever properties it needs. Which properties are used by the game depends on the context in which the script is being used.&lt;br /&gt;
&lt;br /&gt;
==Predefined properties==&lt;br /&gt;
===&amp;lt;code&amp;gt;ship&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''ship''' : [[Oolite JavaScript Reference: Ship|Ship]] (read-only)&lt;br /&gt;
For ship scripts, the ship to which the script is attached. Undefined for world scripts.&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' ship refers to the entity that 'owns' the script, which might not be an actual ship. If a specific script is a property of an asteroid as opposed to a ship, ''this.ship'' will refer to the asteroid, etc...&lt;br /&gt;
&lt;br /&gt;
==Common properties==&lt;br /&gt;
These are properties scripts can set on themselves which have a standard meaning.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''author''' : String&lt;br /&gt;
Who wrote the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;copyright&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''copyright''' : String&lt;br /&gt;
A copyright statement for the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''description''' : String&lt;br /&gt;
A short description of the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''name''' : String&lt;br /&gt;
The name of the script. World scripts must have a unique name. It’s a good habit to set a name for all scripts. If no name is set when the script is first run, Oolite will make one up. While it is possible to set the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''version''' : String&lt;br /&gt;
A string specifying the version of the script. This is used, together with name, for identification in log messages and similar. While it is possible to set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23027</id>
		<title>Oolite JavaScript Reference: Script</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23027"/>
		<updated>2010-06-27T15:51:30Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* ship */&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&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt;''' class represents a JavaScript script. There are currently two categories of script: ''ship scripts'', which are attached to individual ships, and ''world scripts'', which are effectively attached to the player.&lt;br /&gt;
&lt;br /&gt;
==Scripting overview==&lt;br /&gt;
World scripts are run once at game start-up, at which point they may create ''event handlers''. Event handlers are functions with predefined names which are called by the game at specific points. Ship scripts are run when their ship is loaded, and can also create event handlers. An event handler is specified as a property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object itself. For example, to set up an event handler for the ''willDock'' event, a script would typically look like this:&lt;br /&gt;
 this.willDock = function()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This assigns an anonymous function with no arguments to the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object’s &amp;lt;code&amp;gt;willDock&amp;lt;/code&amp;gt; property. Another way to achieve the same thing would be:&lt;br /&gt;
 function willDockEventHandler()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 this.willDock = willDockEventHandler;&lt;br /&gt;
&lt;br /&gt;
This form has the advantage that it’s easy to remove and re-add the event handler. (Event handlers may be added or removed at any time.)&lt;br /&gt;
 delete this.willDock;  // stop handling willDock events&lt;br /&gt;
 this.willDock = willDockEventHandler;  // start handling willDock events again&lt;br /&gt;
&lt;br /&gt;
A property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object which is a function is called a '''method'''. The most common use for methods is for event handlers, but a script may assign itself arbitrary methods, and any script may call the methods of anothe &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object. For instance, consider the case of a ship which needs to interact with its escorts in an unusual way. The script for the escorts may define a method such as:&lt;br /&gt;
 this.escortPerformSpecialManoeuvret(target)&lt;br /&gt;
 {&lt;br /&gt;
     // Do something very clever here&lt;br /&gt;
 }&lt;br /&gt;
which the mothership might do as follows:&lt;br /&gt;
 // Warning: untested code&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre(target)&lt;br /&gt;
 {&lt;br /&gt;
     this.ship.escorts.forEach(function(escort){escort.script.escortPerformSpecialManoeuvre(this.target)}, this);&lt;br /&gt;
 }&lt;br /&gt;
I can hear the cries of “huh” now, so let’s expand on that a little:&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre()&lt;br /&gt;
 {&lt;br /&gt;
     // The function we want to call for each element of the escorts array.&lt;br /&gt;
     function callEscortMethod(escort)&lt;br /&gt;
     {&lt;br /&gt;
         escort.script.escortPerformSpecialManoeuvre(this.target);&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Get the list of escorts from our ship.&lt;br /&gt;
     var escorts = this.ship.escorts;&lt;br /&gt;
     &lt;br /&gt;
     // For each element in the list, call callEscortMethod().&lt;br /&gt;
     escorts.forEach(callEscortMethod, this);&lt;br /&gt;
 }&lt;br /&gt;
Note: it is a good idea to use reasonably unique names for methods. If your ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method, and some other ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method that does something completely different, one may be called when the other was intended.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; objects to not have many predefined properties. Instead, the script can set whatever properties it needs. Which properties are used by the game depends on the context in which the script is being used.&lt;br /&gt;
&lt;br /&gt;
==Predefined properties==&lt;br /&gt;
===&amp;lt;code&amp;gt;ship&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''ship''' : [[Oolite JavaScript Reference: Ship|Ship]] (read-only)&lt;br /&gt;
For ship scripts, the ship to which the script is attached. Undefined for world scripts.&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' ship refers to the entity that 'owns' the script, which might not be an actual ship. If a specific script is a property of an asteroid as opposed to a ship, ''this.ship'' will refer to the asteroid, etc...&lt;br /&gt;
&lt;br /&gt;
==Common properties==&lt;br /&gt;
These are properties scripts can set on themselves which have a standard meaning.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''author''' : String&lt;br /&gt;
Who wrote the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;copyright&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''copyright''' : String&lt;br /&gt;
A copyright statement for the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''description''' : String&lt;br /&gt;
A short description of the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''name''' : String&lt;br /&gt;
The name of the script. World scripts must have a unique name. It’s a good habit to set a name for all scripts. If no name is set when the script is first run, Oolite will make one up. While it is possible to set the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''version''' : String&lt;br /&gt;
A string specifying the version of the script. This is used, together with name, for identification in log messages and similar. While it is possible to set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23026</id>
		<title>Oolite JavaScript Reference: Script</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Script&amp;diff=23026"/>
		<updated>2010-06-27T15:50:31Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* ship */&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&lt;br /&gt;
&lt;br /&gt;
The '''&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt;''' class represents a JavaScript script. There are currently two categories of script: ''ship scripts'', which are attached to individual ships, and ''world scripts'', which are effectively attached to the player.&lt;br /&gt;
&lt;br /&gt;
==Scripting overview==&lt;br /&gt;
World scripts are run once at game start-up, at which point they may create ''event handlers''. Event handlers are functions with predefined names which are called by the game at specific points. Ship scripts are run when their ship is loaded, and can also create event handlers. An event handler is specified as a property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object itself. For example, to set up an event handler for the ''willDock'' event, a script would typically look like this:&lt;br /&gt;
 this.willDock = function()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This assigns an anonymous function with no arguments to the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object’s &amp;lt;code&amp;gt;willDock&amp;lt;/code&amp;gt; property. Another way to achieve the same thing would be:&lt;br /&gt;
 function willDockEventHandler()&lt;br /&gt;
 {&lt;br /&gt;
     // Do stuff when about to dock&lt;br /&gt;
     Log(&amp;quot;Woo, I’m about to dock!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 this.willDock = willDockEventHandler;&lt;br /&gt;
&lt;br /&gt;
This form has the advantage that it’s easy to remove and re-add the event handler. (Event handlers may be added or removed at any time.)&lt;br /&gt;
 delete this.willDock;  // stop handling willDock events&lt;br /&gt;
 this.willDock = willDockEventHandler;  // start handling willDock events again&lt;br /&gt;
&lt;br /&gt;
A property of the &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object which is a function is called a '''method'''. The most common use for methods is for event handlers, but a script may assign itself arbitrary methods, and any script may call the methods of anothe &amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; object. For instance, consider the case of a ship which needs to interact with its escorts in an unusual way. The script for the escorts may define a method such as:&lt;br /&gt;
 this.escortPerformSpecialManoeuvret(target)&lt;br /&gt;
 {&lt;br /&gt;
     // Do something very clever here&lt;br /&gt;
 }&lt;br /&gt;
which the mothership might do as follows:&lt;br /&gt;
 // Warning: untested code&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre(target)&lt;br /&gt;
 {&lt;br /&gt;
     this.ship.escorts.forEach(function(escort){escort.script.escortPerformSpecialManoeuvre(this.target)}, this);&lt;br /&gt;
 }&lt;br /&gt;
I can hear the cries of “huh” now, so let’s expand on that a little:&lt;br /&gt;
 function makeEscortsPerformSpecialManoeuvre()&lt;br /&gt;
 {&lt;br /&gt;
     // The function we want to call for each element of the escorts array.&lt;br /&gt;
     function callEscortMethod(escort)&lt;br /&gt;
     {&lt;br /&gt;
         escort.script.escortPerformSpecialManoeuvre(this.target);&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Get the list of escorts from our ship.&lt;br /&gt;
     var escorts = this.ship.escorts;&lt;br /&gt;
     &lt;br /&gt;
     // For each element in the list, call callEscortMethod().&lt;br /&gt;
     escorts.forEach(callEscortMethod, this);&lt;br /&gt;
 }&lt;br /&gt;
Note: it is a good idea to use reasonably unique names for methods. If your ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method, and some other ship script implements a &amp;lt;code&amp;gt;doStuff&amp;lt;/code&amp;gt; method that does something completely different, one may be called when the other was intended.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Script&amp;lt;/code&amp;gt; objects to not have many predefined properties. Instead, the script can set whatever properties it needs. Which properties are used by the game depends on the context in which the script is being used.&lt;br /&gt;
&lt;br /&gt;
==Predefined properties==&lt;br /&gt;
===&amp;lt;code&amp;gt;ship&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''ship''' : [[Oolite JavaScript Reference: Ship|Ship]] (read-only)&lt;br /&gt;
For ship scripts, the ship to which the script is attached. Undefined for world scripts.&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' ship refers to the entity that 'owns' the script, which might not be an actual ship. If a specific script is a property of an asteroid as opposed to a ship, this.ship will refer to the asteroid, etc...&lt;br /&gt;
&lt;br /&gt;
==Common properties==&lt;br /&gt;
These are properties scripts can set on themselves which have a standard meaning.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''author''' : String&lt;br /&gt;
Who wrote the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;copyright&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''copyright''' : String&lt;br /&gt;
A copyright statement for the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''description''' : String&lt;br /&gt;
A short description of the script. Currently unused.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''name''' : String&lt;br /&gt;
The name of the script. World scripts must have a unique name. It’s a good habit to set a name for all scripts. If no name is set when the script is first run, Oolite will make one up. While it is possible to set the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;===&lt;br /&gt;
 '''version''' : String&lt;br /&gt;
A string specifying the version of the script. This is used, together with name, for identification in log messages and similar. While it is possible to set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; property at any time, the value used after the script is first run is the one Oolite will continue to use.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23025</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23025"/>
		<updated>2010-06-27T15:17:03Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* alertConditionChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when a station's alert status ([[Oolite_JavaScript_Reference:_Station#alertCondition|Station.alertCondition]]) changes. Only the player and stations have an alert condition. The equivalent player event is handled inside [[Oolite_JavaScript_Reference:_world_script_event_handlers|world scripts]].&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
'''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship activates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakActivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship deactivates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakDectivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All initially planned events have a corresponding event handler in v1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=23024</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=23024"/>
		<updated>2010-06-27T15:14:29Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* alertConditionChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_Player#alertCondition|player.alertCondition]]&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; handler is called when the guiScreen is about to change.  It only fires for the screens: GUI_SCREEN_EQUIP_SHIP, GUI_SCREEN_MANIFEST, GUI_SCREEN_MARKET and GUI_SCREEN_SHIPYARD. On these screens a script could change the content of the page to be displayed.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenWillChange = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All the initially planned events have been implemented in 1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23023</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23023"/>
		<updated>2010-06-27T15:12:17Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* alertConditionChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when a station's alert status ([[Oolite_JavaScript_Reference:_Station#alertCondition]]) changes. Only the player and stations have an alert condition. The player event is handled inside world scripts.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
'''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship activates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakActivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship deactivates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakDectivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All initially planned events have a corresponding event handler in v1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23022</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=23022"/>
		<updated>2010-06-27T15:11:15Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* alertConditionChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when a station's alert status (&amp;lt;code&amp;gt;[[Oolite_JavaScript_Reference:_Station#alertCondition]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. The player event is handled inside world scripts.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
'''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship activates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakActivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship deactivates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakDectivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All initially planned events have a corresponding event handler in v1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_object_model&amp;diff=23021</id>
		<title>Oolite JavaScript Reference: object model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_object_model&amp;diff=23021"/>
		<updated>2010-06-27T15:08:35Z</updated>

		<summary type="html">&lt;p&gt;Kaks: Redirected page to Category:Oolite JavaScript Reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Category:Oolite_JavaScript_Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_object_model&amp;diff=23020</id>
		<title>Oolite JavaScript Reference: object model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_object_model&amp;diff=23020"/>
		<updated>2010-06-27T15:07:23Z</updated>

		<summary type="html">&lt;p&gt;Kaks: created redirect to avoid broken  links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Oolite_JavaScript_Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=22893</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=22893"/>
		<updated>2010-06-20T13:32:35Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Not Yet Implemented */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
'''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakActivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship activates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakActivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCloakDeactivated&amp;lt;/code&amp;gt; handler is called whenever the script's target ship deactivates its cloaking device. No parameters are required for this handler (added in test version 1.74).&lt;br /&gt;
&lt;br /&gt;
  this.shipCloakDectivated = function()&lt;br /&gt;
  {&lt;br /&gt;
     // Your code here&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All initially planned events have a corresponding event handler in v1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=22892</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=22892"/>
		<updated>2010-06-20T13:31:24Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Not Yet Implemented */  - brought it up to date!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenWillChange&amp;lt;/code&amp;gt; handler is called when the guiScreen is about to change.  It only fires for the screens: GUI_SCREEN_EQUIP_SHIP, GUI_SCREEN_MANIFEST, GUI_SCREEN_MARKET and GUI_SCREEN_SHIPYARD. On these screens a script could change the content of the page to be displayed.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenWillChange = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Missing Events ===&lt;br /&gt;
&lt;br /&gt;
All the initially planned events have been implemented in 1.74.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite JavaScript Reference]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=22087</id>
		<title>Oolite JavaScript Reference: SystemInfo</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_SystemInfo&amp;diff=22087"/>
		<updated>2010-06-06T19:07:24Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* systemsInRange */&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;
&lt;br /&gt;
{{Oolite-class-added|1.74}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;SystemInfo&amp;lt;/code&amp;gt;''' objects provide information about a specific system.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;coordinates&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''coordinates''' : Vector (read-only)&lt;br /&gt;
The coordinates of the system in light years. e.g. for Lave: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;. The z component is always zero.&amp;lt;br&amp;gt;&lt;br /&gt;
The upper left corner has the coordinate &amp;lt;code&amp;gt;(0, 0, 0)&amp;lt;/code&amp;gt;. Going right increases the x value while going down on the map increases the y value.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g.&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).coordinates&lt;br /&gt;
returns the coordinates of the system with an ID numberr of 7 in the current galaxy. In the first galaxy that would be the Lave coordinates: &amp;lt;code&amp;gt;(8, 34.6, 0)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;galaxyID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''galaxyID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the galaxy.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemID&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 '''systemID''' : Number (read-only nonnegative integer)&lt;br /&gt;
The ID number of the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== More properties ==&lt;br /&gt;
Additional to these properties you have access to many other system properties, using the same keys as [[planetinfo.plist]]. e.g.&lt;br /&gt;
 &amp;lt;code&amp;gt;System.info.description = &amp;quot;This is a dull planet.&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
sets the description of the current planet  to &amp;quot;This is a dull planet.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Properties that are changed in system.info are stored in the save file and are permanently changed for that commander. When both the planetInfo.plist and the data from a changed system.info file are present, those of the system.info are used. You can undo any changes in    system.info by setting the value to null e.g.&lt;br /&gt;
 &amp;lt;code&amp;gt;System.info.description = null&amp;lt;/code&amp;gt;&lt;br /&gt;
will make that the system will use the original description.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;distanceToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''distanceToSystem'''(SystemInfo) : Number&lt;br /&gt;
Returns the distance in light year to the other SystemInfo.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g.&lt;br /&gt;
 System.infoForSystem(galaxyNumber, 7).distanceToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
returns: &amp;lt;code&amp;gt;92.8&amp;lt;/code&amp;gt; as the distance between system 7 and 8 in light years.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;routeToSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''routeToSystem'''(system : SystemInfo [, &amp;quot;OPTIMIZED_BY_JUMPS&amp;quot; | &amp;quot;OPTIMIZED_BY_TIME&amp;quot;] ) : Object&lt;br /&gt;
Returns a dictionary containing the route information to the other SystemInfo. The dictionary contains the array of system IDs that belong to the &amp;lt;code&amp;gt;route&amp;lt;/code&amp;gt; found, the &amp;lt;code&amp;gt;distance&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; corresponding to said route. Takes the optional parameter &amp;quot;OPTIMIZED_BY_JUMPS&amp;quot; or &amp;quot;OPTIMIZED_BY_TIME&amp;quot; to calculate least number of jumps or fastest transit time routes respectively. If the second parameter is omitted, &amp;quot;OPTIMIZED_BY_JUMPS&amp;quot; is implied.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g.&lt;br /&gt;
 var myRoute = System.infoForSystem(galaxyNumber, 7).routeToSystem(System.infoForSystem(galaxyNumber, 8))&lt;br /&gt;
 myRoute.route&lt;br /&gt;
 myRoute.distance&lt;br /&gt;
 myRoute.time&lt;br /&gt;
returns:&lt;br /&gt;
 7,129,227,73,89,222,29,42,131,62,150,36,28,16,185,86,138,51,8  (the route)&lt;br /&gt;
 96.40  (distance of added jumps)&lt;br /&gt;
 530.40 (travelled time)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;systemsInRange&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''systemsInRange'''(range : Number) : Array&lt;br /&gt;
Returns an array of SystemInfos in range from the present planetary system. When no distance is defined, it returns all systems within 7 light years.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
 SystemInfo.systemsInRange(5);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' will not produce correct results if used in interstellar space.&lt;br /&gt;
&lt;br /&gt;
== Static methods ==&lt;br /&gt;
=== &amp;lt;code&amp;gt;filteredSystems&amp;lt;/code&amp;gt; ===&lt;br /&gt;
 function '''filteredSystems'''(this : Object, predicate : Function ) : Array of SystemInfo&lt;br /&gt;
A list of the SystemInfos for which &amp;lt;code&amp;gt;predicate&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
'''Example:'''&lt;br /&gt;
 SystemInfo.systemsInRange = function(range) &lt;br /&gt;
 { &lt;br /&gt;
    if (range === undefined) &lt;br /&gt;
    { &lt;br /&gt;
        range = 7; &lt;br /&gt;
    } &lt;br /&gt;
    &lt;br /&gt;
    var thisSystem = system.info; &lt;br /&gt;
    return SystemInfo.filteredSystems(this, function(other) &lt;br /&gt;
    { &lt;br /&gt;
        return (other.systemID !== thisSystem.systemID) &amp;amp;&amp;amp; (thisSystem.distanceToSystem(other) &amp;lt;= range); &lt;br /&gt;
    }); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXPs_%27A%27_to_%27F%27&amp;diff=22072</id>
		<title>OXPs 'A' to 'F'</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXPs_%27A%27_to_%27F%27&amp;diff=22072"/>
		<updated>2010-06-06T15:31:20Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* F */  removed obsolete oxp from list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OXP_Icon_1.png‎|128px|right]]&lt;br /&gt;
== Index ==&lt;br /&gt;
&lt;br /&gt;
[[OXP's 'A' to 'F'#Links|Go To Index]]&lt;br /&gt;
&lt;br /&gt;
== A ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Aegidian's_Specials|Aegidian's Specials]]&lt;br /&gt;
| [[Mussurana]]&amp;lt;br&amp;gt;[[Asp_%28Oolite%29#Notable_features|Asp Mark II Special]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The powerful Mussurana and an improved Asp.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Aegidian's_X-Ships|Aegidian's X-Ships]]&lt;br /&gt;
| [[Python_ET_Special|Python ET Special]]&amp;lt;br&amp;gt;[[Cobra_Mk.2_%28Oolite%29|Cobra Mk II]]&amp;lt;br&amp;gt;[[Asp_%28Oolite%29#Notable_features|Asp Mark II Special]]&amp;lt;br&amp;gt;[[Sidewinder_%28Oolite%29#Notable_featuresl|Sidewinder Special]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. An improved Python, the experimental Cobra Mk II, the Asp Mark II Special and the Sidewinder Special.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pirate_Clan_Blitzspears|Amen Brick's Pirate Clan One: The Blitzspears]]&lt;br /&gt;
| [[Assassin_Blitzspear|Assassin]]&amp;lt;br&amp;gt;[[Hoodlum]]&amp;lt;br&amp;gt;[[Mugger]]&amp;lt;br&amp;gt;[[Scoundrel]]&amp;lt;br&amp;gt;[[Spiv]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The first of the Pan-Galaxy Outlaw clans to rise through the leadership of some diabolical criminal genius. What are his, or indeed hers or, further indeed, its future plans? Will their nefarious example be followed by others? The answers are out there...&lt;br /&gt;
All ships in this version are playable. Future versions (probably modular for memory saving reasons) will have more clans, the ability to join clans (if I master the arcane art of programming), stations and missions. Stay untuned, folks.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Amen_Bricks_Megaships|Amen Brick's Megaships]]&lt;br /&gt;
| [[Battleship]]&amp;lt;br&amp;gt;[[Biodome]]&amp;lt;br&amp;gt;[[Cruiseship]]&amp;lt;br&amp;gt;[[Hospitalship]]&amp;lt;br&amp;gt;[[Supercargo]]&amp;lt;br&amp;gt;[[Superlifter]]&amp;lt;br&amp;gt;[[Yacht - Amen Class]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Graceful giants cross the galaxies before our eyes. The forlorn Biodome, destined to forever wander the Ooniverse. The Cruiseship taking citizens to holiday planets. The Supercargo ferrying aid to the needy. The private Yacht filled with luxury and the prosaic Superlifter than helps giant ships get to their new homes or their final resting place. Now amended to make spectacular explosions as they try to dock less likely (sorry!)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Amiga Replacement Sounds]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set, based on the sound set used in the Amiga version of the original Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Anarchies OXP]]&lt;br /&gt;
| [[Renegade Viper|Hacker Viper]]&amp;lt;br&amp;gt;[[Phoenix|Salvager Phoenix]]&amp;lt;br&amp;gt;[[Hognose|Salvager Tugger]]&lt;br /&gt;
| [[Hacker Outpost]]&amp;lt;br&amp;gt;[[Salvage Gang]]&amp;lt;br&amp;gt;[[Military station|Sentinel Station]]&amp;lt;br&amp;gt;[[Military station|Renegade Station]]&lt;br /&gt;
| Feature/Ships/Stations. Complete overhaul of Oolite's legal rating system. It gets harder to become clean again. But there are some new ways to achieve this as well: Hacker Outposts can be found in the higher tech [[Powers_and_Organisations#Anarchy_Worlds|Anarchy systems]], the criminals willing to clear a fugitive's legal record. For a price of course! Salvage Gangs are spread all over the Ooniverse, providing good equipment deals. Those in Anarchy systems offer a service similar to the Hacker Outposts as well. Sentinel Stations are placed in some of the worst Anarchies. But beware! Some of them have been overthrown by the pirates and are now Renegade Stations. Good news for the pirates among the players, because these are as close to a safe-haven for you as it gets! All of these also feature their own ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[AMS_OXP|Anti-Missile System]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. Adds the anti-missile system, designed to offer a defence against non-standard missiles via automatically firing interceptor darts (6 per launcher, replenishable). Requires [[Missile_Analyser|Missile Analyser OXP]] by Eric Walch.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Aphid|Aphid Escort Service]]&lt;br /&gt;
| [[Aphid]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the stylish Aphid escort service.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Aquatics_OXP|Aquatics]]&lt;br /&gt;
| [[Manta Ray]]&amp;lt;br&amp;gt;[[Shark]]&amp;lt;br&amp;gt;[[Man O' War]]&amp;lt;br&amp;gt;[[Box Escort]]&amp;lt;br&amp;gt;[[Conger|Conger Cargo Hauler]]&amp;lt;br&amp;gt;[[Hawksbill|Hawksbill Fuel Tanker]]&amp;lt;br&amp;gt;[[HammerHead|HammerHead Hauler Carrier]]&amp;lt;br&amp;gt;[[Barracuda]]&amp;lt;br&amp;gt;[[Leviathan_Platform|Leviathan System Platform]]&amp;lt;br&amp;gt;[[Orca|Orca Destroyer]]&lt;br /&gt;
|&lt;br /&gt;
|Ships/mission/station. Ships from the Aquarian Shipbuilding Corporation of Aqualina, G3. Also includes a brand new station (the Aquarian Shipbuilding Corp. HQ) plus a mission based out of it. And who knows, there may be a few more surprises in there too...&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Armoured_Transport_Type_1|Armoured Transport&amp;lt;br&amp;gt;Type 1]]&lt;br /&gt;
| [[Gaundlet_Armoured_Transport_Type1|Gaundlet Armoured Transport Type 1]]&amp;lt;br&amp;gt;[[Gaundlet_Armoured_Escort_Viper|Gaundlet Armoured Escort Viper]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Convoys of well armed craft ferry gold and other valuables through the space lanes. Only a pirate with an Iron Ass would dream of attempting a robbery!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[The Assassins Guild OXP|Assassins Guild OXP]]&lt;br /&gt;
| [[Daemon_Class_Cruiser|Daemon Class Cruiser]]&amp;lt;br&amp;gt;[[Mongoose]]&amp;lt;br&amp;gt;[[Nemesis]]&amp;lt;br&amp;gt;[[Scorpion_Frigate|Scorpion Frigate]]&amp;lt;br&amp;gt;[['Balrog' Class Dreadnaught]]&lt;br /&gt;
|[[Navy Station]]&lt;br /&gt;
| [[Oolite_Missions#The_Assassins_Guild|Missions]] / Ships / Stations / Planets. 21 missions involving murder to order in Galaxy 7, available to experienced Commanders amoral enough to gain admittance to the sinister [[Powers_and_Organisations#The_Assassins_Guild|Assassins Guild]]. Updated from the versions on Oosat1 &amp;amp; Oosat2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Asteroid_Storm|Asteroid Storm]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature / [[Oolite_Missions#Asteroid_Storm|Mission]]. Adds lots of different types of Asteroids to the Universe. A [[Oolite_Missions#Asteroid_Storm|Mission]] is also included, well suited to a novice Commander. A well known station in Galaxy 1 comes under threat from a large asteroid strike. The updated version fixes a bug that meant that only one new type of asteroid was being added. Now the intended twelve varieties appear in game. '''Note''': this OXP does not work in Oolite v.1.74+.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Aurora]]&lt;br /&gt;
|[[Aurora]]&lt;br /&gt;
|&lt;br /&gt;
| BigTraders. Huge passenger ships for the wealthiest in society.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Automatic_Chaff_System|Automatic Chaff System]] [[Image:New.gif|New]]&amp;lt;!--  released 29th April 2010 --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. An enhanced chaff-based  missile countermeasure system by [[User:Wyvern|Wyvern]],  based on Thargoid's [[AMS_OXP|AMS]]  and Ramirez's [[Missiles_and_Bombs|Chaff Dispenser]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Baakili Far Trader]]&lt;br /&gt;
| &lt;br /&gt;
| [[Baakili Far Trader]]&lt;br /&gt;
|Ships. Adds a dockable Alien ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Bandersnatch]]&lt;br /&gt;
| [[Bandersnatch]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a pirate capital vessel armed with 4 x fore lasers. (Bugfixed at November 2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Black_Monk_Monastery|Bank of the Black Monks]]&lt;br /&gt;
| [[Black_Monk_Gunship|Black Monk Gunship]]&lt;br /&gt;
| [[Black_Monk_Monastery|Black Monk Monastery]]&lt;br /&gt;
| Feature / [[Oolite_Missions#Bank_of_the_Black_Monks|Mission]]. Monks aboard well armed stations appear in advanced systems. Loans are offered, defaulters will be exterminated! Two versions of the OXP are available, the [http://www.box.net/public/z2ahfudnt3 Non-Shader Bank of the Black Monks OXP'] and the [http://http://www.box.net/shared/7twwbaelcc 'Shady Bank of the Black Monks OXP']. The Non-Shader Version will run on all versions of Oolite. The Shady version uses Shaders and requires Version 1.71 or higher of Oolite. Slow Systems will struggle to run the Shady Version, so if you find installing it is slowing your system down too much, then try the Non-Shady Version.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Behemoth]]&lt;br /&gt;
| &lt;br /&gt;
| [[Behemoth]]&lt;br /&gt;
|Ships. Adds a dockable Navy Cruiser. Updated from the version on Oosat1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[ADCK's_Behemoths|Behemoths - Shadered&amp;lt;br&amp;gt;(By ADCK)]]&lt;br /&gt;
| [[Destroyer]]&lt;br /&gt;
| [[Behemoth - Type 1]]&amp;lt;br&amp;gt;[[Behemoth - Type 2]]&amp;lt;br&amp;gt;[[Behemoth - Type 3]]&amp;lt;br&amp;gt;[[Behemoth - Type 4]]&amp;lt;br&amp;gt;[[Military Station Type 2]]&lt;br /&gt;
|Ships. Based on the above oxp, but with 2 new behemoths and shaders, plus many new ships. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Behemoth Spacewar]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Patch. Adds intelligence to the Behemoth and brings a combat with Thargoids&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[BigShips_OXP|Big Ships]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships (ish). Adds the new role &amp;quot;bigTrader&amp;quot; to the game, designed for large ships which are unable to dock with stations due to their size. Also includes an AI which can be used for such ships, but DOES NOT include any ships of its own.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[BlackjacksBullion OXP|BlackJacks Bullion OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Missions. Starts in galaxy 2 at Telace as Commander Blackjack arrives via escape pod at the same station you have just docked.&amp;lt;br&amp;gt;Also contains two rare coloured [[S.T.E]]'s available for player purchase. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Boa_II_Clipper_Class|Boa II Clipper Class]]&lt;br /&gt;
| [[Boa_II_Clipper_Class|Boa II Clipper Class]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A development of the Boa Class Cruiser, adding a third engine making it faster, at the cost of 25 TC of cargo space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Boomslang]]&lt;br /&gt;
| [[Boomslang]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a mid-range multi-role ship. Used by pirates and traders alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Bounty_Scanner|Bounty Scanner]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Bounty Scanner adds bounty details (if any) to the targeting lock-box display when locked onto other ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Bulk_Haulers|Bulk Haulers&amp;lt;br&amp;gt;(by ADCK)]]&lt;br /&gt;
| [[Lynx Bulk Carrier (Oolite)|Lynx Bulk Carrier]]&amp;lt;br&amp;gt;[[Long Range Cruiser (Oolite)|Long Range Cruiser]]&lt;br /&gt;
| [[Bulk Hauler]]&amp;lt;br&amp;gt;[[Super Bulk Hauler]]&lt;br /&gt;
|Ships. Adds many Bulk Haulers to the game, including a retextured version of Aegidians Bulk Hauler as seen in the Oolite video on YouTube, which until recently has not been available to the public. (Requires [[BigShips_OXP|Big Ships]] and Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[BuoyRepair|BuoyRepair1.02.5]]&lt;br /&gt;
| [[Armadillo]]&amp;lt;br&amp;gt;[[Controller]]&amp;lt;br&amp;gt;[[Guanako]]&lt;br /&gt;
|[[Buoy Repair Facility|Buoy Repair Facility]]&lt;br /&gt;
|Feature. Repair company for defect or destroyed nav-beacons (Updated 7/10/2009).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Caduceus|Caduceus OXP]]&lt;br /&gt;
| [[Caduceus]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the very expensive (and deadly) Caduceus, which has six broadside-mounted auto-targeting plasma cannons.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Capisastra OXP]]&lt;br /&gt;
| [[Capisastra Defender]]&amp;lt;br&amp;gt;[[Capisastra Hauler]]&amp;lt;br&amp;gt;[[Capisastra Warrior]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Capisatra pirates appear in Galaxy 4.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Captured_Thargons_OXP|Captured Thargons]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. Gives the possibility for player ships to carry and launch captured and reprogrammed Thargon robot fighters&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cargo_Wreck_Teaser_OXP|Cargo &amp;amp; Wrecks V1.6.2]] [[Image:Updated.gif|Updated]]&amp;lt;!-- last updated 29nd May 2010 --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Cargo. Adds lots of different types of cargo canisters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Cataclysm OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Mission. &amp;quot;Cataclysm.oxp is a mission OXP that takes up the threads of the native Constrictor Hunt and Thargoid Plans missions, and sends you on a mission far bigger than anything you have done for the Navy so far. It gives you the opportunity to re-visit places you have visited before, and re-meet people you had contact with during these missions. And of course it will let you meet various other people, and lead you to a lot of new places, some of which you probably haven't visited before.&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/clearskies.oxp_.zip ''Clear Skies'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Reduces nebula effects. Handy if your system is finding it hard to run Oolite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Cobra_3.5|Chopped Cobra]]&lt;br /&gt;
| [[Cobra_3.5|Cobra Mk 3.5]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A slightly faster and tougher variation on the classic Cobra Mk III, at the price of a reduced cargo bay.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cobra_Clipper_SAR|Cobra Clipper SAR]]&lt;br /&gt;
| [[Cobra_Clipper_SAR|Cobra Clipper SAR]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A custom Cobra Mk III to rescue stranded Commanders.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Cobra III NjX]]&lt;br /&gt;
| [[Cobra III NjX]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A faster, tougher variation on the Classic Cobra Mk III.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Commies|Commies v2.11]] [[Image:Updated.gif|Updated]]&amp;lt;!-- last updated 22nd May 2010 --&amp;gt;&lt;br /&gt;
| [[Ray_Mk.I|Ray Mk I]]&amp;lt;br&amp;gt;[[Giant Ray]]&amp;lt;br&amp;gt;[[Astro_Mines|Mining Pods]]&amp;lt;br&amp;gt;[[Astro_Mines|Scavenger Rays]]&amp;lt;br&amp;gt;[[Sturgeon Mk.I|Sturgeon Mk I]]&amp;lt;br&amp;gt;[[Worker's Commuter]]&lt;br /&gt;
| [[Astro Mines]]&amp;lt;br&amp;gt;[[CZGF|Collective Zero-G Factory]]&amp;lt;br&amp;gt;[[SLAPU|Solar Laboratory and Production Unit]]&lt;br /&gt;
|Ships / Stations. Commie systems have their own police forces, transports, stations and miners.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/pLists/hud.plist ''Compact HUD'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Condor|Condor OXP]]&lt;br /&gt;
| [[Condor]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A very powerful police and Navy Cruiser.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Croydon_Starsoarer|Croydon Starsoarer]] [[Image:New.gif|New]]&amp;lt;!-- released 8th May 2010 --&amp;gt;&lt;br /&gt;
| [[Croydon_Starsoarer|Starsoarer]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. First new ship from a design discussed on the BB's [http://aegidian.org/bb/viewtopic.php?t=7831 Ship Concepts thread]. The ship is similar to the Asp in specification.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/CustomSounds.zip ''Custom Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set. The largest of the currently available sound sets, this pack replaces or adds over 40 sounds, featuring additional music and extensive use of a calm female computer voice to warn the Commander of alarming events.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== D ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[DWCobra|Dark Wheel Cobra]]&lt;br /&gt;
| [[DWCobra|Dark Wheel Cobra]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A custom Cobra Mk III model, as seen on the cover of the Elite Manual.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Deep_Space_Dredger|Deep Space Dredger 2.4.2]]&lt;br /&gt;
| [[Sabre]]&lt;br /&gt;
| [[Deep Space Dredger]]&lt;br /&gt;
|Ships. Adds dockable Space Dredgers to the space lanes, defended by a squad of Saber fighters. Version 2.3 has new, improved textures.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[DeepSpacePirates|Deep Space Pirates]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Normally in Oolite ships do not appear outside the space lanes. This OXP adds ships outside the space lanes. As no police patrols extend this far out pirates and other unpleasant characters can be found in deep space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Deepspace Ships]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Oolite Ships replacement set. Replaces the default ships with new textures.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Deposed_OXP|Deposed 1.3.4]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Deposed|Mission]]. A series of missions set in Galaxy 4 for an experienced Commander. This version is now mission-offering. compatible with other OXPs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[http://www.arcadia-digital.net/steve/Oolite/Oolite.html ''Dictators'']&lt;br /&gt;
| [[Imperial Censor]]&amp;lt;br&amp;gt;[[Imperial Freighter]]&amp;lt;br&amp;gt;[[Imperial Lictor]]&amp;lt;br&amp;gt;[[Imperial Quaestor]]&amp;lt;br&amp;gt;[[Imperial Tanker]]&amp;lt;br&amp;gt;[[Junta Enforcer]]&amp;lt;br&amp;gt;[[Revolutionary Guard]]&lt;br /&gt;
| [[Imperial AstroFactory]]&lt;br /&gt;
| Ships / Stations. Dictatorship systems gain their own police forces, supply craft and stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Diso.zip ''Diso'']&lt;br /&gt;
|&lt;br /&gt;
|[[Navy Station]]&lt;br /&gt;
| Planets / Stations. Extra planets and stations are added to the Diso system in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Display reputation OXP|Display Reputation v1.1]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. Displays your passenger and contract reputation in your ship's manifest.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|Docking Clearance]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. Sets the docking clearance on for all stations in Oolite. Click on [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|this link]] for further explanation.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Griff_Industries|Dodo Stations OXP v1.1]] [[Image:Updated.gif|Updated]]&amp;lt;!-- updated 18th May 2010 --&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| [[Griff_Industries|Dodecahedron Stations]]&lt;br /&gt;
| Stations. Retextured Dodo and Ico stations, by Griff and CaptKev. v1.1 updated 18th May 2010.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Dr HUD OXP]] &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Dragon|Dragon Assault Craft]]&lt;br /&gt;
| [[Dragon|Dragon Assault Craft]]&lt;br /&gt;
|&lt;br /&gt;
| Ships / Equipment. Adds the Dragon Assault Craft, a heavy combat ship available in several different paint-jobs. Also adds the Military Smart Missile, an improved Hard Head Missile with more bang for your Credit. Both the ship and missile are available to the player and NPCs alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/?sharekey=ca166c7e38ef78c6e7c82ed4b8f0c380e04e75f6e8ebb871 ''Dragonfly/Firefly S.T'']&lt;br /&gt;
| [[Dragonfly S.T]]&amp;lt;br&amp;gt;[[Firefly S.T]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Dragonfly S.T and also the much faster Firefly S.T variant. Small fast ideal ship for pirates or bounty hunters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Drones_OXP|Drones]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Weapons. Three new autonomous drones to help the player (and NPCs) in combat. Fire and forget, with targeting taken from the ships scanning computers. Variants are the combat drone (standard fighting drone), the kamikaze drone (upgraded with a low yield warhead) and anti-Thargoid drone (GalCop commission, with stronger lasers and better speed and manoeuvrability, plus battle computer optimisation to seek and destroy Thargoid vessels). All can be recovered and possibly re-used if they survive battle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Eagle Mk II]]&lt;br /&gt;
| [[Eagle Mk II]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds the cheap Eagle Mk II escort vessel in several different versions, including an enhanced SE.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[ADCK's Eagles|Eagles Mk's I to IV&amp;lt;br&amp;gt;(By ADCK)]]&lt;br /&gt;
| [[Eagle_Long_Range_Fighter_Mk_1_(Oolite)|Eagle Mk 1]]&amp;lt;br&amp;gt;[[Eagle_Long_Range_Fighter_Mk_2_(Oolite)|Eagle Mk 2]]&amp;lt;br&amp;gt;[[Eagle_Long_Range_Fighter_Mk_3_(Oolite)|Eagle Mk 3]]&amp;lt;br&amp;gt;[[Eagle_Long_Range_Fighter_Mk_4_(Oolite)|Eagle Mk 4]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds 4 Eagle Long Range Fighters to the game, There are 8 different colours to each Eagle, and 4 player versions. Made by ADCK. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Energy_Equipment_OXP|Energy Equipment]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The emergency charge device - a pylon-mounted top-up for the ships systems, and the emergency energy unit - an internally fitted automatically triggered top-up when the juice runs low.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/ettBeaconLauncher.zip ''ETT Homing Beacon]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Mark a position in space by deploying a pylon mounted beacon.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Executive SpaceWays]]&lt;br /&gt;
| [[Delta Long-Range Escort]]&amp;lt;br&amp;gt;[[Gemini Escort]]&amp;lt;br&amp;gt;[[Starseeker Personal Shuttle]]&amp;lt;br&amp;gt;[[Strelka Cruise Liner]]&amp;lt;br&amp;gt;[[Trident Executive Shuttle]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds the Executive SpaceWays fleet of ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[External Views OXP|External Views]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Adds better outside views to all the Classic Elite Ships. Warning: Do '''not''' use with Oolite 1.70 and above! From Oolite 1.70 onwards improved outside views have been added to the game itself, so you don't need this OXP anymore. Just throw it away.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px;&amp;quot;|Information / Download !! style=&amp;quot;width: 150px;&amp;quot;|Ships !! style=&amp;quot;width: 150px;&amp;quot;|Carriers / Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Famous_Planets_2.0.OXP|Famous Planets v2.0]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Flavour. Adds unique planetary textures to 46 planets in Galaxy 1, with Galaxy 2 coming soon. Adds new planetary descriptions to the F7 screen. And theme tunes for 10 planets on arrival.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Famous Planets Liners OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. This OXP adds Spaceway Liners on the 4 spaceways from Lave to Zadies. You can find a map on the Bulletin Board. Just search for the latest version of Presti70's trading map of Galaxy 1. It is a separate OXP but is designed to complement the upcoming Famous Planets v2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Far_Arm_ships|Far Arm ships]]&lt;br /&gt;
| [[Far_Arm_Sunracer|Sunracer]]&amp;lt;br/&amp;gt;[[Far_Arm_Scow|Scow]]&amp;lt;br/&amp;gt;[[Far_Arm_Tanker|Tanker]]&amp;lt;br/&amp;gt;[[Far_Arm_Corsair|Corsair]]&amp;lt;br/&amp;gt;[[Far_Arm_Dart|Dart]]&amp;lt;br/&amp;gt;[[Far_Arm_Hunter|Hunter]]&amp;lt;br/&amp;gt;[[Far_Arm_Cruiser|Cruiser]]&amp;lt;br/&amp;gt;[[Far_Arm_Titan|Titan]]&amp;lt;br/&amp;gt;[[Far_Arm_Manchi_Vulture|Manchi Vulture]]&amp;lt;br/&amp;gt;[[Far_Arm_Manchi_Wasp|Manchi Wasp]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. This OXP adds 10 ships, inspired by [http://en.wikipedia.org/wiki/Space_Rogue Paul Neurath's Space Rogue] to the Ooniverse. There is also a new alien race called the Manchi, who pilot ships of bizarre design. Released under the [http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported] License.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Far Star OXP|Far Star]]&lt;br /&gt;
| [[Far_Star_Murderer|Far Star Murderer]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A mid-range fighter / trader, with a fair sized cargo bay.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [http://www.box.net/shared/d57y0uip74 ''Farsun v1.05'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Places suns further away from the planet than standard Oolite. New, improved, and fully compatible with Novae!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fer de Lance NG|Fer de Lance NG OXP]]&lt;br /&gt;
| [[Fer de Lance NG]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a more powerful version of the Fer de Lance with several custom paint jobs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Ferdepai]]&lt;br /&gt;
| [[Ferdepai]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a new fighter / trader to Galaxy 2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fighter_HUD_%28Oolite%29|Fighter HUD]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Firewasp]]&lt;br /&gt;
| [[Firewasp]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A fast interceptor.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Flying Dutchman OXP]]&lt;br /&gt;
| [[Flying Dutchman OXP|Griff Wireframe Cobra]]&lt;br /&gt;
|&lt;br /&gt;
| Feature / Ships. Adds the small chance to meet a ''Ghost Ship'' in the Ooniverse. What is it? Some claim that it's the ghost of Commander Peter Jameson, reported lost at the end of the last Thargoid War, others that it is simply a manifestation of all those lost souls who were trapped in the trackless depths of interstellar space. One common story is the trail of bad luck and hideous deaths that follow in the wake of the ship's sightings...&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Freaky Thargoids OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[shaders in Oolite|Shader]] example, requires Oolite 1.69. With this OXP installed, Thargoids will use the new Shaders. This was one of the first ships with shaders. Starting with 1.74 the shaders for this ship won't work anymore as intended but the ship can still be used if wanted.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/e43ftmvqmr ''Free Trade Zone'']&lt;br /&gt;
|&lt;br /&gt;
| [[Free_Trade_Zone|Free Trade Zone]]&lt;br /&gt;
| Stations. Adds an independent trading post of dubious legality to Multi-Government systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Frog Space Rickshaw]]&lt;br /&gt;
| [[Frog Space Rickshaw]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a chatty space taxi service to the safer systems. [[Image:Updated.gif|Updated!]] Updated with a new download link which was broken before.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fuel_Collector_OXP|Fuel Collector]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Fuel Collector enables you to very slowly gather fuel whilst cruising in space, whether en-route to a station, or in interstellar space should a witch-jump malfunction occur. You can also gather any unburnt fuel from destroyed ships as well as tap fuel from derelict or abandoned ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| [[Fuel Station OXP]]&lt;br /&gt;
|&lt;br /&gt;
| [[Fuel Station OXP|Fuel Station]]&lt;br /&gt;
|Station. Adds fly-thru Fuel Stations and Fuel Satellites near the witchpoint and along route one.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fuel Tank]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Equipment. Mounts in place of a missile, to top up 3 light years of fuel.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
{{Navbox OXP}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:OXP Lists]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP&amp;diff=18517</id>
		<title>OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP&amp;diff=18517"/>
		<updated>2010-05-06T06:07:06Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What are OXPs? ==&lt;br /&gt;
&lt;br /&gt;
[[Image:oolite-oxp-icon.png|128px|right|OXP icon]]&lt;br /&gt;
An '''OXP''' (Oolite eXpansion Pack) is an enhancement to the game [[Oolite]]. Typically, an OXP is downloaded as a ZIP file, which is expanded and placed in Oolite's AddOns folder. On the Mac the OXP is a shown as an application, which takes the form of the icon shown here. On Windows the OXP appears as a normal folder ending &amp;quot;.oxp&amp;quot;. An OXP could be a new game object (such as a ship, space station or a moon), a mission, or a combination of several elements. OXPs can use all of the facilities of Oolite, including some that are not used in the standard, unexpanded game. Whatever your OS, you need to move the OXP into Oolite's AddOns folder. Oolite will only read an OXP if you move the .oxp folder (or Application on the Mac) into Oolite's AddOns folder.&lt;br /&gt;
&lt;br /&gt;
== Downloading OXPs ==&lt;br /&gt;
&lt;br /&gt;
On this page you will find download links to all the OXPs. The download will create a .ZIP file. Unzip it and a new folder will appear. Open this folder and you will see a folder ending .oxp and usually a README file. Move the folder ending .oxp into the Oolite AddOns folder. Next time you load up Oolite the new features added by the OXP will be added to the game. Be sure to read the README file, as this will tell you what the OXP does. If you are updating an old version of an OXP on Oolite 1.69.1 onwards, hold down the SHIFT key whilst Oolite loads up for the first time after installing in order to ensure the cache is updated.&lt;br /&gt;
&lt;br /&gt;
Below you will see a table of all the OXPs set out in alphabetical order. The link in the first column will take you to a Wiki Page giving you information on the OXP and a download link. If no Wiki page is currently available for the OXP, the link will take you directly to a download link.&lt;br /&gt;
&lt;br /&gt;
The links in the next column will take you to Wiki Pages giving information on ships or stations added by the OXP. Many of the [[Oolite_Missions|Mission OXPs]] will contain lots of other ships, stations or weapons that are not listed here. The Wiki only gives information on the Ships listed in the galaxy wide &amp;quot;Jane's Spacecraft&amp;quot;. Many military, criminal and corporate powers do not make information on the craft they build or use available to the galactic public! Below the Main Table is a list of download links to all the OXPs broken down by category.&lt;br /&gt;
&lt;br /&gt;
Most OXPs can also be found at [http://oosat.alioth.net The Oolite Satellite Resource Site] (Oosat2) or the older [http://capnhack.com/hosting/oolite/Oolite/OoSat.html Captain Hack OoSat Site] (Oosat1). Please note however that neither of these sites have been updated for a long time, nor will they be. All updating is now done on this page of the Wiki. You should use the link shown on this page to get the latest version of the OXP. For example, the versions of Assassins.oxp, Ionics.oxp, Thargoid Wars.oxp and Spyhunter.oxp on the Captain Hack site are old versions (and contain bugs). The links on this page will take you to the latest versions.&lt;br /&gt;
&lt;br /&gt;
== Table of all OXPs ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 1px solid #cfcfbf; background-color: #f0f0ff; padding: .5em 1em 1em; cellpadding: 0; cellspacing: 0; color: #000000; vertical-align: top; text-align: left;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
! Information / Download !! Ships !! Stations !! Short Description&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Aegidian's_Specials|Aegidian's Specials]]&lt;br /&gt;
| [[Mussurana]]&lt;br /&gt;
[[Asp_%28Oolite%29#Notable_features|Asp Mark II Special]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The powerful Mussurana and an improved Asp.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Aegidian's_X-Ships|Aegidian's X-Ships]]&lt;br /&gt;
| [[Python_ET_Special|Python ET Special]]&lt;br /&gt;
&lt;br /&gt;
[[Cobra_Mk.2_%28Oolite%29|Cobra Mk II]]&lt;br /&gt;
&lt;br /&gt;
[[Asp_%28Oolite%29#Notable_features|Asp Mark II Special]]&lt;br /&gt;
&lt;br /&gt;
[[Sidewinder_%28Oolite%29#Notable_featuresl|Sidewinder Special]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. An improved Python, the experimental Cobra Mk II, the Asp Mark II Special and the Sidewinder Special.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/p9wjemvoc8 ''Amen Brick's Pirate Clan One: The Blitzspears (NEW 07/08)'']&lt;br /&gt;
| Assassin, Hoodlum, Mugger, Scoundrel and Spiv&lt;br /&gt;
|&lt;br /&gt;
|Ships. The first of the Pan-Galaxy Outlaw clans to rise through the leadership of some diabolical criminal genius. What are his, or indeed hers or, further indeed, its future plans? Will their nefarious example be followed by others? The answers are out there...&lt;br /&gt;
All ships in this version are playable. Future versions (probably modular for memory saving reasons) will have more clans, the ability to join clans (if I master the arcane art of programming), stations and missions. Stay untuned, folks.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/sm6fpqxsg4 ''Amen Brick's Megaships v1.2 (Amended 07/08)'']&lt;br /&gt;
| The Battleship, The Biodome, The Cruiseship, The Hospitalship, The Supercargo, The Superlifter and the Yacht:Amen Class&lt;br /&gt;
|&lt;br /&gt;
|Ships. Graceful giants cross the galaxies before our eyes. The forlorn Biodome, destined to forever wander the Ooniverse. The Cruiseship taking citizens to holiday planets. The Supercargo ferrying aid to the needy. The private Yacht filled with luxury and the prosaic Superlifter than helps giant ships get to their new homes or their final resting place. Now amended to make spectacular explosions as they try to dock less likely (sorry!)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/E5Amigasoundpack01oxp.zip ''Amiga Replacement Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set, based on the sound set used in the Amiga version of the original Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Anarchies_OXP|''Anarchies.oxp'']]&lt;br /&gt;
| [[Hacker_Viper|Hacker Viper]]&lt;br /&gt;
&lt;br /&gt;
[[Salvager_Phoenix|Salvager Phoenix]]&lt;br /&gt;
&lt;br /&gt;
[[Salvager_Tugger|Salvager Tugger]]&lt;br /&gt;
| [[Hacker_Outpost|Hacker Outpost]]&lt;br /&gt;
&lt;br /&gt;
[[Salvage_Gang|Salvage Gang]]&lt;br /&gt;
&lt;br /&gt;
[[Sentinel_Station|Sentinel Station]]&lt;br /&gt;
&lt;br /&gt;
[[Renegade_Station|Renegade Station]]&lt;br /&gt;
| Feature/Ships/Stations. Complete overhaul of Oolite's legal rating system. It gets harder to become clean again. But there are some new ways to achieve this as well: Hacker Outposts can be found in the higher tech [[Powers_and_Organisations#Anarchy_Worlds|Anarchy systems]], the criminals willing to clear a fugitive's legal record. For a price of course! Salvage Gangs are spread all over the Ooniverse, providing good equipment deals. Those in Anarchy systems offer a service similar to the Hacker Outposts as well. Sentinel Stations are placed in some of the worst Anarchies. But beware! Some of them have been overthrown by the pirates and are now Renegade Stations. Good news for the pirates among the players, because these are as close to a safe-haven for you as it gets! All of these also feature their own ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[AMS_OXP|Anti-Missile System]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. Adds the anti-missile system, designed to offer a defence against non-standard missiles via automatically firing interceptor darts (6 per launcher, replenishable). Requires [[Missile_Analyser|Missile Analyser OXP]] by Eric Walch.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/aphidv2.oxp_.zip ''Aphid Escort Service'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the stylish Aphid escort service.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Aquatics_OXP|Aquatics]]&lt;br /&gt;
| [[Manta_Ray|Manta Ray]], [[Shark|Shark]], [[Man_O%27_War|Man O' War]], [[Box_Escort|Box Escort]], [[Conger|Conger Cargo Hauler]], [[Hawksbill|Hawksbill Fuel Tanker]], [[HammerHead|HammerHead Hauler Carrier]], [[Barracuda|Barracuda]], [[LeviathanPlatform|Leviathan System Platform]], [[Orca|Orca Destroyer]]&lt;br /&gt;
|&lt;br /&gt;
|Ships/mission/station. Ships from the Aquarian Shipbuilding Corporation of Aqualina, G3. Also includes a brand new station (the Aquarian Shipbuilding Corp. HQ) plus a mission based out of it. And who knows, there may be a few more surprises in there too...&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/att1.zip ''Armoured Transport Type 1'']&lt;br /&gt;
| [[Gaundlet_Armoured_Transport_Type1|Gaundlet Armoured Transport Type 1]]&lt;br /&gt;
&lt;br /&gt;
[[Gaundlet_Armoured_Escort_Viper|Gaundlet Armoured Escort Viper]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Convoys of well armed craft ferry gold and other valuables through the space lanes. Only a pirate with an Iron Ass would dream of attempting a robbery!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[The Assassins Guild OXP|Assassins Guild V1.3 (Updated)]]&lt;br /&gt;
| [[Deamon_Cruiser|Deamon Cruiser]]&lt;br /&gt;
&lt;br /&gt;
[[Mongoose]]&lt;br /&gt;
&lt;br /&gt;
[[Nemesis]]&lt;br /&gt;
&lt;br /&gt;
[[Scorpion_Frigate|Scorpion Frigate]]&lt;br /&gt;
|[[Navy Station]]&lt;br /&gt;
| [[Oolite_Missions#The_Assassins_Guild|Missions]] / Ships / Stations / Planets. 21 missions involving murder to order in Galaxy 7, available to experienced Commanders amoral enough to gain admittance to the sinister [[Powers_and_Organisations#The_Assassins_Guild|Assassins Guild]]. Updated from the versions on Oosat1 &amp;amp; Oosat2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Asteroid_Storm|Asteroid Storm]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature / [[Oolite_Missions#Asteroid_Storm|Mission]]. Adds lots of different types of Asteroids to the Universe. A [[Oolite_Missions#Asteroid_Storm|Mission]] is also included, well suited to a novice Commander. A well known station in Galaxy 1 comes under threat from a large asteroid strike. The updated version fixes a bug that meant that only one new type of asteroid was being added. Now the intended twelve varieties appear in game. '''Note''': this OXP does not work in Oolite v.1.74+.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Aurora]]&lt;br /&gt;
|[[Aurora]]&lt;br /&gt;
|&lt;br /&gt;
| BigTraders. Huge passenger ships for the wealthiest in society.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Automatic_Chaff_System|Automatic Chaff System]] [[Image:New.gif|New]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. An enhanced chaff-based  missile countermeasure system by [[User:Wyvern|Wyvern]],  based on Thargoid's [[AMS_OXP|AMS]]  and Ramirez's [[Missiles_and_Bombs|Chaff Dispenser]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Baakili_Far_Trader|Baakili Far Trader]]&lt;br /&gt;
| [[Baakili Far Trader]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a dockable Alien ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/dropbox/bandersnatch_1_1.zip ''Bandersnatch v1.1'']&lt;br /&gt;
|[[Bandersnatch]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a pirate capital vessel armed with plasma turrets. (Bugfixed at November 2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Black_Monk_Monastery|Bank of the Black Monks]]&lt;br /&gt;
| [[Black_Monk_Gunship|Black Monk Gunship]]&lt;br /&gt;
| [[Black_Monk_Monastery|Black Monk Monastery]]&lt;br /&gt;
| Feature / [[Oolite_Missions#Bank_of_the_Black_Monks|Mission]]. Monks aboard well armed stations appear in advanced systems. Loans are offered, defaulters will be exterminated! Two versions of the OXP are available, the [http://www.box.net/public/z2ahfudnt3 Non-Shader Bank of the Black Monks OXP'] and the [http://http://www.box.net/shared/7twwbaelcc 'Shady Bank of the Black Monks OXP']. The Non-Shader Version will run on all versions of Oolite. The Shady version uses Shaders and requires Version 1.71 or higher of Oolite. Slow Systems will struggle to run the Shady Version, so if you find installing it is slowing your system down too much, then try the Non-Shady Version.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Behemoth]]&lt;br /&gt;
| [[Behemoth]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a dockable Navy Cruiser. Updated from the version on Oosat1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[ADCK's_Behemoths|Behemoths - Shadered (By ADCK)]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Based on the above oxp, but with 2 new behemoths and shaders (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Behemoth_Spacewar|''Behemoth Spacewar'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Patch. Adds intelligence to the Behemoth and brings a combat with Thargoids&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[BigShips_OXP|Big Ships]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships (ish). Adds the new role &amp;quot;bigTrader&amp;quot; to the game, designed for large ships which are unable to dock with stations due to their size. Also includes an AI which can be used for such ships, but DOES NOT include any ships of its own.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Boa_II_Clipper_Class|Boa II Clipper Class]]&lt;br /&gt;
| [[Boa_II_Clipper_Class|Boa II Clipper Class]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A development of the Boa Class Cruiser, adding a third engine making it faster, at the cost of 25 TC of cargo space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Media:BoomslangWIP.zip|''Boomslang'']]&lt;br /&gt;
| [[Boomslang]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a mid-range multi-role ship. Used by pirates and traders alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Bounty_Scanner|Bounty Scanner]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Bounty Scanner adds bounty details (if any) to the targeting lock-box display when locked onto other ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Bulk_Haulers|Bulk Haulers by ADCK]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds many Bulk Haulers to the game, including a retextured version of Aegidians Bulk Hauler as seen in the Oolite video on YouTube, which until recently has not been available to the public. (Requires [[BigShips_OXP|Big Ships]] and Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[BuoyRepair|BuoyRepair1.02.5]]&lt;br /&gt;
| Armadillo&amp;lt;br&amp;gt;Controller&amp;lt;br&amp;gt;Guanako&lt;br /&gt;
|[[Buoy Repair Facility|Buoy Repair Facility]]&lt;br /&gt;
|Feature. Repair company for defect or destroyed nav-beacons (Updated 7/10/2009).&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.crimsonforge.co.uk/cloister/neocaduceus.zip Caduceus]&lt;br /&gt;
| [[Caduceus|Caduceus]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the very expensive (and deadly) Caduceus, which has six broadside-mounted auto-targeting plasma cannons.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/seosu.zip ''Capisastra'']&lt;br /&gt;
| [[Capisastra_Defender|Capisastra Defender]]&lt;br /&gt;
&lt;br /&gt;
[[Capisastra_Hauler|Capisastra Hauler]]&lt;br /&gt;
&lt;br /&gt;
[[Capisastra_Warrior|Capisastra Warrior]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Capisatra pirates appear in Galaxy 4. [[Capisastra_OXP|More Information]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Captured_Thargons_OXP|Captured Thargons]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. Gives the possibility for player ships to carry and launch captured and reprogrammed Thargon robot fighters&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cargo_Wreck_Teaser_OXP|''Cargo &amp;amp; Wrecks V1.4 (Updated April 2009)'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Cargo. Adds lots of different types of cargo canisters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Cataclysm_OXP|''Cataclysm'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Mission. &amp;quot;Cataclysm.oxp is a mission OXP that takes up the threads of the native Constrictor Hunt and Thargoid Plans missions, and sends you on a mission far bigger than anything you have done for the Navy so far. It gives you the opportunity to re-visit places you have visited before, and re-meet people you had contact with during these missions. And of course it will let you meet various other people, and lead you to a lot of new places, some of which you probably haven't visited before.&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/clearskies.oxp_.zip ''Clear Skies'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Reduces nebula effects. Handy if your system is finding it hard to run Oolite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Cobra_3.5|Chopped Cobra]]&lt;br /&gt;
| [[Cobra_3.5|Cobra Mk 3.5]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A slightly faster and tougher variation on the classic Cobra Mk III, at the price of a reduced cargo bay.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Cobra_Clipper_SAR|Cobra Clipper SAR]]&lt;br /&gt;
| [[Cobra_Clipper_SAR|Cobra Clipper SAR]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A custom Cobra Mk III to rescue stranded Commanders.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/cobra3njx.zip ''Cobra Mk III Njx'']&lt;br /&gt;
| [[Cobra_III_NjX|Cobra III NjX]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A faster, tougher variation on the Classic Cobra Mk III.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Commies|''Commies v2.10'']] [[Image:Updated.gif|Updated]]&lt;br /&gt;
| [[Ray_Mk.I|Ray Mk I]]&lt;br /&gt;
&lt;br /&gt;
[[Giant_Ray|Giant Ray]]&lt;br /&gt;
&lt;br /&gt;
[[Astro_Mines|Mining Pods]]&lt;br /&gt;
&lt;br /&gt;
[[Astro_Mines|Scavenger Rays]]&lt;br /&gt;
&lt;br /&gt;
[[Sturgeon_Mk.I|Sturgeon Mk I]]&lt;br /&gt;
&lt;br /&gt;
[[Worker%27s_Commuter|Worker's Commuter]]&lt;br /&gt;
&lt;br /&gt;
| [[Astro_Mines|Astro Mines]]&lt;br /&gt;
&lt;br /&gt;
[[CZGF|Collective Zero-G Factory]]&lt;br /&gt;
&lt;br /&gt;
[[SLAPU|Solar Laboratory and Production Unit]]&lt;br /&gt;
|Ships / Stations. Commie systems have their own police forces, transports, stations and miners.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/pLists/hud.plist ''Compact HUD'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/public/b2tic3tjsk#f4083657 ''Condor'']&lt;br /&gt;
| [[Condor]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A very powerful police and Navy Cruiser.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/CustomSounds.zip ''Custom Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set. The largest of the currently available sound sets, this pack replaces or adds over 40 sounds, featuring additional music and extensive use of a calm female computer voice to warn the Commander of alarming events.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/dwcobra3HiRes.zip ''Dark Wheel Cobra''] -&lt;br /&gt;
([http://oosat.alioth.net/files/dwcobra3.zip alternative lo-end version])&lt;br /&gt;
|[[DWCobra|Dark Wheel Cobra]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A custom Cobra Mk III model, as seen on the cover of the Elite Manual.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Deep_Space_Dredger|''Deep Space Dredger 2.3'']]&lt;br /&gt;
| [[Sabre]]&lt;br /&gt;
| [[Deep_Space_Dredger|Deep Space Dredger]]&lt;br /&gt;
|Ships / Stations. Adds dockable Space Dredgers to the space lanes, defended by a squad of Saber fighters. Version 2.3 has new, improved textures.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[DeepSpacePirates|''Deep Space Pirates'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Normally in Oolite ships do not appear outside the space lanes. This OXP adds ships outside the space lanes. As no police patrols extend this far out pirates and other unpleasant characters can be found in deep space.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Deepspace_Ships|''Deepspace Ships'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Oolite Ships replacement set. Replaces the default ships with new textures.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Deposed_OXP|''Deposed 1.3.4'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Deposed|Mission]]. A series of missions set in Galaxy 4 for an experienced Commander. This version is now mission-offering. compatible with other OXPs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[http://www.arcadia-digital.net/steve/Oolite/Oolite.html ''Dictators'']&lt;br /&gt;
| [[Imperial_Censor|Imperial Censor]]&lt;br /&gt;
&lt;br /&gt;
[[Imperial_Freighter|Imperial Freighter]]&lt;br /&gt;
&lt;br /&gt;
[[Imperial_Lictor|Imperial Lictor]]&lt;br /&gt;
&lt;br /&gt;
[[Imperial_Quaestor|Imperial Quaestor]]&lt;br /&gt;
&lt;br /&gt;
[[Imperial_Tanker|Imperial Tanker]]&lt;br /&gt;
&lt;br /&gt;
[[Junta_Enforcer|Junta Enforcer]]&lt;br /&gt;
&lt;br /&gt;
[[Revolutionary_Guard|Revolutionary Guard]]&lt;br /&gt;
| [[Imperial_AstroFactory|Imperial AstroFactory]]&lt;br /&gt;
| Ships / Stations. Dictatorship systems gain their own police forces, supply craft and stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Diso.zip ''Diso'']&lt;br /&gt;
|&lt;br /&gt;
|[[Navy Station]]&lt;br /&gt;
| Planets / Stations. Extra planets and stations are added to the Diso system in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Display reputation OXP|''Display Reputation v1.1'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. Displays your passenger and contract reputation in your ship's manifest.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| ''Dr HUD'' [http://sancho.dk/oolite/Dr_HUD_Cmk3.zip Cobra Mk III version], [http://sancho.dk/oolite/Dr_HUD.zip Custom version]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|Docking Clearance]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. Sets the docking clearance on for all stations in Oolite. Click on [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|this link]] for further explanation.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| ''Dr HUD'' [http://sancho.dk/oolite/Dr_HUD_Cmk3.zip Cobra Mk III version], [http://sancho.dk/oolite/Dr_HUD.zip Custom version]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Dragon|Dragon Assault Craft (Updated 9/8/08)]]&lt;br /&gt;
| [[Dragon|Dragon Assault Craft]]&lt;br /&gt;
|&lt;br /&gt;
| Ships / Equipment. Adds the Dragon Assault Craft, a heavy combat ship available in several different paint-jobs. Also adds the Military Smart Missile, an improved Hard Head Missile with more bang for your Credit. Both the ship and missile are available to the player and NPCs alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/?sharekey=ca166c7e38ef78c6e7c82ed4b8f0c380e04e75f6e8ebb871 ''Dragonfly/Firefly S.T'']&lt;br /&gt;
| [[Dragonfly S.T /Firefly S.T]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Dragonfly S.T and also the much faster Firefly S.T variant. Small fast ideal ship for pirates or bounty hunters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Drones_OXP|Drones]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Weapons. Three new autonomous drones to help the player (and NPCs) in combat. Fire and forget, with targeting taken from the ships scanning computers. Variants are the combat drone (standard fighting drone), the kamikaze drone (upgraded with a low yield warhead) and anti-Thargoid drone (GalCop commission, with stronger lasers and better speed and manoeuvrability, plus battle computer optimisation to seek and destroy Thargoid vessels). All can be recovered and possibly re-used if they survive battle.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Eagle Mk II]]&lt;br /&gt;
| [[Eagle Mk II]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds the cheap Eagle Mk II escort vessel in several different versions, including an enhanced SE.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[http://www.box.net/shared/xkltqit3oj Eagles Mk's I to IV (By ADCK)]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Adds 4 Eagle Long Range Fighters to the game, There are 8 different colours to each Eagle, and 4 player versions. Made by ADCK. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Energy_Equipment_OXP|Energy Equipment]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The emergency charge device - a pylon-mounted top-up for the ships systems, and the emergency energy unit - an internally fitted automatically triggered top-up when the juice runs low.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/ettBeaconLauncher.zip ''ETT Homing Beacon]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Mark a position in space by deploying a pylon mounted beacon.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.arcadia-digital.net/steve/Oolite/Ships/Executive%20SpaceWays%20v2.2.zip ''Executive Spaceways'']&lt;br /&gt;
| [[Delta_Long-Range_Escort|Delta Long-Range Escort]]&lt;br /&gt;
&lt;br /&gt;
[[Gemini_Escort|Gemini Escort]]&lt;br /&gt;
&lt;br /&gt;
[[Starseeker_Personal_Shuttle|Starseeker Personal Shuttle]]&lt;br /&gt;
&lt;br /&gt;
[[Strelka_CruiseLiner|Strelka Cruise Liner]]&lt;br /&gt;
&lt;br /&gt;
[[Trident_Executive_Shuttle|Trident Executive Shuttle]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds the Executive SpaceWays fleet of ships. Commanders may consult the [[Executive_SpaceWays|Executive SpaceWays Sales Brochure]] for further details.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[External Views OXP|External Views]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Adds better outside views to all the Classic Elite Ships. Warning: Do '''not''' use with Oolite 1.70 and above! From Oolite 1.70 onwards improved outside views have been added to the game itself, so you don't need this OXP anymore. Just throw it away.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Far_Arm_ships|Far Arm ships]]&lt;br /&gt;
| [[Far_Arm_Sunracer|Sunracer]]&amp;lt;br /&amp;gt; &lt;br /&gt;
[[Far_Arm_Scow|Scow]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Tanker|Tanker]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Corsair|Corsair]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Dart|Dart]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Hunter|Hunter]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Cruiser|Cruiser]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Titan|Titan]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Manchi_Vulture|Manchi Vulture]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Far_Arm_Manchi_Wasp|Manchi Wasp]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. This OXP adds 10 ships, inspired by [http://en.wikipedia.org/wiki/Space_Rogue Paul Neurath's Space Rogue] to the Ooniverse. There is also a new alien race called the Manchi, who pilot ships of bizarre design. Released under the [http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported] License.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Far Star OXP|Far Star]]&lt;br /&gt;
| [[Far_Star_Murderer|Far Star Murderer]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A mid-range fighter / trader, with a fair sized cargo bay.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/d57y0uip74 ''Farsun v1.05'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Utility. Places suns further away from the planet than standard Oolite. New, improved, and fully compatible with Novae!&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/ferdelance_ng.oxp.zip ''Fer de Lance NG'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a more powerful version of the Fer de Lance with several custom paint jobs.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/ferdepai.oxp_.zip ''Ferdepai'']&lt;br /&gt;
| [[Ferdepai]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a new fighter / trader to Galaxy 2.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.msdownload.co.uk/Oolite/FighterHud.zip ''Fighter HUD Mk. II'']&lt;br /&gt;
| [[Fighter_HUD_%28Oolite%29|Fighter HUD]]&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Firewasp.zip ''Firewasp'']&lt;br /&gt;
| [[Firewasp]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A fast interceptor.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[[Flying Dutchman OXP|Flying Dutchman]]''&lt;br /&gt;
| [[Griff Wireframe Cobra]]&lt;br /&gt;
|&lt;br /&gt;
| Feature / Ships. Adds the small chance to meet a ''Ghost Ship'' in the Ooniverse. What is it? Some claim that it's the ghost of Commander Peter Jameson, reported lost at the end of the last Thargoid War, others that it is simply a manifestation of all those lost souls who were trapped in the trackless depths of interstellar space. One common story is the trail of bad luck and hideous deaths that follow in the wake of the ship's sightings...&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| ''[[Freaky Thargoids OXP|Freaky Thargoids]]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[shaders in Oolite|Shader]] example, requires Oolite 1.69. With this OXP installed, Thargoids will use the new Shaders.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/e43ftmvqmr ''Free Trade Zone'']&lt;br /&gt;
|&lt;br /&gt;
| [[Free_Trade_Zone|Free Trade Zone]]&lt;br /&gt;
| Stations. Adds an independent trading post of dubious legality to Multi-Government systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/fsr.zip ''Frog Space Rickshaw'']&lt;br /&gt;
| [[Frog_Space_Rickshaw|Frog Space Rickshaw]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a chatty space taxi service to the safer systems. [[Image:Updated.gif|Updated!]] Updated with a new download link which was broken before.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Fuel_Collector_OXP|Fuel Collector]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Fuel Collector enables you to very slowly gather fuel whilst cruising in space, whether en-route to a station, or in interstellar space should a witch-jump malfunction occur. You can also gather any unburnt fuel from destroyed ships as well as tap fuel from derelict or abandoned ships.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Fuel_Station_OXP|Fuel Station]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Station. Adds fly-thru Fuel Stations and Fuel Satellites near the witchpoint and along route one.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.arcadia-digital.net/steve/Oolite/Oolite.html ''Fuel Tank'']&lt;br /&gt;
|[[Fuel Tank]]&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Mounts in place of a missile, to top up 3 light years of fuel.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Galactic_Navy_OXP | Galactic Navy]]&lt;br /&gt;
| [[Navy_Frigate|Navy Frigate]]&lt;br /&gt;
&lt;br /&gt;
[[Navy_Medical_Ship|Navy Medical Ship]]&lt;br /&gt;
&lt;br /&gt;
[[Navy_Minesweeper|Navy Minesweeper]]&lt;br /&gt;
&lt;br /&gt;
[[Navy_Transport|Navy Transport]]&lt;br /&gt;
| [[Navy_SecCom_Station|Navy Sector Command Station]]&lt;br /&gt;
| Ships and Stations. A selection of ships and space stations that adds to the already formidable arsenal of the Galactic Navy. Allows commanders to join the Navy Reserves. Requires the Behemoth OXP.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Gates_OXP|Gates]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Station. Adds short-cut jump gates to suitable systems, speeding journeys between the main station and witchpoint for a fee of only 250Cr.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Generation_Ships_OXP|''Generation Ships'']]&lt;br /&gt;
| [[Generation_Ships_OXP|Generation Ships]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. The mythical Generation Ships appear from time to time.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Globe_station|Globe Station2.0]]&lt;br /&gt;
|&lt;br /&gt;
| [[Globe_station|Globe Station]]&lt;br /&gt;
| Stations. A new type of station appears at advanced systems. (Updated 22/10/2009)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/greekshipset1.zip ''Greek Ships'']&lt;br /&gt;
| [[Penelope_Class_Freighter|Penelope Class Freighter]]&lt;br /&gt;
&lt;br /&gt;
[[Telemachus_Class_Escort|Telemachus Class Escort]]&lt;br /&gt;
&lt;br /&gt;
[[Ulysses_Class_Interceptor|Ulysses Class Interceptor]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A large trade ship and escorts. Sometimes also used by pirates.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Griff_ArcElite|Griff ArcElite]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. New versions of the native Oolite ships textured &amp;amp; shaded to resemble how they originally appeared in the Acorn Archimedes version of Elite&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/k2lvh3enuy Griff's Explosion Debris]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Flavour. Box.Net link to an OXP that adds new alloy &amp;amp; debris models to  exploding ships. The oxp features some cool scripting and AI coding by  Thargoid which chains together various types of exploding junk in some  pretty dazzling ways. For more information see [http://www.aegidian.org/bb/viewtopic.php?t=5650 this thread] on the BB. &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Griff_Industries|Griff's Normalmapped Ships]] [[Image:Updated.gif|Updated]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| This is where you can get your hands on some of the best looking ships for Oolite, using shaders and normal-mapping. See the OXP page for a gallery of all the ships. This OXP requires [http://developer.berlios.de/project/showfiles.php?group_id=3577&amp;amp;release_id=13778 Version 1.71 of Oolite] or higher.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/griffin2.oxp.zip ''Griffin Mk.II]&lt;br /&gt;
| [[Griffin_Two_%28Oolite%29|Griffin Two]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Griffin Mk II from Frontier.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/GrittyCoriolis.oxp.zip ''Gritty Coriolis'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Stations. The Corolis Station gets a more detailed texture.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/images/2/2d/G-HUD_Mk2.oxp.zip ''G-HUD Mk2'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Media:halsis.zip|''Hal's Hot Sister'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Sound Set, featuring a female cockpit voice.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/boyracers.zip ''Hatchling Boyracers'']&lt;br /&gt;
| [[BoyRacer|Boy Racer]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The talkative (and often insulting) Boyracers appear in the more advanced systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/file/mm2ekntynom/Hawksound.zip ''Hawksound'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Sound Set. Clean sounds. Quality female computer voice, new weapon, damage and some station interface sounds.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/Herald.zip ''Herald'']&lt;br /&gt;
| [[Herald_Military_Gunboat|Herald Military Gunboat]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A powerful police and Navy interceptor.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Hired_Guns_OXP|Hired Guns]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Weapons/Equipment. Gives the chance to agree a contract for a pair of ships to accompany you on your next journey and fight on your behalf alongside you.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/tugs.zip ''Hognose Tugships'']&lt;br /&gt;
| [[Hognose]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The chatty tug ships can be seen towing broken down ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[HoOpy Casino]]&lt;br /&gt;
|&lt;br /&gt;
|[[HoOpy Casino]]&lt;br /&gt;
|Stations. HoOpy Casinos appear near the station in advanced systems. Commanders who chose to dock can win or lose credits in games of chance.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/?2vgjwpj6xdy ''Hotrods v0.52c''], [http://www.box.net/shared/j2r6frlvq1 ''Hotrods v0.52d'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Classic Elite Ships appear with custom paint jobs. Includes also a large number of custom and standard racing vehicles and a spacegang in tiger-getup that doesn't like the player. A rework, and a new name, for Custom Paints &amp;amp; Racers. Replaces [http://capnhack.com/hosting/oolite/Oolite/OXPs/custpaint1.zip ''Custom Paint Jobs'']&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Hyperradio_js_OXP | Hyperradio v1.17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. This device gives you the ability to listen to your own music. It is expandable by musicpacks that can be separately installed and compatible to OXPConfig, RepairBots and Snoopers. (Updated 11/02/2010)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Icarus (Oolite)|Icarus]]&lt;br /&gt;
| [[Icarus (Oolite)|Icarus]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Icarus Light Trader from [[Seldar Shipyards]]. A small fighter / trader based on blueprints from the lost Solice system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/illicit_unlock.oxp.zip ''Illicit Unlock'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Utility. Allows the player to fly all the Classic Elite Ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Imperial_Courier_%28Oolite%29|Imperial Courier]]&lt;br /&gt;
| [[Imperial_Courier_%28Oolite%29|Imperial Courier]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The powerful Imperial Courier from Frontier, constructed by [[Seldar Shipyards]]. Updated from the version on Oosat1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Interstellar help OXP|''Interstellar help'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Allows you to help out some traders who got stuck in interstellar space without fuel. You will be rewarded.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[ionics_OXP|Ionics 1.2.3]]&lt;br /&gt;
| [[Ionics_Funnelweb|Ionics Funnelweb]]&lt;br /&gt;
&lt;br /&gt;
[[Ionics_Huntsman|Ionics Huntsman]]&lt;br /&gt;
&lt;br /&gt;
[[Ionics_Redback|Ionics Redback]]&lt;br /&gt;
&lt;br /&gt;
[[Ionics_Whitetail|Ionics Whitetail]]&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Ionics|Mission]]. A series of missions set in Galaxy 2 featuring the Ionics Company of Zaria. [[Ionics_OXP|More Information here.]] Updated on 7-4-2009. This version is now compatible with multi-mission offering of other OXPs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Ixian_Ships|''Ixian Ships'']]&lt;br /&gt;
| [[Ixian_Battle_Cruiser|Ixian Battle Cruiser]]&lt;br /&gt;
&lt;br /&gt;
[[Ixian_Bezerka|Ixian Bezerka]]&lt;br /&gt;
&lt;br /&gt;
[[Ixian_Freighter_MK1|Ixian Freighter Mk I]]&lt;br /&gt;
&lt;br /&gt;
[[Ixian_Gunship|Ixian Gunship]]&lt;br /&gt;
&lt;br /&gt;
[[Ixian_No-Ship_Mark_I|Ixian No-Ship Mk I]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A set of ships from Dune. Used by pirates and traders alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/jabberwocky.zip ''Jabberwocky'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the powerful Jabberwocky fighter / trader.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[[JavaScript test OXP|JavaScript test]]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Scripting Oolite with JavaScript|JavaScript scripting]] example, requires Oolite 1.68.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/dropbox/kestrel_falcon1_71_0.zip ''Kestrel&amp;amp;Falcon v1.71.0'']&lt;br /&gt;
| [[Kestrel]]&lt;br /&gt;
[[Falcon_%28Oolite%29|Falcon]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a powerful Star Wars style Falcon, used by pirates and traders alike, and an interceptor used by the Police and Navy. Both models are also available on the open market. Improved from the older Kestrel.oxp and Falcon.oxp models, still available from the [http://www.box.net/public/b2tic3tjsk#1:4083657 ''Benulobiweed''] main download area.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Killit_OXP|''Killit'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Weapons. Adds a bunch of insane super weapons.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.crimsonforge.co.uk/cloister/kirin.zip ''Kirin'']&lt;br /&gt;
| [[Kirin]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a heavy military hauler, CV and XM versions used by both pirates and traders.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/kleptohud.oxp.zip ''Klepto-HUD'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://sancho.dk/oolite/lane_legal.zip ''Lane Legal Racers'']&lt;br /&gt;
| [[Krait]]&lt;br /&gt;
&lt;br /&gt;
[[Mamba]]&lt;br /&gt;
&lt;br /&gt;
[[Sidewinder]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds NPC versions of ships from different [[Racers#Listing_of_sponsored_teams|racing teams]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/dropbox/Lave171.zip ''Lave v1.71'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Planets. Gives the Lave System a make-over adding all the features described in The Dark Wheel novella included with the original Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Lave_Academy_OXP|Lave Academy]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Station. Adds the Lave Academy Orbital station above Lave (and now other planets), with three new mini-game tests of the Commanders' ship skills.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Media:Llama.zip|Llama]]&lt;br /&gt;
| [[Llama]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Llama fighter / trader. Updated from the version of Oosat1 to fix a small bug.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Localhero_OXP|Localhero v1.05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Mission. Adds a mission campaign in the first galaxies. (Updated 9.04.2008)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[LongWay_OXP| ''Long Way Around 1.1'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#The_Longway_Mission|Mission]]. A transport mission well suited to the novice in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Longshot.zip ''Longshot'']&lt;br /&gt;
| [[Longshot]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Longshot fighter / trader, regarded by many as a cheaper alternative to the Cobra Mk III.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Lovecats.oxp|''Lovecats 1.2'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Love_Cats|Mission]]. Love and betrayal amongst the feline races of Galaxy 4. A fast ship, fuel injectors, fuel scoops and a hard heart are advised before you tangle with these cats! Version 1.1 missionclash proof.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/mPakRedux.zip ''M-Pack (rusties)'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds rusty versions of all the Classic Elite ships. Bargain basement prices, although these old bangers are in a poor condition compared to a brand new model. Engines may be worn out reducing maximum speeds and shield generators are frequently held together with duck-tape. When you try to trade one of these old rust buckets in at the shipyards, you may also find that the trade-in value is reduced. None the less, they are cheap and can still haul cargo between the stars.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/manta.oxp_.zip ''Manta'']&lt;br /&gt;
| [[Manta]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Manta light escort craft.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/marett_vol1.zip ''Marett Space Corporation'']&lt;br /&gt;
| [[Adder_Mk_II|Adder Mk II]]&lt;br /&gt;
&lt;br /&gt;
[[Mosquito_Trader|Mosquito Trader]]&lt;br /&gt;
&lt;br /&gt;
[[Mosquito_Sport|Mosquito Sport]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A collection of fighters and medium traders from Marett Space Corps.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.crimsonforge.co.uk/cloister/MedusaHud.oxp.zip ''Medusa Hud'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/megawalnutdash.oxp.zip ''Mega-Walnut Dashboard'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/public/b2tic3tjsk#f4083657 ''Merlin'']&lt;br /&gt;
| [[Merlin_%28Oolite%29|Merlin]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. An interceptor used by the Police and Navy, but also available on the open market.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Media:MildAudio.oxp.zip|''MildAudio'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Military_Fiasco|Military Fiasco]]&lt;br /&gt;
| [[Basilisk]]&lt;br /&gt;
&lt;br /&gt;
[[Hydra]]&lt;br /&gt;
&lt;br /&gt;
[[Leviathan]]&lt;br /&gt;
&lt;br /&gt;
[[Rattle_Cutter|Rattle Cutter]]&lt;br /&gt;
&lt;br /&gt;
[[Wolf_Mk.2_%28Oolite%29|Wolf Mk II Paragon]]&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Military_Fiasco|Mission]]. A mission for the Navy available to a Commander with more than 1,000 kills. Also equips the Navy with powerful cruisers. Version 2.0 is updated version of the Military OXP over the version on Oosat2. Use this one, as the old version can clash with other Mission OXPs. You must also use the Updated version of [http://oosat.alioth.net/files/Murgh-Xships.zip ''Murgh's X-Ships''] to play this OXP.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/gwxstations.oxp.zip ''Military Station'']&lt;br /&gt;
|&lt;br /&gt;
| [[Military_station|Military Station]]&lt;br /&gt;
|Stations. Well armed Military Stations appear in the more advanced systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.msdownload.co.uk/Oolite/stingray.zip ''Military Stingray'']&lt;br /&gt;
| [[Stingray_%28Oolite%29|Stingray]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Military Stingray to the GalCop Navy fleet. Second hand versions are sometimes available on the open market.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Milspec HUD|Milspec HUD]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD. Adds targeting aids, emphasis on functionality.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Missiles and Bombs|Missiles and Bombs]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. Adds the Cascade stand-off missile, Multiple-warhead anti-Thargoid missile, Frag Mine, Frag Missile, EMP Missile and short-range defence missile to the game. The new weapons are available to the player and NPCs alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Missile_Rack_OXP|Missile Rack]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Weapons. Pylon mounted racks of three mini-missiles. Smaller and less powerful than standard missiles, but effectively triple the available armaments a ship can carry.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://sancho.dk/oolite/missionaries.zip ''Missionaries v1.1'']&lt;br /&gt;
| [[Happy_Eye_Pulpit_Pod|Happy Eye Pulpit Pod]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Clerics of four faiths are added to the Universe, spamming Commanders with requests to worship their Gods.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/monument.zip ''Monument'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. A monument to famous Commanders can sometimes be seen near the Sun.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/dropbox/morrigan101.zip ''Morrigan'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a vast trade ship to the Universe. (v 1.0.1, Bugfixed december 2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds2.zip ''Murgh's Replacement Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Murgh_Xships OXP|''Murgh's X-Ships'']]&lt;br /&gt;
| [[Bandy-Bandy]]&lt;br /&gt;
&lt;br /&gt;
[[Chuckwalla]]&lt;br /&gt;
&lt;br /&gt;
[[Eel_Rapier|Eel Rapier]]&lt;br /&gt;
&lt;br /&gt;
[[Taipan]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A fast courier craft and two light escort ships are added. Updated from the version on Oosat1. You MUST use this version for the [[Military_Fiasco|Military Fiasco]] Mission to run properly!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/public/b2tic3tjsk#f4083657 ''Navy Starships'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Arms the Navy with powerful cruisers including a docakable Star Trek style Starship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/newships.oxp.zip ''New Ships'']&lt;br /&gt;
| [[Hamadryad]]&lt;br /&gt;
&lt;br /&gt;
[[Josher]]&lt;br /&gt;
&lt;br /&gt;
[[Naga]]&lt;br /&gt;
&lt;br /&gt;
[[Ringhals]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a variety of mining and trade ships seen in previous versions of Elite.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Neolite Ships]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Oolite ships replacement set.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/hud_ng.oxp.zip ''NG HUD'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Alternative HUD.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/nuvipers.zip ''Nu Vipers'']&lt;br /&gt;
| [[GalCop_Viper_Mark_II|GalCop Viper Mark II]]&lt;br /&gt;
[[GalCop_Viper_Cruiser|GalCop Viper Cruiser]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Increases the types of Viper patrol ships appearing in the space lanes and defending Stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Nukes.oxp|Nuclear Torpedos]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. Adds some powerful, but slow moving, missiles.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Old Ships]]&lt;br /&gt;
| [[Bushmaster_Miner|Bushmaster Miner]]&lt;br /&gt;
&lt;br /&gt;
[[Cat_%28Oolite%29|Cat (Cougar)]]&lt;br /&gt;
&lt;br /&gt;
[[Chameleon_%28Oolite%29|Chameleon]]&lt;br /&gt;
&lt;br /&gt;
[[Ghavial_%28Oolite%29|Ghavial]]&lt;br /&gt;
&lt;br /&gt;
[[Iguana_%28Oolite%29|Iguana]]&lt;br /&gt;
&lt;br /&gt;
[[Monitor_%28Oolite%29|Monitor]]&lt;br /&gt;
&lt;br /&gt;
[[Ophidian_%28Oolite%29|Ophidian]]&lt;br /&gt;
&lt;br /&gt;
[[Salamander_%28Oolite%29|Salamander]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A collection of ships from ArcElite and Elite-A.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Old_Ships_2010|Old Ships 2010]] [[Image:Updated.gif|Updated]]&lt;br /&gt;
| [[Bushmaster_Miner|Bushmaster  Miner]]&lt;br /&gt;
&lt;br /&gt;
[[Cat_%28Oolite%29|Cat (Cougar)]]&lt;br /&gt;
&lt;br /&gt;
[[Chameleon_%28Oolite%29|Chameleon]]&lt;br /&gt;
&lt;br /&gt;
[[Ghavial_%28Oolite%29|Ghavial]]&lt;br /&gt;
&lt;br /&gt;
[[Iguana_%28Oolite%29|Iguana]]&lt;br /&gt;
&lt;br /&gt;
[[Monitor_%28Oolite%29|Monitor]]&lt;br /&gt;
&lt;br /&gt;
[[Monitor2|Monitor 2]]&lt;br /&gt;
&lt;br /&gt;
[[Ophidian_%28Oolite%29|Ophidian]]&lt;br /&gt;
&lt;br /&gt;
[[Salamander_%28Oolite%29|Salamander]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A new version of Murgh's Old Ships, retextured by P.A.Groove. Includes a bonus ship, the Monitor 2.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Oo-Haul]]&lt;br /&gt;
| [[L-Crate_Hauler|L-Crate Hauler]]&lt;br /&gt;
|&lt;br /&gt;
|[[Oolite_Missions#Oo-haul_Escort_Missions|Mission]]. Vast corporate bulk haulers can be seen in the space lanes. Commanders with a respectable Elite rating who chose to dock with a [[Pi-42]] base may also be offered missions to escort one of these haulers safely to its destination. You must also install the [[Your Ad Here!|Your Ad Here!]] OXP for this OXP to work properly.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://wiki.alioth.net/index.php/Image:OoliteItaliano_v1.3.zip ''Oolite Italiano v1.3'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Miscellaneous. First ever Oolite localization OXP. Requires Oolite v1.73 or later.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/ch3lsepk9k ''Oolite Russian v1.0'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Miscellaneous. The second Oolite localization OXP. Requires Oolite v1.72 or later.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Orb]]&lt;br /&gt;
| [[Orb]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a new alien race, which may (or may not) help GalCop in the battle against the Thargoids.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Media:Orbits.zip|''Orbits'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Utility. Positions planets on orbits around the sun.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Ore_Processor|''Ore Processor'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Ore_Processor|Equipment]]. When mounted to a ships fuel scoop systems extracts valuable materials from asteroid fragments. A must for any Commander working as a miner.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Orisis]]&lt;br /&gt;
| [[Orisis]]&lt;br /&gt;
|&lt;br /&gt;
|BigTraders. New passenger liners that ferry passengers around.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/outrider.zip ''Outrider'']&lt;br /&gt;
| [[Outrider_%28Oolite%29|Outrider]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A medium fighter produced by the [[Taranis Corporation HQ (Oolite)|Taranis Corporation]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[OXPConfig|OXPConfig1.08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Tools/Utility. This tool gives you the ability to configure several oxps. It changes internal (local) settings of the oxps to enable (or disable) logging or audio functions and special settings to recognize errors or to avoid clashes. (Updated 04/09/2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/public/b2tic3tjsk#f4083657 ''Pallas'']&lt;br /&gt;
| [[Pallas]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A fast but lightly shielded fighter.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[P.A. Groove Stations OXP]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Stations. Adds lots of different types of Coriolis and Dodec Stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Pelamis.zip ''Pelamis'']&lt;br /&gt;
| [[Pelamis]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Pelamis trade ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Personalities OXP|''Personalities'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. Adds a bunch of unique, well-known personalities to the Ooniverse. Keen to meet yourself in your game (or have others meet yourself in their game)? Submit your own personality in the OXP's thread on the Oolite BBs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Phoenix.zip ''Phoenix'']&lt;br /&gt;
| [[Phoenix]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A strange ship, built from salvaged parts from various Serpent Class ships.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Pirate Coves OXP|Pirate Coves]]&lt;br /&gt;
|&lt;br /&gt;
| [[Pirate Coves OXP|Pirate Coves]]&lt;br /&gt;
| [[Oolite_Missions#Pirate_Coves|Mission]]. Some rock hermits in the more dangerous systems have been taken over by pirates. Traders coming too close are likely to be assaulted by scrambled pirates keen to relive them of their cargo.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/piratetraps.oxp.zip ''Pirate Traps'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. To combat piracy GalCop sometimes deploys dummies of trade ships. Pirates who fire on them have their details transmitted to the police and face large fines.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Planetfall_OXP|Planetfall]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|System. Allows the player to land on and trade at the planets and moons of each system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Pods_OXP|Pods]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Cargo. Many new varieties of cargo pod, including fuel, missile, bulk, and empty, plus pods which take a couple of goes to scoop, jam in the fuel scoop, explode and even bring a trumble. Designed as a balanced OXP, to add some positives and some negatives to cargo scooping, to give more realism. Those of you who also use the [[UPS_Courier|UPS Courier]] OXP can also [http://www.box.net/shared/sytn2yhpu0 download a little add-on] to the OXP that applies some of the new pods to UPS ones too (UPS Courier needs to be installed for the add-on to work).&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Probe_OXP|Probe]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. A long-range probe missile, flies away from the ship and scans at ranges of 50km and 100km, reporting ships found back to the ship. It then turns around and comes back, ready for fuel scooping and re-use.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/PTI.zip ''Pteradyne Technologies Ships''] - ([http://oosat.alioth.net/files/PTI_bugfix11.zip ''bug fix''])&lt;br /&gt;
| [[Excalibur]]&lt;br /&gt;
[[Paladin]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A powerful combat ship, the Excalibur is offered for sale on the open market. The Paladin is the even tougher Military version, although sometimes these ships fall into the wrong hands.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/pcc.oxp.zip ''Python Class Cruiser]&lt;br /&gt;
| [[Python_Class_Cruiser|Python Class Cruiser]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A large powerful trade ship, which can also hold its own in battle.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[[Media:Python_Class_Cruiser.oxp.zip|Python Class Cruiser version 2.6]]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| As above, but features [[shaders in Oolite|Shaders]]. Shaders require Oolite 1.69 or later.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/racers.oxp.zip ''Racers'']&lt;br /&gt;
|[[Chicaneer Mk II]]&lt;br /&gt;
&lt;br /&gt;
[[Chicaneer Mk IV]]&lt;br /&gt;
&lt;br /&gt;
[[Dragster Mk I]]&lt;br /&gt;
&lt;br /&gt;
[[Dragster Mk II]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds dedicated racing ships to the Universe. Although very fast, these ships are pure racers with no cargo bays and light shields. The focus on pure speed makes them ill-suited to combat or trading roles.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Ring_Racer_OXP|Ring Racer]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Mission. Corporate Systems Ring Racing League in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[RingPod.oxp|''Racing Rings'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Adds Racing Rings to the Galaxy 1 systems of Lave and Zanoce. Fly through the rings in order and completing the race circuit will transmit the competitors' time.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Ramon's_Anaconda|Ramon's Anaconda]]&lt;br /&gt;
|[[Ramon's_Anaconda|Ramon's Anaconda]]&lt;br /&gt;
|&lt;br /&gt;
| Ship. This is a fantastic re-imagining of the Anaconda freighter, made by  Ramon, with assistance by Griff. Check out its special features!&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Random_Docking_Music_OXP|Random Docking Music]] [[Image:New.gif|New!]]&lt;br /&gt;
 |&lt;br /&gt;
|&lt;br /&gt;
| Utility. Plays a randomly selected music track on activating docking computers  (slow dock), from a list set inside the OXP. &lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Random Hits OXP|Random Hits Version 1.3.6 Beta (Updated 5/8/09)]]&lt;br /&gt;
|[[GalMine Hopper|GalMine Hopper]]&lt;br /&gt;
&lt;br /&gt;
[[GalMine AutoMiner|GalMine AutoMiner]]&lt;br /&gt;
&lt;br /&gt;
[[GalMine Cargo Drone|GalMine Cargo Drone]]&lt;br /&gt;
|[[Space Bar|Space Bar]]&lt;br /&gt;
|[[Oolite_Missions#Random_Hits|Missions]] / Ships / Stations / Feature. Adds [[Space Bar|Seedy Space Bars]] to the space lanes of all Anarchy Systems. Commanders who chose to dock with one can view a Bulletin Board displaying details of the local Galaxies Most Wanted Criminals. Large bounties are paid for killing or capturing one of these offenders. Missions are procedurally generated using a database of over 40,000 words creating over one trillion different Bulletin Board Advertisements. Missions are therefore effectively never-ending. This OXP requires [http://developer.berlios.de/project/showfiles.php?group_id=3577&amp;amp;release_id=13778 Version 1.72.2 of Oolite].&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[RegistrationID|Registration ID]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Flavour.  All Oolite standard ships now have ID tags.. You need at least Oolite  1.73 and a Graphics card capable of running shaders on a full setting..&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/RoC.oxp.zip ''Remorse of Conscience'']&lt;br /&gt;
| [[Remorse_Of_Conscience_v2|Remorse Of Conscience]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A trade ship with a large hold, that can hold its own in combat. A good upgrade from the Cobra Mk III.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
|[[Renegade Pirates OXP|Renegade Pirates V3.0]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships / Feature. Adds rare very well armed pirate versions of Classic Elite ships to the more lawless systems. These pirates carry high bounties, but their multiple lasers and plasma cannons will make mince-meat of a young Jameson. Do not install this OXP until you have an Iron Ass!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/RVandGS.zip ''Renegade Viper + Grass Snake'']&lt;br /&gt;
|[[Renegade Viper]]&lt;br /&gt;
&lt;br /&gt;
[[Grass Snake]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Sometimes even GalCops are victims of crime, finding their Vipers stolen from the docking berth. The joy-rider gives the stolen Viper a new lick of paint and joins a pirate fleet. Large bounties are paid for ridding the space lanes of these thieves. The Grass Snake is a trade ship with a large hold, often used by pirates.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Repair_Bots_OXP|Repair 'Bots]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. A pylon mounted canister of repair nanobots. These can be activated in-flight, when they scan your ship for damaged equipment and attempt to fix an item of it (a random one if multiple items are found). They are reliable for lower tech items, but as the equipment gets more complicated they sometimes struggle. But if all else fails, buy, try and fly again...&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Rock Hermit Locator]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Equipment. The Rock Hermit Locator is a piece of equipment for your ship to locate Rock Hermits. Useful for miners and Traders.. You need to already have bought the advanced space compass that works in tandem with the RHL (&amp;quot;Rock Hermit Locator&amp;quot;).&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.arcadia-digital.net/steve/Oolite/Oolite.html ''Saleza Aeronautics'']&lt;br /&gt;
| [[Bellatrix_Cruiser|Bellatrix Cruiser]]&lt;br /&gt;
&lt;br /&gt;
[[Rigel_Bomber|Rigel Bomber]]&lt;br /&gt;
&lt;br /&gt;
[[Saiph_Interceptor|Saiph Interceptor]]&lt;br /&gt;
|&lt;br /&gt;
|Ships / Feature. High Tech Corporate States gain their own patrol craft. Some of these ships are also available on the open market.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/mcmeur2axl''Santa''] - ([http://oosat.alioth.net/files/Santa.zip alternative lo-end version])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. Just for fun adds a (very rare) Santa Sledge to the space lanes escorted by plasma gun toting reindeer space bikers!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Save_Anywhere|Save Anywhere]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Save Anywhere allows you to save your game at any OXP Station, instead of only at Main Stations, as in the standard game.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Media:BlackBaron1.70.zip|''Scourge of the Black Baron v1.70'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#The_Scourge_of_the_Black_Baron|Mission]]. A sequel to the [http://capnhack.com/hosting/oolite/Oolite/OXPs/longway.oxp.zip ''Long Way Around''] mission, featuring combat and transport missions. Well suited to a relative novice in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Second_Wave_OXP|Second Wave]]&lt;br /&gt;
| A variety of new alien ship variants.&lt;br /&gt;
|&lt;br /&gt;
| Ships. Some new variants on the standard Thargoid Warship and Thargon Robot Fighter.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/s-ships1.zip ''Selezen's S-Ships'']&lt;br /&gt;
| [[GalCop_SWAT_Viper|GalCop SWAT Viper]]&lt;br /&gt;
&lt;br /&gt;
[[Oresrian_Trader|Oresrian Trader]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. In response to increasing piracy GalCop has introduced the SWAT Viper, a beefed up version of the standard Viper. Also adds the peaceful Oresrian Trader.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Sell equipment OXP|''Sell Equipment'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature / Equipment. Allows you to resell all equipment you bought at an equipment store of suitable techlevel. For a small fee you purchase the &amp;quot;Sell xyz&amp;quot;-option, and are refunded 60 per cent of the original price.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[[Shady Cobra OXP|Shady Cobra]]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Ships. A [[shaders in Oolite|Shader]] example (requires Oolite 1.69 or later). Replaces the normal model for the Cobra Mk III with one featuring the new Shaders.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/All-Stars_0.zip ''Skrounk All-Stars Limited'']&lt;br /&gt;
| [[All_Stars_Large_Freighter|All Stars Large Freighter]]&lt;br /&gt;
&lt;br /&gt;
[[Seymour_Class_Sled|Seymour Class Sled]]&lt;br /&gt;
&lt;br /&gt;
[[Starbelly_Class_Sled|Starbelly Class Sled]]&lt;br /&gt;
&lt;br /&gt;
[[Starhawk|Star Hawk]]&lt;br /&gt;
&lt;br /&gt;
[[Starwolf_Mark_I|Starwolf Mk I]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. A set of ships featuring a large trade ship and a variety of fighters and escorts.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/snark.zip ''Snark'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. The Snark is a powerful fighter / trader, often used by pirates and bounty hunters.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Snoopers|Snoopers2.0]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Feature. The galactic news network. Updated 05/02/2010&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Spearhead.zip ''Spearhead Interceptor Mk.I'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. A pure fighter, fast and nippy but with a weak shield, no cargo bay and can be a twitchy bird to fly. Often used as an escort or part of a pirate fleet acting in a hit an run role.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Spy_Hunter_OXP|''Spy Hunter'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Spyhunter|Mission]]. A mission for the Galactic Navy available to a Commander with a rating of 'Dangerous' or above. Spys from the Empire sometimes infiltrate GalCop space. Commanders wishing to volunteer for hunting duties should visit the Navy base at Inines in Galaxy 1.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/StarWars.zip ''Star Wars Ships'']&lt;br /&gt;
| [[A-Wing]]&lt;br /&gt;
&lt;br /&gt;
[[B-Wing]]&lt;br /&gt;
&lt;br /&gt;
[[Lambdashuttle|Lambda Shuttle]]&lt;br /&gt;
&lt;br /&gt;
[[Tie-Fighter]]&lt;br /&gt;
&lt;br /&gt;
[[Tie-Interceptor]]&lt;br /&gt;
&lt;br /&gt;
[[X-Wing]]&lt;br /&gt;
&lt;br /&gt;
[[Y-Wing]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds a set of ships from the Star Wars Universe to Oolite. Tie Fighters are occasionally used by GalCop to support Viper patrols, but all ships are available on the open market and may be used by traders, pirates and bounty hunters alike.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Status Quo Q-bomb OXP|''Status Quo Q-bomb'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Changes the behaviour of Q-bombs according to the [[Status Quo]] novel. They don't detonate in gravity wells, like close to planets or suns.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ''[http://www.box.net/shared/static/9cwp2jk84o.zip Sung's Detailed Textures]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Replacement textures for all Classic Elite Ships. The author's web-site no longer has a link to his textures. The link will download them directly from Lestradae's hosting site.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| ''[http://www.box.net/shared/535vddgddh Sung's Detailed Textures (Shader Version)]''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Same as the above oxp, only now with shader support. Normal maps &amp;amp; Effects maps by ADCK. (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://sancho.dk/oolite/sunskimmers.zip ''Sunskimmers'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Normally in Oolite ships tend to stick to the space lanes and so are rarely encountered on the way to the Sun. This OXP adds ships to the sun / planet corridor increasing the chance of meeting other ships whilst sun-skimming.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.mediafire.com/?sharekey=ca166c7e38ef78c6e7c82ed4b8f0c380e04e75f6e8ebb871 ''S.T.E'']&lt;br /&gt;
| [[S.T.E]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The S.T.E addon ship a step up from the Cobra III improved trading capabilities also has increased speed over Cobra, is also available in 3 colour options blue, red and yellow.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[SuperCobra]]&lt;br /&gt;
| [[SuperCobra]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The awesome Super Cobra. A beefed up version of the Cobra Mk III featuring larger engines, more cargo space and stronger shields.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Superhub]]&lt;br /&gt;
|&lt;br /&gt;
| [[Superhub]]&lt;br /&gt;
| Stations. Traffic congestion in the Ooniverse is growing and while the stations are getting more advanced the market asked for a more radical solution. This solution comes in the form of the Gasec Superhub. The Gasec Superhub is the first station that is capable of transporting itself to it's destination, two engine bays allow the GASEC SR-GD (Space Rotary Galactic Drive) to be fitted. At the destination these engines can be taken out for re-use in other transport missions.  ''v1.2 updated 12th November 2009''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/public/b2tic3tjsk#f4083657 ''Swift'']&lt;br /&gt;
| [[Swift]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. As the name implies, a very fast ship often used by pirates or bounty hunters. Although fast, cargo space is limited and the shield is nominal.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.msdownload.co.uk/Oolite/system_redux.zip ''System Redux'']&lt;br /&gt;
| [[System_Redux_%28Oolite%29|System Redux]]&lt;br /&gt;
|&lt;br /&gt;
|Texture the home planet, add a planet/moon combination to each system.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/r05ub873b5 ''TAF Reset'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Utility. Resets the Time Acceleration Factor (TAF) to 1.0 upon docking. Requires Oolite v1.73+.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Taranis_OXP|''Taranis Corporation HQ'']]&lt;br /&gt;
|&lt;br /&gt;
| [[Taranis_Corporation_HQ_%28Oolite%29|Taranis Corporation HQ]]&lt;br /&gt;
| [[Oolite_Missions#Taranis|Mission]]. Adds the vast orbital [[Taranis_Corporation_HQ_%28Oolite%29|Taranis Corporation HQ]] to the Lerelace system in Galaxy 1. A mission is also available for law abiding Commanders with a rating of Competent or better. You must also have the [http://oosat.alioth.net/files/outrider.zip ''Outrider''] OXP installed for this OXP to work properly.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Target_Autolock_OXP|Target Autolock]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Equipment. A software update for the standard [[Scanner_Targeting_Enhancement|scanner targeting enhancement]] equipment that automatically locks onto attacking ships if you have no prior target selected.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://sancho.dk/oolite/Shield-tail.zip ''Teretrurus Mk.I'']&lt;br /&gt;
| [[Teretrurus Mk.I|Teretrurus MK.I]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A medium fighter / trader somewhat faster and tougher than the Cobra Mk III, but with a smaller cargo bay.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Terrapin.zip ''Terrapin Trader'']&lt;br /&gt;
| [[Terrapin]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A medium fighter / trader. A good upgrade from the Cobra Mk III.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Tescoura.zip ''Tesoura'']&lt;br /&gt;
| [[Tesoura]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A slow, but well shielded trade ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Thargoid_CarrierV1.zip ''Thargoid Carrier'']&lt;br /&gt;
| [[Thargoid_Carrier|Thargoid Carrier]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Arms the Thargoids with a vast carrier capital vessel. Many OXPs increase the fire-power available to the GalCop Navy. If you chose to play with these OXPs installed, then you should really give the Bugs a chance and allow them access to this mighty craft!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Thargoid_Wars|Thargoid Wars V4.4 (Updated)]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#ThargoidWars|Mission]]. War with the Thargoids intensifies featuring new attack and defense missions. To avoid young Jamesons being out-gunned, the OXP missions will run in all Galaxies except Galaxy 1. Updated from the version on Oosat1. It is important that you use the updated version as the old version will clash with many other missions.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Thargorn_Threat_oxp|''Thargorn Threat v1.3 (updated)'']]&lt;br /&gt;
| [[Terroriser_Frigate|Terroriser Frigate]]&lt;br /&gt;
&lt;br /&gt;
[[Thargoid_Thargorn_Battleship|Thargoid Thargorn Battleship]]&lt;br /&gt;
&lt;br /&gt;
[[Thargoid_Thorgon_Cruiser|Thargoid Thorgon Cruiser]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Redresses the game imbalance caused by the number of OXPs arming the Navy with warships. These Thargoid craft are very powerful and re-establish the Thargoid's place as a threat to mankind. Best played with the Behemoth OXP installed, for epic space battles.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.wagar.org.uk/downloads/software/oolite/Tianve1.3.zip''Tianve'']&lt;br /&gt;
|&lt;br /&gt;
|[[Navy Station]]&lt;br /&gt;
|Planets / Stations. Adds scenery, including a pulsar, to the Galaxy 1 system of Tianve. A Station orbits the pulsar and fleets of pleasure liners can be seen taking tourists on flights around the pulsar. There are various adverts in the system, along with two extra 'space lanes', one between the planet and the pulsar and another between the pulsar and the witchpoint.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Tiger.zip ''Tiger'']&lt;br /&gt;
| [[Tiger_Mark_I|Tiger Mark I]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A truly awesome (and very expensive) multi-role craft.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/TGY.zip ''Tionisla Orbital Graveyard]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Adds the graveyard to the Galaxy 1 system of Tionisla, as described in the Dark Wheel. Long dead Commanders are buried in their rusting ships amongst monuments, Stars of David, Crucifixes and other religious symbols. Security patrols will make short work of any Commander foolish enough to desecrate the tombs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/tori.zip ''Torus Station'']&lt;br /&gt;
|&lt;br /&gt;
| [[Torus_station|Torus Station]]&lt;br /&gt;
|Stations. Adds a vast 2001 style space station to very high tech level systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Total_patrol_OXP|''Total patrol'']]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Feature. Replaces the default police AIs with a totalPatrolAI which lets police ships patrol between all three major points of the system: planet, witchpoint and sun.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/eil0djqhca ''Trade Outpost v1.1'']&lt;br /&gt;
|&lt;br /&gt;
| [[Trader_Outpost_%28Oolite%29|Trade Outpost]]&lt;br /&gt;
|Griff trade outpost without ads.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Traffic_Control_OXP|Traffic Control]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Station upgrade. Adds traffic control personnel to each system main station. They are happy to talk new Commanders (and older ones who've got too reliant on Docking Computers and then lost them) through approaching and manual docking with the station. There's even a cheery goodbye when you leave, just don't dawdle and block the station approach lane!&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/Trans-Hab.zip ''Trans-Hab Station'']&lt;br /&gt;
|&lt;br /&gt;
| [[Transhab_station|Transhab Station]]&lt;br /&gt;
|Stations. Adds a large station with rotating arms to some medium tech level systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Transports]]&lt;br /&gt;
| [[CoachWhip]]&lt;br /&gt;
[[Coral]]&lt;br /&gt;
[[Woma]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds more variety to the game. Passenger liners can be seen in the space lanes of the safer systems transporting paying customers to their destinations. Also features Moray Transporters and Large Woma fuel tankers to bring much needed supplies and fuel to space stations.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Trident_Down|Trident Down]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[Oolite_Missions#Trident_Down|Mission]]. A series of missions set in Galaxy 4 involving the investigation of a vicious attack on an Trident Shuttle operated by [[Executive_SpaceWays|Executive SpaceWays]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[UPS_Courier|U.P.S. Courier]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[Oolite_Missions#UPS_Courier_Company|Mission]] / Feature. The UPS Courier service will randomly offer Commanders the option of taking goods or documents from system to system. Some say experienced Couriers may also be offered combat missions.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/UrutaMK3.zip ''Urutu Mk.III'']&lt;br /&gt;
| [[Urutu_Mk.III|Urutu Mk III]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A medium fighter / trader from Elite-A.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://oosat.alioth.net/files/UrutaMK4.zip ''Urutu Mk.IV'']&lt;br /&gt;
| [[Urutu_Mk.IV|Urutu Mk IV]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A medium fighter / trader from Elite-A.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://www.purgatori.net/Isis_Interstellar.htm ''Vampire'']&lt;br /&gt;
| [http://www.purgatori.net/Isis_Interstellar.htm Vampire]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the Purgatori Vampire series of combat ships. A strong combat ship in numerous different versions and paint-jobs. A Military version is used by the police, but several civilian versions of the ship are also available on the open market. Clicking the download link will take you to the sales brochure, where you can inspect further particulars and download the OXP.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Vector_OXP|Vector1.3]]&lt;br /&gt;
| Vector&lt;br /&gt;
|&lt;br /&gt;
|Mission/Ships. Fast, rare and expensive. And some small surprises - So dive in and have a good time (Updated 31.08.2009)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Velocity_OXP|Velocity]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Ships. A fast fighter ship.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Venom]]&lt;br /&gt;
| [[Venom]]&lt;br /&gt;
[[Venom|Venom Renegade]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. From Isis Interstellar who previously also made the [http://www.purgatori.net/Isis_Interstellar.htm Vampire]. This ship also provides three extra HUDs.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/OXPs/weeviloid2.zip ''Weeviloid'']&lt;br /&gt;
| [[Weeviloid_Hunter|Weeviloid Hunter]]&lt;br /&gt;
[[Weeviloid_Scoutship|Weeviloid Scoutship]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. The scout-ship is a light trade ship. The hunter is a fearsome multi-gunned war ship. Little is known about the Weeviloids and many Commanders meeting them have found them hostile.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds.zip ''Wiggy's Replacement Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Welcome_Mat_OXP|Welcome Mat]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Misc. Software upgrade for the communications systems to expand the information given to the commander on arrival from witchspace into a new system. Augments the system name message with planetary biographical details via the buoy network, plus the latest safety and alien presence information from Galcop. Also fully compatible with [[OXPConfig|OXPConfig]].&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://www.box.net/shared/vhho2av2az ''Wolf Mk.II v3.3]&lt;br /&gt;
| [[Wolf_Mk.2_%28Oolite%29|Wolf Mk II]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. Adds the powerful Wolf Mk II, as seen in Elite-A.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Media:Wolfs_variants.zip|''Wolfwood's Variants v1.5'']]&lt;br /&gt;
| [[Asp_Mk.I|Asp Mk I]]&lt;br /&gt;
&lt;br /&gt;
[[Cobra_Courier|Cobra Courier]]&lt;br /&gt;
&lt;br /&gt;
[[Cobra_Rapier|Cobra Rapier]]&lt;br /&gt;
&lt;br /&gt;
[[Drake]]&lt;br /&gt;
&lt;br /&gt;
[[Drake_Mk_II|Drake Mk II]]&lt;br /&gt;
&lt;br /&gt;
[[Wolf Mk I]]&lt;br /&gt;
|&lt;br /&gt;
|Ships. A large selection of traders and fighters based on models seen in Classic versions of Elite. The ships strive to be on the same level with original ships and not too powerful in comparison to them. Tested on Oolite v1.70.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [http://capnhack.com/hosting/oolite/Oolite/extra/oosounds3.zip ''Xaotik's Replacement Sounds'']&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Sound Set.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| [[Your Ad Here!]] [[Image:Updated.gif|Updated]]&lt;br /&gt;
| [[Pi-42 security|Sidewinder Pi-42 Security]]&lt;br /&gt;
&lt;br /&gt;
[[Tescoo security|Sidewinder Tescoo Security]]&lt;br /&gt;
&lt;br /&gt;
[[Star security|Sidewinder Star Security]]&lt;br /&gt;
&lt;br /&gt;
[[Mall Wart security|Sidewinder Mall Wart Security]]&lt;br /&gt;
&lt;br /&gt;
[[Sainsboory's security|Sidewinder Sainsboory's Security]]&lt;br /&gt;
| [[Pi-42]]&lt;br /&gt;
&lt;br /&gt;
[[Tescoo_Oxpress|Tescoo Oxpress]]&lt;br /&gt;
&lt;br /&gt;
[[Star]]&lt;br /&gt;
&lt;br /&gt;
[[Mall Wart]]&lt;br /&gt;
&lt;br /&gt;
[[Sainsboory's]]&lt;br /&gt;
&lt;br /&gt;
|Feature. This OXP adds a lot of variety to the Universe. Witch-point and navigation beacons are replaced with giant bill boards displaying adverts.&lt;br /&gt;
Every set features 50 different adverts and also adds a different type of constore to the universe (Set A introduces the Pi-42 constore, Set B the Tescoo Ooxpress constore etc). A constore is a dockable commercial base which is added to the space lanes of most systems with a large population.&lt;br /&gt;
Also from version 4 and above of this oxp each constore has its own security force, the ships of which are skinned in the colours of the store they protect, and billboards will occasionally appear in asteroid fields of Corporate Systems.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#e7e7ff&amp;quot;&lt;br /&gt;
| [[Z-ships|Z-ships]]&lt;br /&gt;
| [[Z-ships_Asp_Explorer|Asp Explorer]]&amp;lt;br /&amp;gt; &lt;br /&gt;
[[Z-ships_Cobra_Commodore|Cobra commodore]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Z-ships_Porcupine|Porcupine]]&amp;lt;br  /&amp;gt;&lt;br /&gt;
[[Z-ships_Python_Courier|Python Courier]]&lt;br /&gt;
|&lt;br /&gt;
| Ships. This  OXP adds 4 ships (+variants) to the Ooniverse. Released under the [http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-Noncommercial-Share Alike 3.0  Unported] License.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==All OXPs by Category==&lt;br /&gt;
&lt;br /&gt;
===Sound Sets===&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/E5Amigasoundpack01oxp.zip ''Amiga Replament Sounds'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/CustomSounds.zip ''Custom Sounds'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:halsis.zip|Hal's Hot Sister]] (female cockpit voice)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.mediafire.com/file/mm2ekntynom/Hawksound.zip ''Hawksound'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/extra/oosounds2.zip ''Murgh's Replacement Sounds'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/extra/oosounds.zip ''Wiggy's Replacement Sounds]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/extra/oosounds3.zip ''Xaotik's Replacement Sounds''] (= [[Media:MildAudio.oxp.zip|MildAudio]])&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/edl1p4lm3o ''Combined Murgh, Wiggy &amp;amp; Xaotik's sounds''] (Needs oolite 1.73+)&lt;br /&gt;
&lt;br /&gt;
===Alternative HUDs===&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/pLists/hud.plist ''Compact HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.jblythe.f9.co.uk/Deepspace/Download/DeepspaceHUD_OXP.zip ''Deepspace HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sancho.dk/oolite/Dr_HUD_Cmk3.zip Dr HUD Cobra Mk.III version], [http://sancho.dk/oolite/Dr_HUD.zip Custom version]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/FighterHud.zip ''Fighter HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alioth.net/images/2/2d/G-HUD_Mk2.oxp.zip ''G-HUD Mk2'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/kleptohud.oxp.zip ''Klepto-HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.crimsonforge.co.uk/cloister/MedusaHud.oxp.zip ''Medusa HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/megawalnutdash.oxp.zip ''Mega-Walnut Dashboard'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/MilHUDv2.zip ''Milspec HUD v2''] (1.65-1.72) |&lt;br /&gt;
[http://www.box.net/shared/hczsm8gyi0 ''Milspec HUD v3''] (for 1.73 onwards)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/hud_ng.oxp.zip ''NG HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alioth.net/images/d/d9/TrekHud.zip ''Trek HUD'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[HUD images here]]&lt;br /&gt;
&lt;br /&gt;
===Dockable Objects===&lt;br /&gt;
[[Anarchies OXP|Anarchies]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Aquatics_OXP|Aquatics]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[The Assassins Guild OXP|Assassins Guild V1.3]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Baakili_Far_Trader|Baakili Far Trader]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Black_Monk_Monastary|Bank of the Black Monks]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BuoyRepair|BuoyRepair1.02.5]] - Updated (7/10/2009)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Deep Space Dredger|Deep Space Dredger]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.mediafire.com/?dnzltr0cit5 ''Free Trade Zone'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fuel_Station_OXP|Fuel Station]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Globe_station|Globestation2.0]] (Updated 22/10/2009)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/GrittyCoriolis.oxp.zip ''Gritty Coriolis'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[HoOpy Casino]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Lave_Academy_OXP|Lave Academy]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/gwxstations.oxp.zip ''Military Station'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Planetfall_OXP|Planetfall]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Random Hits OXP|Random Hits]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Superhub]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/tori.zip ''Torus Station'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Trans-Hab.zip ''Trans-Hab Station'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/eil0djqhca ''Trade Outpost v1.1'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Taranis.zip ''Taranis Corporation HQ'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[P.A. Groove Stations OXP]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Your Ad Here!]]&amp;lt;br&amp;gt;&lt;br /&gt;
More information on the Station images appearing in Oolite can be found [[Oolite Stations|here]].&lt;br /&gt;
&lt;br /&gt;
[[Dockable Object images here]]&lt;br /&gt;
&lt;br /&gt;
===Customisations by Government (or Tech Level)===&lt;br /&gt;
[[Anarchies OXP|Anarchies]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BuoyRepair|BuoyRepair1.02.5]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Commies|Commies]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[DeepSpacePirates|DeepSpacePirates]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.arcadia-digital.net/steve/Oolite/Oolite.html ''Dictators'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Feudal_States|The Feudal States]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Random Hits OXP|Random Hits]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Snoopers|Snoopers2.0]] (Updated 05/02/2010)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other System Objects===&lt;br /&gt;
[[The Assassins Guild OXP|Assassins Guild V1.3]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Diso.zip ''Diso'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fuel_Station_OXP|Fuel Station]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.mediafire.com/?zahdnac0tj1 ''Lave v1.70'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Lave_Academy_OXP|Lave Academy]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pirate Coves OXP|Pirate Coves]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/piratetraps.oxp.zip ''Pirate Traps'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/b2tic3tjsk#1:3775170:31020120 ''Planets'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[RingPod.oxp|Racing Rings]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Ring_Racer_OXP|Ring Racer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.wagar.org.uk/downloads/software/oolite/Tianve1.3.zip''Tianve'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/TGY.zip ''Tionisla Orbital Graveyard]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Traffic_Control_OXP|Traffic Control]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Your Ad Here!]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Missions===&lt;br /&gt;
[[Aquatics_OXP|Aquatics]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[The Assassins Guild OXP|Assassins Guild V1.3]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asteroid_Storm|Asteroid Storm 1.52]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[BlackjacksBullion_OXP|Blackjacks Bullion]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cataclysm_OXP|Cataclysm]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Deposed_OXP|Deposed 1.3.4]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Ionics_OXP|Ionics v.1.2.3]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Lave_Academy_OXP|Lave Academy]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Localhero OXP|Localhero v1.05]]&amp;amp;nbsp;&amp;amp;nbsp;(Updated 27.04.2008)&amp;lt;br&amp;gt;&lt;br /&gt;
[[LongWay_OXP|Long Way Around 1.1]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Lovecats.oxp|Lovecats 1.2]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Military_Fiasco|Military Fiasco V2.3]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Oo-Haul]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Random Hits OXP|Random Hits]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:BlackBaron1.70.zip| ''Scourge of the Black Baron v1.70'']]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Spy_Hunter_OXP|Spy Hunter]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Taranis_OXP|Taranis Corporation HQ]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Thargoid_Wars|Thargoid Wars V4.4 (Updated)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Trident_Down|Trident Down]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[UPS_Courier|U.P.S. Courier]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Vector_OXP|Vector1.3]]&amp;amp;nbsp;&amp;amp;nbsp;(Updated 31.08.2009)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More information on the numerous Oolite Missions can be found [[Oolite Missions|here]].&lt;br /&gt;
&lt;br /&gt;
===Ship Systems===&lt;br /&gt;
[[AMS_OXP|Anti-Missile System]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Automatic_Chaff_System|Auto-Chaff System]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Captured_Thargons_OXP|Captured Thargons]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Drones_OXP|Drones]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/ettBeaconLauncher.zip ''ETT Homing Beacon]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/External%20Views.zip ''External Views'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Energy_Equipment_OXP|Energy Equipment]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fuel Tank|Fuel Tank]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Hired_Guns_OXP|Hired Guns]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Hyperradio_js_OXP|Hyperradio v1.17]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Killit_OXP|''Killit™'' insta-death super weapons]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Missile Analyser|Missile Analyser]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Misjump Analyser|Misjump Analyser]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Missiles and Bombs|Missiles and Bombs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Missile_Rack_OXP|Missile Rack]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Nukes.oxp|Nuclear Torpedos]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Ore_Processor|Ore Processor]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Probe_OXP|Probe]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Repair_Bots_OXP|Repair 'Bots]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Rock_Hermit_Locator|Rock Hermit Locator]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Sell equipment OXP|Sell equipment]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Status Quo Q-bomb OXP|Status Quo Q-bomb]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Target_Autolock_OXP|Target Autolock]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Target Reticle|Target Reticle]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Welcome_Mat_OXP|Welcome Mat]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ships and Ship Variants===&lt;br /&gt;
See below for ship names and stats.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Aegidian's_Specials|Aegidian's Specials]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Aegidian's_X-Ships|Aegidian's X-Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://uploading.com/files/CTQ4YDB4/Blitzspear%20Clan.rar.html''Amen Brick's Pirate Clan One: The Blitzspears v1.0 (new 07/08)'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.uploading.com/files/QERHQBAE/Amen_Bricks_Megaships.oxp.zip.html''Amen Brick's Megaships v1.1 (new 07/08)'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Anarchies OXP|Anarchies]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/aphidv2.oxp_.zip ''Aphid Escort Service'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Aquatics_OXP|Aquatics]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/att1.zip ''Armoured Transport Type 1'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/bandersnatch.zip ''Bandersnatch'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Baakili_Far_Trader|Baakili Far Trader]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Behemoth]]&amp;lt;br&amp;gt;&lt;br /&gt;
''[http://www.box.net/shared/nv87fgfyf2 Behemoths - Shadered (By ADCK)]''(Includes shaders which require Oolite 1.69 or later)&amp;lt;br&amp;gt;&lt;br /&gt;
[[BigShips_OXP|Big Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Boa_2_Class_Cruiser|Boa Class Cruiser]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Boa_II_Clipper_Class|Boa II Clipper Class]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Media:BoomslangWIP.zip|''Boomslang'']]&amp;lt;br&amp;gt;&lt;br /&gt;
''[http://www.box.net/shared/sxcsfa47hf Bulk Haulers (By ADCK)]''(Requires [[BigShips_OXP|Big Ships]] and Includes shaders which require Oolite 1.69 or later)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Caduceus]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/seosu.zip ''Capisastra'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/clearskies.oxp_.zip ''Clear Skies'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/ChoppedCobra.zip ''Cobra 3.5 (chopped Cobra)'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cobra_Clipper_SAR|Cobra Clipper SAR]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/cobra3njx.zip ''Cobra Mk.III Njx'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/public/b2tic3tjsk#f4083657 ''Condor'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/custpaint1.zip ''Custom Paint Jobs'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/dwcobra3HiRes.zip ''Dark Wheel Cobra''] - ([http://oosat.alioth.net/files/dwcobra3.zip alternative lo-end version])&amp;lt;br&amp;gt;&lt;br /&gt;
[[DeepSpacePirates|DeepSpacePirates]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Deepspace_Ships|Deepspace Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Dragon|Dragon Assault Craft (Updated 9/8/08)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/eagle2.zip ''Eagle Mk.II'']&amp;lt;br&amp;gt;&lt;br /&gt;
''[http://www.box.net/shared/xkltqit3oj Eagles Mk's I to IV (by ADCK)]'' (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/ettBeaconLauncher.zip ''ETT Homing Beacon]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.arcadia-digital.net/steve/Oolite/Ships/Executive%20SpaceWays%20v2.2.zip ''Executive Spaceways'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Far_Arm_ships|Far Arm ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/farstar.oxp.zip ''Far Star'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/ferdelance_ng.oxp.zip ''Fer de Lance NG'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/ferdepai.oxp_.zip ''Ferdepai'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Firewasp.zip ''Firewasp'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Flying Dutchman OXP|Flying Dutchman]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Freaky Thargoids OXP|Freaky Thargoids]] ([[shaders in Oolite|shader]] example, requires Oolite 1.69 or later)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/fsr.zip ''Frog Space Rickshaw'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Galactic_Navy_OXP|Galactic Navy]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Generation_Ships_OXP|Generation Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/greekshipset1.zip ''Greek Ships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Griff_ArcElite|Griff ArcElite Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/griffin2.oxp.zip ''Griffin Mk.II]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Griff_Krait|Griff Krait]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/boyracers.zip ''Hatchling Boyracers'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/Herald.zip ''Herald'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/tugs.zip ''Hognose Tugships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.mediafire.com/?2vgjwpj6xdy ''Hotrods v0.52c''], [http://www.box.net/shared/j2r6frlvq1 ''Hotrods v0.52d'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alioth.net/index.php/Icarus_%28Oolite%29 ''Icarus'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/illicit_unlock.oxp.zip ''Illicit Unlock'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/impcourier.zip ''Imperial Courier'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Interstellar help OXP|Interstellar Help]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Ixian_Ships|Ixian Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/jabberwocky.zip ''Jabberwocky'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/dropbox/kestrel_falcon1_71_0.zip ''Kestrel&amp;amp;Falcon v1.71.0'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.crimsonforge.co.uk/cloister/kirin.zip ''Kirin'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sancho.dk/oolite/lane_legal.zip ''Lane Legal Racers'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:Llama.zip|''Llama'']]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Longshot.zip ''Longshot'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/mPakRedux.zip ''M-Pack (rusties)'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/manta.oxp_.zip ''Manta'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/marett_vol1.zip ''Marett Space Corporation'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/public/b2tic3tjsk#f4083657 ''Merlin'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sancho.dk/oolite/missionaries.zip ''Missionaries v1.1'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/monument.zip ''Monument'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/dropbox/morrigan101.zip ''Morrigan'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Murgh_Xships OXP|Murgh's X-Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/public/b2tic3tjsk#f4083657 ''Navy Starships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/newships.oxp.zip ''New Ships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Neolite Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/nuvipers.zip ''Nu Vipers'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Old Ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Orb]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/outrider.zip ''Outrider'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/public/b2tic3tjsk#f4083657 ''Pallas'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Pelamis.zip ''Pelamis'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Personalities OXP|Personalities]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Phoenix.zip ''Phoenix'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/PTI.zip ''Pteradyne Technologies Ships''] - ([http://oosat.alioth.net/files/PTI_bugfix11.zip ''bug fix''])&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/pcc.oxp.zip ''Python Class Cruiser]&amp;lt;br&amp;gt;&lt;br /&gt;
''[[Media:Python Class Cruiser.oxp.zip|Python Class Cruiser version 2.6]]'' (Includes shaders which require Oolite 1.69 or later)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/racers.oxp.zip ''Racers'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Ramon's_Anaconda|Ramon's Anaconda]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/RoC.oxp.zip ''Remorse of Conscience'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/RenegadesV3.zip ''Renegade Pirates''] (Wait until you have an Iron Ass before installing this OXP!)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/RVandGS.zip ''Renegade Viper + Grass Snake]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Saleza%20Aeronautics%20v2.0.zip ''Saleza Aeronautics'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/santa_v2.zip ''Santa''] - ([http://oosat.alioth.net/files/Santa.zip alternative lo-end version])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Second_Wave_OXP|Second Wave]] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/s-ships1.zip ''Selezen's S-Ships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Shady Cobra OXP|Shady Cobra]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/All-Stars_0.zip ''Skrounk All-Stars Limited'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/snark.zip ''Snark'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Spearhead.zip ''Spearhead Interceptor Mk.I'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/StarWars.zip ''Star Wars Ships'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/static/9cwp2jk84o.zip ''Sung's Detailed Texture''s]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/535vddgddh ''Sung's Detailed Textures (Shader Version)''] (Includes shaders which require Oolite 1.69 or later)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sancho.dk/oolite/sunskimmers.zip ''Sunskimmers'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[SuperCobra|Super Cobra]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/public/b2tic3tjsk#f4083657 ''Swift'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sancho.dk/oolite/Shield-tail.zip ''Teretrurus Mk.I'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Terrapin.zip ''Terrapin Trader'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Tescoura.zip ''Tesoura'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Thargoid_CarrierV1.zip ''Thargoid Carrier'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Thargorn_Threat_oxp|Thargorn Threat v1.3 (updated)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/Tiger.zip ''Tiger'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Transports|Transports]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/tugs.zip ''Tugs'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/UrutaMK3.zip ''Urutu Mk.III'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://oosat.alioth.net/files/UrutaMK4.zip ''Urutu Mk.IV'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.purgatori.net/Isis_Interstellar.htm ''Vampire'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Velocity_OXP|Velocity]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Vector_OXP|Vector1.3]]&amp;amp;nbsp;&amp;amp;nbsp;(Updated 31.08.2009)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Venom|Venom]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://capnhack.com/hosting/oolite/Oolite/OXPs/weeviloid2.zip ''Weeviloid'']&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/vhho2av2az ''Wolf Mk.II v3.3]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.alioth.net/images/0/06/Wolfs_variants.zip ''Wolfwood's Variants v1.5'']&amp;lt;br&amp;gt;&lt;br /&gt;
[[Z-ships|Z-ships]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ship data table|Ship data table here]]&amp;lt;br&amp;gt;&lt;br /&gt;
More information on the Ships appearing in Oolite can be found [[Oolite Ships|here]].&lt;br /&gt;
&lt;br /&gt;
[[Ships and Ship Variant images here]]&lt;br /&gt;
&lt;br /&gt;
=== Other objects and miscellaneous eyecandy ===&lt;br /&gt;
[[Asteroid_Storm|Asteroid Storm]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cargo_Wreck_Teaser_OXP|Cargo &amp;amp; Wrecks v1.4]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Famous Planets OXP|Famous_planets_oxp and FP Expansion packs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Famous_Planets_2.0.OXP]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/d57y0uip74 Farsun v1.05]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Hyperradio_js_OXP|Hyperradio v1.17]]&amp;amp;nbsp;&amp;amp;nbsp;(Updated 11/02/2010)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://marc-schaffer.ch/data/OoliteGerman_V0.3.zip Oolite German v0.3]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:OoliteItaliano_v1.3.zip|''Oolite Italiano v1.3'']]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/ch3lsepk9k Oolite Russian v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.box.net/shared/rrlm77ztzm Oolite en français]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:Orbits.zip|''Orbits'']]&amp;lt;br&amp;gt;&lt;br /&gt;
[[OXPConfig|OXPConfig1.08]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
[[Pods_OXP|Pods]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pods_OXP#UPS_PODS|Pods UPS Pack]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Snoopers|Snoopers2.0]] (Updated 05/02/2010)&amp;lt;br&amp;gt;&lt;br /&gt;
[[RegistrationID|Registration ID ]]&lt;br /&gt;
&lt;br /&gt;
== Installing an OXP ==&lt;br /&gt;
Unzip the OXP and place it in the folder named '''AddOns'''. Sometimes the zipped files contain several folders, make sure you only copy the folder -or file for Macintoshes- ending with '''.oxp''' into the AddOns folder. This folder is found in different locations, depending on the platform:&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
Found in the folder that contains the Oolite application.&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' If you get an error saying &amp;quot;The item could not be moved because &amp;quot;AddOns&amp;quot; cannot be modified&amp;quot;, that can happen if you weren't the user that installed Oolite.&lt;br /&gt;
The solution is to put the OXP's of your choice in '''~/Library/Application&amp;amp;nbsp;Support/Oolite/AddOns/''' instead (you may need to create this folder).&lt;br /&gt;
The error could also be triggered because you’re running from the disk image, you’ll need to copy the game somewhere else. Having done so, if you still get the error, use the Get Info command on the AddOns folder, open the Ownership &amp;amp; Permissions pane and check that it says You Can: Read &amp;amp; Write.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The OXP directory can be found in '''$HOME/.Oolite/AddOns.''' for all current versions of OOlite&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
If the installable package was used (post Jan 06) then the AddOns folder needs to be created in '''C:\Programs Files\Oolite'''. Note that this applies if the default installation location is used. If the install location is changed then use the path to the Oolite folder that corresponds to your installation.&lt;br /&gt;
If the GNUStep dedicated versions (pre-Jan 2006) is used, then the AddOns folder must be created in the oolite.app folder.&lt;br /&gt;
&lt;br /&gt;
After unzipping the file, make sure that it is ''the'' OXP folder that put into the AddOns directory - some zipped OXPs can contain a top level folder with a readMe file, and the actual OXP folder is a level further down. If this is the case, move the item with the '''.oxp''' extension into the AddOns folder.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
If you purchase a ship that is an OXP ship and save the game, you will only be able to load that commander as long as this OXP is installed in AddOns. If it's not, Oolite will give you an error instead of trying to load the commander.&lt;br /&gt;
&lt;br /&gt;
== Creating an OXP ==&lt;br /&gt;
It is intended to be easy to create expansion packs. With a few simple [[List_of_software|tools]], a player can make small or big changes, and customize the gaming experience.&lt;br /&gt;
&lt;br /&gt;
* [[OXP howto|How to make OXPs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:Factual]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17449</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17449"/>
		<updated>2010-02-13T18:24:24Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* playerTargetedMissile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
'''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
A handler does not yet exist for the following event:&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17448</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17448"/>
		<updated>2010-02-13T18:22:41Z</updated>

		<summary type="html">&lt;p&gt;Kaks: added new shipTargetAcquired handler&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is sent to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord. '''Deprecated''' in 1.74 in favour of the more generic shipTargetAcquired&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when a target is lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetAcquired&amp;lt;/code&amp;gt; handler is called whenever a new target is selected. (Handler added in test version 1.74) &lt;br /&gt;
&lt;br /&gt;
 this.shipTargetAcquired = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
A handler does not yet exist for the following event:&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Wormhole_Scanner&amp;diff=17435</id>
		<title>Wormhole Scanner</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Wormhole_Scanner&amp;diff=17435"/>
		<updated>2010-02-11T00:41:39Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Displays detailed information about a targeted wormhole&lt;br /&gt;
&lt;br /&gt;
== Use ==&lt;br /&gt;
When in flight, press '''r''' to activate the ship's identification system, and place your target reticle over a wormhole to select it as the wormhole scanner's target. The scanner will then start displaying all the information available for the selected wormhole.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
 Price: 2395.0 Cr&lt;br /&gt;
 Techlevel: 10&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Back to: [[Oolite Equipment]]&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Wormhole_Scanner&amp;diff=17434</id>
		<title>Wormhole Scanner</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Wormhole_Scanner&amp;diff=17434"/>
		<updated>2010-02-11T00:39:33Z</updated>

		<summary type="html">&lt;p&gt;Kaks: Created page with '== Overview == Displays detailed information about a targeted wormhole  == Use == When in flight, press '''r''' to activate the ship's identification system, and place your targe…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Displays detailed information about a targeted wormhole&lt;br /&gt;
&lt;br /&gt;
== Use ==&lt;br /&gt;
When in flight, press '''r''' to activate the ship's identification system, and place your target reticle over a wormhole to select it as the wormhole scanner's target.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
 Price: 2395.0 Cr&lt;br /&gt;
 Techlevel: 10&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Back to: [[Oolite Equipment]]&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_Equipment&amp;diff=17433</id>
		<title>Oolite Equipment</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_Equipment&amp;diff=17433"/>
		<updated>2010-02-11T00:21:19Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* Ship features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This lists standard equipment (non OXP) available to all players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ship features ==&lt;br /&gt;
&lt;br /&gt;
* [[Advanced Navigational Array]]&lt;br /&gt;
* [[Advanced Space Compass]]&lt;br /&gt;
* [[Cargo Bay expansion]]&lt;br /&gt;
* [[Docking Computers]]&lt;br /&gt;
* [[E.C.M. System]]&lt;br /&gt;
* [[Escape Pod]]&lt;br /&gt;
* [[Extra Energy Unit]]&lt;br /&gt;
* [[Fuel Scoops]]&lt;br /&gt;
* [[Fuel Tank]]&lt;br /&gt;
* [[Galactic Hyperdrive]]&lt;br /&gt;
* [[IFF system]]&lt;br /&gt;
* [[Military Shield Enhancement]]&lt;br /&gt;
* [[Multi-Targeting System]]&lt;br /&gt;
* [[Naval energy unit]]&lt;br /&gt;
* [[Passenger Berth]]&lt;br /&gt;
* [[Scanner Targeting Enhancement]]&lt;br /&gt;
* [[Shield Boosters]]&lt;br /&gt;
* [[Target System Memory Upgrade]]&lt;br /&gt;
* [[Witch fuel injectors|Witchdrive Fuel Injectors]]&lt;br /&gt;
* [[Wormhole Scanner]]&lt;br /&gt;
&lt;br /&gt;
== Weapons ==&lt;br /&gt;
&lt;br /&gt;
* [[Beam Laser]]&lt;br /&gt;
* [[ECM Hardened Missile]]&lt;br /&gt;
* [[Energy Bomb]]&lt;br /&gt;
* [[Military Lasers]]&lt;br /&gt;
* [[Mining Lasers]]&lt;br /&gt;
* [[Missile]]&lt;br /&gt;
* [[Pulse Laser]]&lt;br /&gt;
* [[Q bomb]]&lt;br /&gt;
* [[Twin Plasma Cannon]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17077</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17077"/>
		<updated>2009-12-22T18:37:25Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* shipSpawned */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then all the relevant shipSpawned events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17076</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17076"/>
		<updated>2009-12-22T18:20:12Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called after a ship has been added to the system. After a witchspace jump it means that first all ships are added to the system, then afterwards all the relevant shipSpawned events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17075</id>
		<title>Oolite JavaScript Reference: Ship script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Ship_script_event_handlers&amp;diff=17075"/>
		<updated>2009-12-22T18:17:32Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides a list of event handlers which can be implemented by [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Ship scripts are linked to Oolite either using the appropriate [[shipdata.plist#script|shipdata.plist]] setting or via javascript using [[Oolite JavaScript Reference: Ship#setScript|ship.setScript]] and are only active when the ship is present. More than one ship can be assigned the same ship script. Each ship will create its own separate copy of the script, each one independent from the others.&lt;br /&gt;
&lt;br /&gt;
(this page has just recently been split from world script event handlers, bear with us while we tidy up the content)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the recommended time to set up elements which need to be present in-system when the player arrives.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition.&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAttack&amp;lt;/code&amp;gt; handler is send to all escorts of a mothership that are deployed. The mother first changes the escorts AI to interceptAI.plist and also sets the escort target to his own target before sending this handler to the escorts.&lt;br /&gt;
&lt;br /&gt;
 this.escortAttack = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function( whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. There is no parameter provided to identify the cloaked ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyBecameFull &amp;lt;/code&amp;gt; handler is called when the energy level reaches it's maximum value again. &lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyBecameFull = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnergyIsLow&amp;lt;/code&amp;gt; handler is called every time when a ship gets energy damage while the energy level lies below 25% of it's maximum value.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnergyIsLow = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile. (Handler is added in test version 1.74)&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== NPC only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; handler is called for mother ships that have accepted an escort. The escort simultaneously gets a &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
 this.escortAccepted = function(escortship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;escortDock&amp;lt;/code&amp;gt; handler is called by a mother ships that uses the AI command: &amp;lt;code&amp;gt;dockEscorts&amp;lt;/code&amp;gt;.  Escorts are instructed to change AI into dockingAI.plist and enter the ABORT state of this AI after a certain delay. Than this event is send to all his escorts, each with a different delay with 3 seconds spacing.&lt;br /&gt;
&lt;br /&gt;
 this.escortDock = function(delay)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;offenceCommittedNearby&amp;lt;/code&amp;gt; handler is only send to police ships in scanner range of a hostile action. It transfers the attacker and the victim to the police vessel.&lt;br /&gt;
&lt;br /&gt;
 this.offenceCommittedNearby = function(attacker, victim)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts and after the &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler fires. It is send to all ships in the system to signal that the player is about to leave the system. (By jump or by wormhole)&lt;br /&gt;
&lt;br /&gt;
 this.playerWillEnterWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAcceptedEscort&amp;lt;/code&amp;gt; handler is called for ships that are accepted as escort. The mother simultaneously gets a &amp;lt;code&amp;gt;escortAccepted&amp;lt;/code&amp;gt; event. &lt;br /&gt;
&lt;br /&gt;
 this.shipAcceptedEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWormhole&amp;lt;/code&amp;gt; handler is called when a ship exits a wormhole.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipSpawned&amp;lt;/code&amp;gt; handler is called for newly added ships. It does not trigger on adding but on the first update after adding. On a witchspace jump it means that first all ships are added to the system, then afterwards all the shipSpawned() events are triggered.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWormhole&amp;lt;/code&amp;gt; handler is called when a ship enters a wormhole. only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWormhole = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;spawnedAsEscort&amp;lt;/code&amp;gt; handler is called for newly added escort ships. It does trigger on adding the ship and before the shipSpawned() handlers is activated. It has the mothership as argument. &lt;br /&gt;
&lt;br /&gt;
 this.spawnedAsEscort = function(mother)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; handler is send to the cargopod when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on  the handler &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt;.  (ship script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWasScooped = function(scooper)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Stations only ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;otherShipDocked&amp;lt;/code&amp;gt; handler is called with a station script only, when an ship docks. It has the docked ship as argument.&lt;br /&gt;
&lt;br /&gt;
 this.otherShipDocked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;stationLaunchedShip&amp;lt;/code&amp;gt; handler is called with a station script only, when a ship launches. It has the launched ship as argument.&amp;lt;br&amp;gt;&lt;br /&gt;
''Starting with 1.74 is also triggers for player.ship launches.''&lt;br /&gt;
&lt;br /&gt;
 this.stationLaunchedShip = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: world_script_event_handlers|world_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Timer&amp;diff=17072</id>
		<title>Oolite JavaScript Reference: Timer</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_Timer&amp;diff=17072"/>
		<updated>2009-12-21T08:25:43Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &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&lt;br /&gt;
&lt;br /&gt;
{{Oolite-class-added|1.70}}&lt;br /&gt;
&lt;br /&gt;
'''Timer''' objects are used to perform tasks after a delay or on a repeating schedule. When a timer is created, it is given a function to call, and a ''delay'' and an optional ''interval'' in seconds in [[Time scales in Oolite#Game real time|game real time]]. The ''next fire time'' of the timer is set to the current time + the delay. When the game clock reaches (or passes) the next fire time, the function is called. If the timer has a positive interval, the interval is added to the next fire time. Otherwise, the timer stops.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' in order for a timer to work consistently, you must keep a reference to it as long as it is in use. The easiest way is to make it a property of your script: &amp;lt;code&amp;gt;this.timer = new Timer(this, this.doSomething, 5, 5)&amp;lt;/code&amp;gt;. If this is not done, the JavaScript runtime may delete the timer at any time to free up memory.&lt;br /&gt;
&lt;br /&gt;
'''N.B.:''' Before 1.74, timers associated with ship scripts did not stop when the ship itself died.&lt;br /&gt;
If scripting for Oolite 1.73.4 or earlier, either the timer is deleted inside the ship's this.shipDied, or a check for the existence of the ship must be placed inside the timer itself, as in the timers examples at the bottom of this page. Timers run independent of the script and are not deleted with a ship script. When the timer is not stopped and uses a property of a removed ship script, it can crash Oolite.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
 '''new Timer'''(this : Object, function : Function, delay : Number [, interval : Number]) : Timer&lt;br /&gt;
Creates a new timer which will call &amp;lt;code&amp;gt;function&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; seconds, and optionally repeatedly every &amp;lt;code&amp;gt;interval&amp;lt;/code&amp;gt; seconds. If &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is zero or more, the timer will be started automatically. If &amp;lt;code&amp;gt;interval&amp;lt;/code&amp;gt; is 0 or less, the timer will not repeat. If &amp;lt;code&amp;gt;interval&amp;lt;/code&amp;gt; is greater than 0 but less than 0.25, it will be rounded up to 0.25.&lt;br /&gt;
&lt;br /&gt;
'''N.B.:''' as of Oolite 1.74, if the first parameter ('this : Object') goes out of scope (usually because the ship attached to the 'this' object is destroyed, or left behind when the player executes a hyperspace jump), the timer will now be stopped and removed automatically.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== interval ===&lt;br /&gt;
 '''interval''' : Number (read/write)&lt;br /&gt;
The rate at which the timer repeats. For a one-shot timer, this will be -1. If set to 0 or a negative number, it will be treated as -1. If set to a number between 0 and 0.25, it will be rounded up to 0.25.&lt;br /&gt;
&lt;br /&gt;
=== isPersistent ===&lt;br /&gt;
{{Oolite-script-item-deprecated|property|1.74|test}}&lt;br /&gt;
 '''isPersistent''' : Boolean (read/write)&lt;br /&gt;
A persistent timer will continue to run when the game resets (i.e., the player dies or loads a new game). A non-persistent timer will be stopped when the game is reset (but can be restarted using &amp;lt;code&amp;gt;[[#start|start()]]&amp;lt;/code&amp;gt;). Timers are not persistent by default.&lt;br /&gt;
&lt;br /&gt;
=== isRunning ===&lt;br /&gt;
 '''isRunning''' : Boolean (read-only)&lt;br /&gt;
&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the timer is running, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; if it is stopped.&lt;br /&gt;
&lt;br /&gt;
=== nextTime ===&lt;br /&gt;
 '''nextTime''' : Number (read/write when stopped)&lt;br /&gt;
The next time the timer will fire, if it is running at that time. This can be modified if the timer is stopped. Note that this is an absolute time, not a delay. You can get the current absolute time using &amp;lt;code&amp;gt;[[Oolite JavaScript Reference: Clock#absoluteSeconds|clock.absoluteSeconds]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== start ===&lt;br /&gt;
 function '''start'''() : Boolean&lt;br /&gt;
Starts the timer, if it is not currently running. This will fail if it is a one-shot timer (i.e., its &amp;lt;code&amp;gt;[[#interval|interval]]&amp;lt;/code&amp;gt; is -1) ''and'' its &amp;lt;code&amp;gt;[[#nextTime|nextTime]]&amp;lt;/code&amp;gt; is in the past. Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if successful or the timer was already running, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; on failure (i.e., the same as &amp;lt;code&amp;gt;[[#isRunning|isRunning]]&amp;lt;/code&amp;gt; after &amp;lt;code&amp;gt;start()&amp;lt;/code&amp;gt; is called).&lt;br /&gt;
&lt;br /&gt;
=== stop ===&lt;br /&gt;
 function '''stop'''()&lt;br /&gt;
Stops the timer, if it is currently running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Timer connected to ship. When the ship dies or when the player leaves the system, its timer is removed.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function () {&lt;br /&gt;
     this.shipTimer = new Timer(this, this.testTimer, 10, 10);&lt;br /&gt;
     delete this.shipSpawned;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 this.shipDied = function () {&lt;br /&gt;
     if (this.shipTimer) {&lt;br /&gt;
         this.shipTimer.stop(); delete this.shipTimer;&lt;br /&gt;
     }&lt;br /&gt;
     // other shipDied actions.&lt;br /&gt;
         ...&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 this.playerWillEnterWitchspace = function () {&lt;br /&gt;
     if (this.shipTimer) {&lt;br /&gt;
         this.shipTimer.stop(); delete this.shipTimer;&lt;br /&gt;
     }&lt;br /&gt;
         ...&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 this.testTimer = function () {&lt;br /&gt;
     // main timer code.&lt;br /&gt;
     ...&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Timer connected to ship. The timer itself keeps track of the ship it's attached to, and removes itself when necessary.&lt;br /&gt;
&lt;br /&gt;
 this.shipSpawned = function () {&lt;br /&gt;
     this.shipTimer = new Timer(this, this.testTimer, 10, 10);&lt;br /&gt;
     delete this.shipSpawned;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 this.testTimer = function () {&lt;br /&gt;
     // stop the timer if its associated ship doesn't exist anymore&lt;br /&gt;
     if (!this.ship || !this.ship.isValid) {&lt;br /&gt;
         log(this.name, &amp;quot;ERROR detected; Timer fired but this.ship is undefined&amp;quot;);&lt;br /&gt;
         if (this.shipTimer) {&lt;br /&gt;
             this.shipTimer.stop();&lt;br /&gt;
             delete this.shipTimer;&lt;br /&gt;
         }&lt;br /&gt;
         return;&lt;br /&gt;
     }&lt;br /&gt;
     // main timer code.&lt;br /&gt;
     ...&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
'''N.B.:''' as of Oolite 1.74, timers will be removed automatically by Oolite when the 'this' object goes out of scope, without the need to use any of these examples.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17050</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17050"/>
		<updated>2009-12-11T17:40:18Z</updated>

		<summary type="html">&lt;p&gt;Kaks: /* playerEnteredNewGalaxy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&amp;lt;br&amp;gt;&lt;br /&gt;
playerEnteredNewGalaxy (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipWillExitWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
shipExitedWitchspace (world event)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17049</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17049"/>
		<updated>2009-12-11T17:39:03Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. Use this event to set up elements which need to be present in-system after the player exits witchspace.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before shipWillExitWitchspace.&lt;br /&gt;
&lt;br /&gt;
the sequence of events for a player jumping to a different galaxy is as follows:&lt;br /&gt;
&lt;br /&gt;
shipWillEnterWitchspace (world event)&lt;br /&gt;
playerWillEnterWitchspace (NPC ship event)&lt;br /&gt;
playerEnteredNewGalaxy (world event)&lt;br /&gt;
shipWillExitWitchspace (world event)&lt;br /&gt;
shipExitedWitchspace (world event)&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17047</id>
		<title>Oolite JavaScript Reference: World script event handlers</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite_JavaScript_Reference:_World_script_event_handlers&amp;diff=17047"/>
		<updated>2009-12-11T17:11:35Z</updated>

		<summary type="html">&lt;p&gt;Kaks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an exhaustive list of event handlers which can be implemented inside world scripts [[Scripting Oolite with JavaScript|JavaScript scripts for Oolite]].&lt;br /&gt;
&lt;br /&gt;
Most event handlers can be used both in world scripts and in ship scripts. Generally speaking, handlers starting with &amp;quot;ship&amp;quot; can be used for both scripts and those starting with &amp;quot;player&amp;quot; are meant only for the player (= can only be used in a world script). Exceptions on this rule are mentioned with the individual handlers below. &lt;br /&gt;
&lt;br /&gt;
World scripts can be either found inside Config\script.js, or be distinctly named .js files inside the Scripts directory - in the latter case, the worldScript.plist will list the active world scripts.&lt;br /&gt;
&lt;br /&gt;
World scripts are always active.&lt;br /&gt;
&lt;br /&gt;
=== Game State ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;startUp&amp;lt;/code&amp;gt; handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reset (removed in 1.74)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reset = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
in 1.74 the startUp event is called in its place, eliminating the need for two separate events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docking ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillDockWithStation&amp;lt;/code&amp;gt; handler is called at the beginning of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillDockWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == nil&amp;quot;, &amp;quot;ship.status == STATUS_DOCKING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDockedWithStation&amp;lt;/code&amp;gt; handler is called at the end of the docking tunnel effect.&lt;br /&gt;
&lt;br /&gt;
 this.shipDockedWithStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
At this moment &amp;quot;ship.dockedStation == the station&amp;quot;, &amp;quot;ship.status == STATUS_DOCKED&amp;quot; and &amp;quot;gui_screen&amp;quot; is either GUI_SCREEN_STATUS or GUI_SCREEN_REPORT. However, any identical handler from an other oxp could have changed those values. Never count on it but double check when important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillLaunchFromStation&amp;lt;/code&amp;gt; handler is called at the beginning of the launch tunnel effect. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.shipWillLaunchFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedFromStation&amp;lt;/code&amp;gt; handler is called at the end of the launch tunnel effect. (The station parameter is added at release 1.73)&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedFromStation = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedAutoPilot&amp;lt;/code&amp;gt; handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledAutoPilot&amp;lt;/code&amp;gt; handler is called when the player cancels autopilot docking.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledAutoPilot = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerDockingRefused&amp;lt;/code&amp;gt; handler is called when a station refuses to provide autopilot docking instructions.&lt;br /&gt;
&lt;br /&gt;
 this.playerDockingRefused = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerRequestedDockingClearance&amp;lt;/code&amp;gt; handler is called when a station answers on a docking request of the player by targeting the station and pressing L (shift-l).&lt;br /&gt;
&lt;br /&gt;
 this.playerRequestedDockingClearance = function(message)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Message is a string and can take the values: &amp;quot;DOCKING_CLEARANCE_GRANTED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_OUTBOUND&amp;quot;, &amp;quot;DOCKING_CLEARANCE_DENIED_TRAFFIC_INBOUND&amp;quot;,  &amp;quot;DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE&amp;quot;, &amp;quot;DOCKING_CLEARANCE_NOT_REQUIRED&amp;quot;, &amp;quot;DOCKING_CLEARANCE_EXTENDED&amp;quot; or &amp;quot;DOCKING_CLEARANCE_CANCELLED&amp;quot;. (Feature is added with Oolite 1.72)&lt;br /&gt;
&lt;br /&gt;
=== Witchspace Jumps ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerStartedJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user starts a witchspace or galactic witchspace jump countdown. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerStartedJumpCountdown = function(type)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerCancelledJumpCountdown&amp;lt;/code&amp;gt; handler is called when the user cancels a witchspace or galactic witchspace jump countdown.&lt;br /&gt;
&lt;br /&gt;
 this.playerCancelledJumpCountdown = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerJumpFailed&amp;lt;/code&amp;gt; handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.playerJumpFailed = function(reason)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillEnterWitchspace&amp;lt;/code&amp;gt; handler is called immediately before a witchspace jump, while the player is still in the starting system. The &amp;lt;code&amp;gt;cause&amp;lt;/code&amp;gt; parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillEnterWitchspace = function(cause)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipWillExitWitchspace&amp;lt;/code&amp;gt; handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the reccomended time to set up elements which, so to speak, were already there when the player arrived.&lt;br /&gt;
&lt;br /&gt;
 this.shipWillExitWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedWitchspace&amp;lt;/code&amp;gt; handler is called after a witchspace jump has concluded and the tunnel effect has been shown.&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedWitchspace = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerEnteredNewGalaxy&amp;lt;/code&amp;gt; handler is called just before a witchspace jump starts.&lt;br /&gt;
&lt;br /&gt;
 this.playerEnteredNewGalaxy = function(galaxyNumber)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enter/Exit Aegis ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredStationAegis&amp;lt;/code&amp;gt; handler is called when the player enters the aegis of the main-station (2x scanner range from main-station). Other stations than the main-station don't give aegis messages.&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedStationAegis&amp;lt;/code&amp;gt; handler is called when the player leaves the aegis of the main-station (2x scanner range from main-station).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedStationAegis = function(station)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipEnteredPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player enters the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipEnteredPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipExitedPlanetaryVicinity&amp;lt;/code&amp;gt; handler is called when the player leaves the planet aegis (3x planet radius).&lt;br /&gt;
&lt;br /&gt;
 this.shipExitedPlanetaryVicinity = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipApproachingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipApproachingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLeavingPlanetSurface&amp;lt;/code&amp;gt; handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).&lt;br /&gt;
&lt;br /&gt;
 this.shipLeavingPlanetSurface = function(planet)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Combat ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;alertConditionChanged&amp;lt;/code&amp;gt; handler is called when the player’s alert status (&amp;lt;code&amp;gt;[[Oolite JavaScript Reference: object model#player|player]].alertCondition&amp;lt;/code&amp;gt;) changes. Only the player and stations have an alert condition. (world script and station scripts)&lt;br /&gt;
&lt;br /&gt;
 this.alertConditionChanged = function(newCondition, oldCondition)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerTargetedMissile&amp;lt;/code&amp;gt; handler is called when the player targets the nearest missile by pressing T (shift-t) on the keybord.&lt;br /&gt;
&lt;br /&gt;
 this.playerTargetedMissile = function(missile)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipAttackedWithMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipAttackedWithMissile = function(missile, whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttacked&amp;lt;/code&amp;gt; handler is called when a laser shot  hits. &amp;lt;code&amp;gt;whom&amp;lt;/code&amp;gt; the identity of the ship that attacked.&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttacked = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipBeingAttackedByCloaked&amp;lt;/code&amp;gt; handler is called when a laser shot from a cloaked ship hits. Guess what, there is no parameter because he is cloaked!&lt;br /&gt;
&lt;br /&gt;
 this.shipBeingAttackedByCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDestroyedTarget&amp;lt;/code&amp;gt; handler is called when the target gets destroyed. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the destroyed target entity. This command is always preceded by the &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler.&lt;br /&gt;
&lt;br /&gt;
 this.shipDestroyedTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipDied&amp;lt;/code&amp;gt; handler is called when the ship or player dies. Expect a &amp;lt;code&amp;gt;reset()&amp;lt;/code&amp;gt; shortly when it is the player ship.&lt;br /&gt;
&lt;br /&gt;
 this.shipDied = function(whom, why)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
'''whom''' contains the entity that caused the kill. '''why''' is the cause written as string and is one of: &amp;quot;removed&amp;quot;, &amp;quot;hit a planet&amp;quot;, &amp;quot;energy damage&amp;quot;, &amp;quot;scrape damage&amp;quot;, &amp;quot;heat damage&amp;quot;, &amp;quot;cascade weapon&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
(&amp;quot;cascade weapon&amp;quot; is new in 1.74 and  &amp;quot;removed&amp;quot; / &amp;quot;energy damage&amp;quot; were accidentally switched in 1.73)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;shipFiredMissile&amp;lt;/code&amp;gt; handler is called when a missile is fired. &amp;lt;code&amp;gt;missile&amp;lt;/code&amp;gt; contains the missile entity and &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; the identity of the target. The handler is send to the ship that launched the missile.&lt;br /&gt;
&lt;br /&gt;
 this.shipFiredMissile = function(missile, target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLostTarget&amp;lt;/code&amp;gt; handler is called when the target gets lost. &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; contains the lost target entity.&amp;lt;br&amp;gt;(As with Oolite 1.71 this is not yet working properly. It returns not the right target but just &amp;quot;unknown&amp;quot;. It does nothing when target lost because of &amp;quot;out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 this.shipLostTarget = function(target)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipTargetCloaked&amp;lt;/code&amp;gt; handler is called when the target cloakes.&lt;br /&gt;
&lt;br /&gt;
 this.shipTargetCloaked = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Equipment ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDestroyed&amp;lt;/code&amp;gt; handler is called when equipment gets destroyed completely beyond repair. (in strict mode)  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDestroyed = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;equipmentDamaged&amp;lt;/code&amp;gt; handler is called when equipment get damaged. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.equipmentDamaged = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtEquipment&amp;lt;/code&amp;gt; handler is called when equipment is bought at the outfit screen.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtEquipment = function(equipment)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;playerBoughtNewShip&amp;lt;/code&amp;gt; handler is called when a new ship is bought. May be needed to re-evaluate the old equipment as buying a new ship does not trigger equipment removal.&lt;br /&gt;
&lt;br /&gt;
 this.playerBoughtNewShip = function(ship)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;compassTargetChanged&amp;lt;/code&amp;gt; handler is called when a new target is selected. Mode can be any of the following:&lt;br /&gt;
&lt;br /&gt;
 COMPASS_MODE_BASIC&lt;br /&gt;
 COMPASS_MODE_PLANET&lt;br /&gt;
 COMPASS_MODE_STATION&lt;br /&gt;
 COMPASS_MODE_SUN&lt;br /&gt;
 COMPASS_MODE_TARGET&lt;br /&gt;
 COMPASS_MODE_BEACONS&lt;br /&gt;
&lt;br /&gt;
script example &lt;br /&gt;
&lt;br /&gt;
 this.compassTargetChanged = function(whom, mode)&lt;br /&gt;
 {&lt;br /&gt;
      log(' Now targeting ' + whom);&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;guiScreenChanged&amp;lt;/code&amp;gt; handler is called when the guiScreen changes. 1.71 only transfers the &amp;quot;to&amp;quot; screen. 1.72 will also transfer the &amp;quot;from&amp;quot; screen. Note that the screen can have changed again in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.guiScreenChanged = function(to, from)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionChoiceWasReset&amp;lt;/code&amp;gt; handler is called when the mission choice is set to null via script (either using the legacy script method resetMissionChice, or using mission.choice = null; in javascript)&lt;br /&gt;
&lt;br /&gt;
 this.missionChoiceWasReset= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenEnded&amp;lt;/code&amp;gt; handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.74}}&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;missionScreenOpportunity&amp;lt;/code&amp;gt; handler is called if there are no mission / report screens active, and the player is docked to a station. It gets fired at game startup, upon docking, and after a docking report or previous mission screen has ended.  (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.missionScreenOpportunity= function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; ====&lt;br /&gt;
{{Oolite-prop-added|1.73}}&lt;br /&gt;
The &amp;lt;code&amp;gt;reportScreenEnded&amp;lt;/code&amp;gt; handler is called when the last arrival-report  screen ends. This is a screen that should not be written by a missionscreen. The code should wait until this eventhandler fires. Note that an other script may have put up a new missionscreen in the meantime. (world script only)&lt;br /&gt;
&lt;br /&gt;
 this.reportScreenEnded = function()&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipCollided&amp;lt;/code&amp;gt; handler is send after a collision with otherShip.&lt;br /&gt;
&lt;br /&gt;
 this.shipCollided = function(otherShip)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipScoopedOther&amp;lt;/code&amp;gt; handler is called when a ship scoops scripted_cargo. (&amp;quot;cargo_type&amp;quot; = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.&amp;lt;br&amp;gt;The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: &amp;lt;code&amp;gt;shipWasScooped&amp;lt;/code&amp;gt; with the scooper as argument.&lt;br /&gt;
&lt;br /&gt;
 this.shipScoopedOther = function(whom)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shipLaunchedEscapePod&amp;lt;/code&amp;gt; handler is called when the player bails out. This will be followed by a &amp;lt;code&amp;gt;shipWillDockWithStation()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;shipDockedWithStation()&amp;lt;/code&amp;gt; pair after a few seconds.&lt;br /&gt;
&lt;br /&gt;
 this.shipLaunchedEscapePod = function(escapepod)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;tickle&amp;lt;/code&amp;gt; handler is called periodically-ish, whenever the old [[property list|plist]] scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented. (world script and ship scripts)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.&lt;br /&gt;
&lt;br /&gt;
 this.tickle = function(status)&lt;br /&gt;
 {&lt;br /&gt;
      // Your code here&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Not Yet Implemented ===&lt;br /&gt;
&lt;br /&gt;
Handlers do not yet exist for the following events:&lt;br /&gt;
* Target changed.&lt;br /&gt;
* Cloaking device events.&lt;br /&gt;
&lt;br /&gt;
If there are other events you would like to be able to respond to, please write a request [http://www.aegidian.org/bb/viewtopic.php?t=3296 on the forum].&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [[Oolite JavaScript Reference: ship_script_event_handlers|ship_script_event_handlers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Kaks</name></author>
		
	</entry>
</feed>