OXP howto
Contents
OXP Overview
An Oolite Expansion Pack can implement many big changes or additions to Oolite's gameplay, or it may represent just a small, subtle alteration. By appearances, there is no way to tell what is inside, as it's merely a folder with the added extention .oxp. Inside, it will at least contain a folder named Config, and possibly other folders such as AIs, Models, Textures, Sounds, etc. It is down to the goal of the OXP, which ways to combine elements to the OXP's contents.
Config
This folder would contain Property Lists such as:
- shipdata.plist that introduces any new entity (ships, stations, objects etc.) to Oolite
- shipyard.plist that introduces new ships available for player purchase
- script.plist that plots conditional script actions
- planetinfo.plist that plots system specific changes from the default. may also contain script actions
Many other types of plists can also be included in Config when needed. For instance, missiontext.plist, demoships.plist, descriptions.plist, speech_pronunciation_guide.plist could appear, as well as custom HUDs. Config is where all plist files belong, except for those introducing new AI.
In its simplest form, an OXP could contain only a Config with an altering script.plist or planetinfo.plist. An OXP that adds a new ship needs a shipdata.plist entry, and unless it is based entirely on existing Oolite data, would include a model and texture.
Models
Oolite models need to be in the .dat format. There are utilities available that convert models made in Wings3D (.obj) and Meshwork (.mesh) into this. A .dat file can be opened in a plain text editor to view the object's assigned texture names and see that they correspond with the actual file names in the Textures folder. The .dat file must be named exactly as it is referenced in the shipdata entry.
Textures
Oolite's textures are in the .png format, usually at a standard 512x512 size, and must be named exactly as they appear in the .dat file. Pictures that have other purpose than to skin objects, such as background images for missiontext, would be placed in another folder to be named Images.