Difference between revisions of "OXP"

From Elite Wiki
m (Finding OXPs: Oops!)
(Installing an OXP)
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Image:oolite-oxp-icon.png|128px|right|OXP icon]]
 
[[Image:oolite-oxp-icon.png|128px|right|OXP icon]]
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 '''OXP''' ('''O'''olite e'''X'''pansion '''P'''ack) 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.
+
An '''OXZ''' is an OXP in a particular '''Z'''ipped 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.
   
 
== Finding OXPs ==
 
== Finding OXPs ==
  +
=== OXP's ===
 
*The '''[[OXP List]]''' provides the most comprehensive list of Oolite OXP expansion packs.
 
*The '''[[OXP List]]''' provides the most comprehensive list of Oolite OXP expansion packs.
*The [http://www.oolite.org/oxps/ '''OXZ List'''] provides the most comprehensive list of Oolite OXZ expansion packs.
 
  +
*[[Guide to Unlisted OXPs]] has 100 or so (which are not listed elsewhere).
  +
=== OXZ's ===
  +
*The [http://www.oolite.org/oxps/ '''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.
  +
=== 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 [http://oosat.alioth.net The Oolite Satellite Resource Site] ('''Oosat2''', quite broken but still accessible, 2006-11-04 until 2007-03-03) or the even older [http://capnhack.com/hosting/oolite/Oolite/OoSat.html 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 purely historical purposes (or a touch of nostalgia if you've been around Oolite for a long time) you might want to look at [http://oosat.alioth.net The Oolite Satellite Resource Site] (Oosat2, quite broken but still accessible, 2006-11-04 until 2007-03-03) or the even older [http://capnhack.com/hosting/oolite/Oolite/OoSat.html Captain Hack OoSat Site] (Oosat1, beginning until 2006-10-14). 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 [http://www.aegidian.org/bb/viewtopic.php?f=2&t=20721 Recovering Lost Oxp's].
+
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 [http://www.aegidian.org/bb/viewtopic.php?f=2&t=20721 Recovering Lost Oxp's].
   
 
== OXPs suitable for new players ==
 
== OXPs suitable for new players ==
Line 30: Line 37:
 
==Player recommendations==
 
==Player recommendations==
 
These commanders have put together lists of their personal favourites:
 
These commanders have put together lists of their personal favourites:
*[[User:Cpt|Cpt]]
+
*[[User:Cpt|Cpt]] (2013)
*[[User:JazHaz|JazHaz]]
+
*[[User:JazHaz|JazHaz]] (2013)
*[[User:Norby#Recommended_OXPs|Norby]]
+
*[[User:Zireael|Zireael]] (2014)
*[[User:Zireael|Zireael]]
+
*[[User:Norby#Recommended_OXPs|Norby]] (2015-7): includes packages of recommended OXPs for new players, the more experienced ''etc''.
*[[User:CaptSolo|CaptSolo]]
+
*[[User:CaptSolo|CaptSolo]] (2020)
   
 
== Help with OXPs ==
 
== Help with OXPs ==
Line 47: Line 54:
 
== Installing an OXP ==
 
== Installing an OXP ==
   
OXPs are installed to the folder or directory ('folder' and 'directory' are synonyms) named '''AddOns'''.
+
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 ===
 
=== In OXZ format ===
 
Download the OXZ file, and save it to your AddOns folder.
 
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 expansion pack 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.
+
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.
 
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.
Line 117: Line 124:
   
 
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 [http://www.aegidian.org/bb/viewtopic.php?p=218632#p218632 disable] the newer OXZ.
 
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 [http://www.aegidian.org/bb/viewtopic.php?p=218632#p218632 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.
  +
::[[User:Another_commander|Another_commander]] from [http://www.aegidian.org/bb/viewtopic.php?p=262814#p262814 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 '<font color="Red">'''('''</font>' '<font color="Red">''')'''</font>' with items separated by '<font color="Red">''','''</font>' and there must ''not'' be a comma after the last item in the list.
  +
:*objects are enclosed in '<font color="Red">'''{'''</font>' '<font color="Red">'''}'''</font>' and consist of pairs: <key> = <value>.
  +
:*Each key/value pair must have a '<font color="Red">''';'''</font>' 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 '<font color="Red">'''}'''</font>' must be followed by a '<font color="Red">''';'''</font>'.
  +
::lifted from a PM from [[User:Dybal|Dybal]] (2020)
   
 
== Creating an OXP ==
 
== Creating an OXP ==
 
It is intended to be easy to create expansion packs. Take a look at the [[OXP howto|How to make OXPs]] page for more information.
 
It is intended to be easy to create expansion packs. Take a look at the [[OXP howto|How to make OXPs]] page for more information.
  +
  +
'''Context''': [http://www.aegidian.org/bb/viewtopic.php?p=275434#p275434 What can OXP's ''not'' change?] (2021)
  +
  +
Older OXPs (from [[User:Aegidian|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 [http://aegidian.org/bb/viewtopic.php?p=256623#p256623 immense amount of work] involved in tampering with it!).
  +
  +
[[File:Plist-XML-ASCII-ill.png|thumb|right|702px|XML (left) & OpenStep (right)]]
  +
Legacy script comes in two versions: XML & OpenStep.
  +
  +
=== OXP resources ===
  +
*Here is an [[index of artefacts]] already created in OXPs.
  +
*[[Documenting your artefacts]] (OXP, ships and equipment)
  +
*[[OXP howto]]
  +
*[[Publishing your OXP]]
  +
  +
== 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. <br>
  +
The loading order under Macs and Windows is alphabetical, while Linux is unpredictable. There is no solution for Linux load ordering as yet ([http://aegidian.org/bb/viewtopic.php?p=261821#p261821 Svengali 2018]).
  +
  +
*[http://www.aegidian.org/bb/viewtopic.php?p=189416#p189416 Nested OXP's in AddOns folder] (2012)
  +
  +
== OXP Lists ==
  +
*[http://www.oolite.org/oxps/ 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?)
   
 
[[Category:Oolite expansion packs]]
 
[[Category:Oolite expansion packs]]

Latest revision as of 07:33, 29 December 2021

OXP icon

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.

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.

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.

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

It is intended to be easy to create expansion packs. Take a look at the How to make OXPs page for more information.

Context: 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!).

XML (left) & OpenStep (right)

Legacy script comes in two versions: XML & OpenStep.

OXP resources

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).

OXP Lists