OXP
An OXP (Oolite eXpansion Pack) is an enhancement to the game Oolite. 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. Please note that if you run Oolite in 'Strict Play' mode (set via pressing F2 when docked or paused and then selecting 'Reset to Strict play'), OXPs are not loaded.
An OXZ is an OXP in a particular Zipped format to make it easier for Oolite to process and for players to install - to find out what's inside one, use your unzipping tool of choice on it.
Contents
- 1 Finding OXPs
- 2 OXPs suitable for new players
- 3 Suitability for simpler or for more difficult/advanced gaming
- 4 Player recommendations
- 5 Help with OXPs
- 6 Tweaking your OXPs
- 7 Installing an OXP
- 8 Locating your AddOns folder
- 9 Caveats
- 10 Managing a stable of OXPs
- 11 Diagnostics
- 12 Creating an OXP
- 13 Loading Order of OXPs
- 14 AddOns and Managed AddOns folders
- 15 OXP Lists
Finding OXPs
OXP's
- The OXP List provides the most comprehensive list of Oolite OXP expansion packs.
- Guide to Unlisted OXPs has 100 or so (which are not listed elsewhere).
OXZ's
- The OXZ List provides the most comprehensive list of Oolite OXZ expansion packs (but only those uploaded to the in-game Expansions Manager).
- Just for fun, the Index of artefacts provides the most comprehensive analysis of these Oolite OXZ expansion packs...
- there are just a handful of oxz's (mostly experimental, but including some excellent ones by phkb) not listed on the Expansions Manager/OXZ List. They are mostly in the Guide to Unlisted OXPs mixed in with everything else.
- Check out the Oolite Starter which makes management of the expansions in your Ooniverse refeshing like a sip of properly chilled gin and tonic.
Old versions
For purely historical purposes (or a touch of nostalgia if you've been around Oolite for a long time) you might want to look at The Oolite Satellite Resource Site (Oosat2, quite broken but still accessible, 2006-11-04 until 2007-03-03) or the even older Captain Hack OoSat Site (Oosat1, beginning until 2006-10-14). Oosat may have originally been hosted here on Alioth.net, as was Oldsat. They had a tendency to go off-line or to crash, losing all information. Search on the BB if you are curious!
For your curiosity and maybe one or the other odd find there is also the OXP Attic which houses derelict OXPs from times long past. Also see Recovering Lost Oxp's.
OXPs suitable for new players
Everyone has their own idea of what OXPs should be in a starter pack, or which are just best. There are several threads on the Forum on this topic, perhaps the best-balanced and most useful for newcomers being this one.
Suitability for simpler or for more difficult/advanced gaming
There exists a way of marking an OXP's difficulty level according to the author's belief. You can find the level indicators on the wiki.
Another system in progress is Template:IconOXP.
Player recommendations
These commanders have put together lists of their personal favourites:
- Cpt (2013)
- JazHaz (2013)
- Zireael (2014)
- Norby (2015-7): includes packages of recommended OXPs for new players, the more experienced etc.
- CaptSolo (2020)
Help with OXPs
Information on OXPs can also be found on the Expansion Pack Forum, the Friendliest Board This Side of Riedquat. The helpful people there will be happy to assist you with any questions you have about OXPs.
Tweaking your OXPs
Do you prefer a louder beep for audible docking clearance? Would you rather your Commander's Log also recorded purchases & repairs? Do you want your Laser Booster to activate automatically upon launch?
You will find recipes for modifying some of the OXPs here.
Installing an OXP
OXPs are installed to the folder or directory ('folder' and 'directory' are synonyms) named AddOns. Read on, we will also tell you where to find that folder.
In OXZ format
Download the OXZ file, and save it to your AddOns folder.
Many OXZ format expansion packs can also be downloaded and installed for you from the Expansions Manager in Oolite. These will be placed in a separate folder which Oolite manages (ManagedAddOns) - any you download yourself should go in the AddOns folder so that Oolite doesn't accidentally overwrite them.
If you want to inspect an OXZ you've downloaded with the expansion pack manager, copy it out of the ManagedAddOns folder first, then open it with your unzipping program. Some versions of the Expansions Manager can do this for you when you press the x key.
In OXP format
Typically, an OXP is downloaded as a ZIP file though occasionally other compression tools such as 7z or rar have been used. Unzip it to find a folder with a name ending .oxp
After unzipping the file, make sure that it is only 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 folder with the .oxp extension into the AddOns folder.
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.
If you have followed these instructions and OXPs are not being recognised by the game make sure that your commander is a normal game. If you started your commander using the "Strict Mode" starting option, no OXPs will ever be used.
Locating your AddOns folder
Mac OS X
Found in the folder that contains the Oolite application.
Alternatively you can also have the AddOns folder in your user area at ~/Library/Application Support/Oolite/AddOns/. When both places contain an AddOns folder, both contents are read with the content in the user libraries loading last.
Troubleshooting: If you get an error saying "The item could not be moved because "AddOns" cannot be modified", that can happen if you weren't the user that installed Oolite. The solution is to put the OXPs of your choice in ~/Library/Application Support/Oolite/AddOns/ instead (you may need to create this folder). 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 & Permissions pane and check that it says You Can: Read & Write.
Linux
The location of the AddOns folder will depend on whether you chose to install Oolite to 'Home' or 'System'.
If you chose the 'Home' installation, the AddOns directory is located in ~/GNUstep/Applications/Oolite/AddOns. The AddOns folder should be in the top level of the Oolite install directory (at the same level as the oolite.app folder) You may have to create it.
If you chose the 'System' installation, the AddOns directory will be ~/.Oolite/Add-ons. You may have to create it. Note that this is a 'hidden' directory, and so you may have to turn on 'Show hidden files' in your file manager before you can see it.
An alternative location for a 'System' installation is the /opt/Oolite/AddOns directory, but most users find this less convenient than ~/.Oolite/Add-ons.
Windows
The AddOns folder should be in the top level of the Oolite install directory (at the same level as the oolite.app folder). Historical: if you are using the GNUStep dedicated versions (pre-Jan 2006), then the AddOns folder must be created inside the oolite.app folder.
Caveats
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.
Managing a stable of OXPs
Nowadays we download OXZs through the in-game Expansions Manager - and it manages them for us. But if we tweak one, it usually becomes an OXP and must then be kept in the AddOns folder. Some older oxps have yet to be turned into OXZs and some experimental OXPs are in a similar position.
So, if you have large numbers of these oxps, see the following threads from the BB.
- Issues with single OXPs
- Issues with multiple OXPs
- Issues with different copies of the game on the same hard drive
- If you found a nice set of expansions and want to share that with others, consider using the Oolite Starter. It allows you to export and send expansion sets to other players, who then can activate it on their side.
Diagnostics
With some OXPs installed, the directory structure will look something like this:
- ...\AddOns\Basic-debug.oxp
- ...\AddOns\Cabal_Common_Library1.5.1.oxp
- ...\AddOns\Explorers'_Club_1.3.1_2012-01-21.oxp
- ...\AddOns\halsis.oxp
- ...\AddOns\Material Test Suite v1.2.oxp
with other directories and files under each of the .oxp directories. You should only find .oxp directories immediately under a \AddOns directory.
If none of your OXPs are working, are you playing in Strict Mode? Try starting a new commander from the Normal Start and see if the OXPs work then.
If you edit the contents of one of your OXPs and cannot see the change, restart Oolite holding down <Shift> to force Oolite to re-read all the OXP files.
If an OXP you installed is not working or is misbehaving, check the Latest.log file - you should see a list of the OXPs you have installed. You should see a trend in the names which will tell you if you have installed an OXP within another OXP (move it) or two versions of an OXP (remove the older one) or it is absent suggesting you put it in the wrong place or did not get the .oxp directory extension correct (did you unzip the OXP?).
If you know how, a system-wide search for any directory ending in ".oxp" should pull up the OXPs you have installed and they should only appear immediately beneath a \AddOns directory and never inside another .oxp directory (this is an easily-done error when extracting a zip file).
Note that an OXP in the AddOns folder trumps an 'identical' OXZ in the ManagedAddOns folder. So if the OXP is an older version, it will disable the newer OXZ.
AppleMacs
... Strict semicolon parsing is a Mac thing. Windows and Linux use GNUstep to parse plists and that apparently is more relaxed syntax-wise than whatever it is that the Mac uses.
- Another_commander from A possible solution? (2018).
... the libraries in the Mac seems to be less tolerant of some things than the GNUStep libraries on Linux:
- lists are enclosed in '(' ')' with items separated by ',' and there must not be a comma after the last item in the list.
- objects are enclosed in '{' '}' and consist of pairs: <key> = <value>.
- Each key/value pair must have a ';' at the end, even the last pair in the object
- if the object is a value in a key/value pair in another object, it's closing '}' must be followed by a ';'.
- lifted from a PM from Dybal (2020)
Creating an OXP
Legacy script comes in two versions: XML & OpenStep.
It is intended to be easy to create expansion packs.
Start your own OXP
There are two quite extreme ways to go:
OXPs are just renamed zip archives. You can uncompress any existing OXP, look inside and start tweaking. And you can start from scratch by creating everything yourself - this will take some advanced knowledge. There also is the middle path to follow our predefined paths and enjoying a bunch of templates.
We see three areas your OXP can engage in. Advanced OXP creators can also combine them into a single OXP, while even more advanced creators keep them separate and then link them using dependencies. We'll cover that later.
So what style of OXP is on your mind? Take one of the guided tours:
Alternatively, or when courious take a look at the OXP Howto page for full background information.
OXP resources
- Here is an index of artefacts already created in OXPs.
- Documenting your artefacts (OXP, ships and equipment)
- OXP howto
- Publishing your OXP
- OXP Packaging Scripts Cim's collection for Linux (2015)
- What can OXP's not change? (2021)
Older OXPs (from Aegidian's day were written in Legacy Scripting. Modern OXPs are written in JavaScript. Specifically oolite.jsVersion 185, an Oolite specific variant of ECMAv5. It is the same Spidermonkey version (1.8.5 - March 2011) that Firefox 4 shipped with many years ago, but it is a special build for Oolite. This is the version that we have almost always had and it has not changed between versions of the game. It is unlikely to change in the future (due to the immense amount of work involved in tampering with it!).
Loading Order of OXPs
OXPs loaded after other OXPs will "trump" the earlier OXPs in terms of their effects on the game. It is a similar situation with the vanilla game code, where the OXPs trump or overwrite the relevant sections of the basic oolite game.
The loading order under Macs and Windows is alphabetical, while Linux is unpredictable. There is no solution for Linux load ordering as yet (Svengali 2018).
- Handling OXP Dependencies with JavaScript - how to determine the loading order
- Nested OXP's in AddOns folder (2012)
- Cim on the subject (2015)
- OXP loading order discussion, including Ahruman on the subject (2011)
AddOns and Managed AddOns folders
All versions of Oolite have an AddOns folder. Only versions 1.79 (2013) and onwards have the Managed AddOns folder.
The contents of the AddOns folder must not be zipped if they are to be recognised by Oolite - so OXZs will not work if they are in there.
The contents of the Managed AddOns folder must contain a Manifest.plist if they are to be recognised by your Expansions Manager (or by Oolite Starter). The Expansions Manager only checks this folder, not the AddOns folder.
OXP Lists
- Expansion Manager OXZ list - orderable
- OXP List - orderable
- Guide to Unlisted OXPs - with links at the bottom to older lists
- Brilliant but broken... great oxp's that need updating/fixing... (do you have the skills?)