Difference between revisions of "OXP howto"
m (Spelling correction: 'which' not 'witch') |
(→Config, updated script.plist info) |
||
Line 14: | Line 14: | ||
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite. |
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite. |
||
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase. |
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase. |
||
− | * ''[[script.plist]]'' or |
+ | * ''[[script.plist]]'' or that handle conditional ''script actions''. Note that [[script.js]] will be loaded in preference to script.plist if both exist. ([[script.oos]] was briefly introduced during 1.70 development but is now depracated in favour of JS.) |
− | * ''[[planetinfo.plist]]'' that plots system specific changes from the default. |
+ | * ''[[planetinfo.plist]]'' that plots system specific changes from the default. May also contain ''script actions''. |
* ''[[commodities.plist]]'' that contains information for each commodity in a market. |
* ''[[commodities.plist]]'' that contains information for each commodity in a market. |
||
* ''[[misc plists|demoships.plist]]'' that selects demoships to show on startup. |
* ''[[misc plists|demoships.plist]]'' that selects demoships to show on startup. |
Revision as of 02:01, 3 September 2009
An Oolite Expansion Pack can cause 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.
AIs
The folder named AIs would contain any AI.plist additions the OXP might use.
Config
This folder contains 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 or that handle conditional script actions. Note that script.js will be loaded in preference to script.plist if both exist. (script.oos was briefly introduced during 1.70 development but is now depracated in favour of JS.)
- planetinfo.plist that plots system specific changes from the default. May also contain script actions.
- commodities.plist that contains information for each commodity in a market.
- demoships.plist that selects demoships to show on startup.
- descriptions.plist that adds vocabulary to Oolite texts.
- hud.plist that allows for changes or a radically new Head-Up Display.
- characters.plist that adds non-player characters to Oolite.
- equipment.plist lists upgrades available from the Shipyard.
- pirate-victim-roles.plist that defines which roles should act as traders.
- missiontext.plist, speech_pronunciation_guide.plist are some of the other custom methods.
All plist files except for those introducing new AI, belong in Config.
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 Wings 3D (.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 model entry.
Textures
Oolite's textures are in the .png format, usually at a standard 512x512 size, and must be named exactly as they are named in the .dat file.
A preview of things to come
The scripting environment is being reworked to use JavaScript as the core scripting language. See Scripting Oolite with JavaScript for more information.