Difference between revisions of "Shipdata.plist"

From Elite Wiki
m (exhaust)
m (attempt at filling in)
Line 1: Line 1:
 
'''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:
 
'''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:
  +
   
 
== aft_eject_position ==
 
== aft_eject_position ==
 
Determines the XYZ point on the model from which cargo is ejected.
 
Determines the XYZ point on the model from which cargo is ejected.
 
   
 
Example:
 
Example:
Line 12: Line 12:
 
== ai_type ==
 
== ai_type ==
 
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.
 
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.
 
   
 
Example:
 
Example:
 
<key>ai_type</key>
 
<key>ai_type</key>
 
<string>pirateAI.plist</string>
 
<string>pirateAI.plist</string>
  +
   
 
== beacon ==
 
== beacon ==
Line 29: Line 29:
 
== bounty ==
 
== bounty ==
 
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .
 
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .
 
   
 
Example:
 
Example:
Line 42: Line 41:
 
<key>cargo_carried</key>
 
<key>cargo_carried</key>
 
<string>Gold</string>
 
<string>Gold</string>
  +
   
 
== cargo_type ==
 
== cargo_type ==
 
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods.
 
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods.
 
   
 
Example:
 
Example:
 
<key>cargo_type</key>
 
<key>cargo_type</key>
 
<string>CARGO_NOT_CARGO</string>
 
<string>CARGO_NOT_CARGO</string>
 
   
 
In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)
 
In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)
 
   
 
Example:
 
Example:
Line 60: Line 57:
 
<key>cargo_carried</key>
 
<key>cargo_carried</key>
 
<string>4 Gold</string>
 
<string>4 Gold</string>
  +
   
 
== death_actions ==
 
== death_actions ==
 
Gives an oportunity to have a ship do something special as it's dying.
 
Gives an oportunity to have a ship do something special as it's dying.
 
   
 
Example:
 
Example:
Line 70: Line 67:
 
<string>spawn: explosive_shrapnel 1</string>
 
<string>spawn: explosive_shrapnel 1</string>
 
</array>
 
</array>
  +
   
 
== max_defense_ships ==
 
== max_defense_ships ==
???
 
  +
Designates how many ships a dockable entity (station, carrier) can launch in defense.
  +
   
 
== defense_ship_role ==
 
== defense_ship_role ==
???
 
  +
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.
  +
  +
Example:
  +
<key> defense_ship_role </key>
  +
<string>carrier_defenders</string>
  +
   
 
== energy_recharge_rate ==
 
== energy_recharge_rate ==
 
The rate at which energy is replenished. Stations are at 100, Adders at 2..
 
The rate at which energy is replenished. Stations are at 100, Adders at 2..
 
   
 
Example:
 
Example:
Line 88: Line 91:
 
== escorts ==
 
== escorts ==
 
Determines how many escorts an NPC shall have.
 
Determines how many escorts an NPC shall have.
 
   
 
Example:
 
Example:
Line 97: Line 99:
 
== escort-role ==
 
== escort-role ==
 
Assigns the specific ship type to be the escort, by the ship's role
 
Assigns the specific ship type to be the escort, by the ship's role
 
   
 
Example:
 
Example:
Line 106: Line 107:
 
== escort-ship ==
 
== escort-ship ==
 
Assigns the specific ship type to be the escort, by the ship's name.
 
Assigns the specific ship type to be the escort, by the ship's name.
 
   
 
Example:
 
Example:
Line 128: Line 128:
   
 
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long
 
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long
 
   
 
Example:
 
Example:
Line 136: Line 135:
 
<string>-5 0.0 -25 6.0 4.0 10.0</string>
 
<string>-5 0.0 -25 6.0 4.0 10.0</string>
 
</array>
 
</array>
  +
   
 
== extra_cargo ==
 
== extra_cargo ==
 
New in version 1.62rc3
 
New in version 1.62rc3
 
Cargobay extension size can now be customised.
 
Cargobay extension size can now be customised.
 
   
 
Example:
 
Example:
 
<key>extra_cargo</key>
 
<key>extra_cargo</key>
 
<integer>value</integer
 
<integer>value</integer
  +
   
 
== forward_weapon_type ==
 
== forward_weapon_type ==
 
Assigns the ship's laser.
 
Assigns the ship's laser.
 
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE).
 
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE).
 
   
 
Example:
 
Example:
 
<key>forward_weapon_type</key>
 
<key>forward_weapon_type</key>
 
<string>WEAPON_BEAM_LASER</string>
 
<string>WEAPON_BEAM_LASER</string>
  +
   
 
== frangible ==
 
== frangible ==
Line 159: Line 159:
 
If set to false, the object plus subentities will be regarded as a single object.
 
If set to false, the object plus subentities will be regarded as a single object.
 
If set to true, sub entities can be destroyed seperately from the main object.
 
If set to true, sub entities can be destroyed seperately from the main object.
 
   
 
Example:
 
Example:
Line 165: Line 164:
 
<false/>
 
<false/>
   
== fuel ==
 
Determines a ship's fuel storage.
 
   
  +
== fuel ==
  +
Determines an NPC ship's fuel storage, which will affect how it uses its Fuel Injectors.
   
 
Example:
 
Example:
Line 176: Line 175:
 
== has_ecm ==
 
== has_ecm ==
 
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.
 
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.
 
   
 
Example:
 
Example:
Line 188: Line 186:
 
== has_escape_pod ==
 
== has_escape_pod ==
 
Determines if a ship has an escape pod.
 
Determines if a ship has an escape pod.
 
   
 
Example:
 
Example:
Line 197: Line 194:
 
== has_fuel_injection ==
 
== has_fuel_injection ==
 
Determines if a ship has the witchdrive fuel injector.
 
Determines if a ship has the witchdrive fuel injector.
 
   
 
Example:
 
Example:
 
<key>has_fuel_injection </key>
 
<key>has_fuel_injection </key>
 
<real>0.99</real>
 
<real>0.99</real>
  +
   
 
== has_scoop ==
 
== has_scoop ==
 
Determines if a ship has a fuel/cargo scoop.
 
Determines if a ship has a fuel/cargo scoop.
 
   
 
Example:
 
Example:
 
<key>has_scoop</key>
 
<key>has_scoop</key>
 
<false/>
 
<false/>
  +
   
 
== has_shield_enhancer ==
 
== has_shield_enhancer ==
 
Determines if a ship has the coveted shield enhancer.
 
Determines if a ship has the coveted shield enhancer.
 
   
 
Example:
 
Example:
Line 222: Line 218:
 
== hud ==
 
== hud ==
 
Used for a playership, to assign another HUD than the default one.
 
Used for a playership, to assign another HUD than the default one.
 
   
 
Example:
 
Example:
Line 231: Line 226:
 
== laser_color ==
 
== laser_color ==
 
Determines a ship's laser colour. NPCs that is, not the player's laser.
 
Determines a ship's laser colour. NPCs that is, not the player's laser.
 
   
 
Example:
 
Example:
Line 240: Line 234:
 
== like_ship ==
 
== like_ship ==
 
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)
 
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)
 
   
 
Example:
 
Example:
Line 249: Line 242:
 
<key>name</key>
 
<key>name</key>
 
<string>Freak Turbo Adder</string>
 
<string>Freak Turbo Adder</string>
  +
   
 
== likely_cargo ==
 
== likely_cargo ==
 
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.
 
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.
 
   
 
Example:
 
Example:
Line 261: Line 254:
 
== max_cargo ==
 
== max_cargo ==
 
Sets the ship's cargo limit.
 
Sets the ship's cargo limit.
 
   
 
Example:
 
Example:
Line 270: Line 262:
 
== max_energy ==
 
== max_energy ==
 
Sets the ship's energy value.
 
Sets the ship's energy value.
 
   
 
Example:
 
Example:
Line 279: Line 270:
 
== max_flight_pitch ==
 
== max_flight_pitch ==
 
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0
 
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0
 
   
 
Example:
 
Example:
Line 288: Line 278:
 
== max_flight_roll ==
 
== max_flight_roll ==
 
Sets roll factor. Will usually range from 0.8 to 4.6.
 
Sets roll factor. Will usually range from 0.8 to 4.6.
 
   
 
Example:
 
Example:
Line 297: Line 286:
 
== max_flight_speed ==
 
== max_flight_speed ==
 
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.
 
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.
 
   
 
Example:
 
Example:
Line 306: Line 294:
 
== max_missiles ==
 
== max_missiles ==
 
Sets a ship's missile limit.
 
Sets a ship's missile limit.
 
   
 
Example:
 
Example:
Line 315: Line 302:
 
== missile_launch_position ==
 
== missile_launch_position ==
 
Determines the XYZ point on the model from which a missile is launched.
 
Determines the XYZ point on the model from which a missile is launched.
 
   
 
Example:
 
Example:
Line 324: Line 310:
 
== missiles ==
 
== missiles ==
 
Sets a ship's probable number of missiles.
 
Sets a ship's probable number of missiles.
 
   
 
Example:
 
Example:
Line 333: Line 318:
 
== model ==
 
== model ==
 
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.
 
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.
 
   
 
Example:
 
Example:
Line 342: Line 326:
 
== name ==
 
== name ==
 
States the model's name as it will be known to the ID computer.
 
States the model's name as it will be known to the ID computer.
 
   
 
Example:
 
Example:
Line 353: Line 336:
   
 
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.
 
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.
 
   
 
Example:
 
Example:
Line 363: Line 345:
 
<key>roles</key>
 
<key>roles</key>
 
<string>just_custom_role</string>
 
<string>just_custom_role</string>
  +
   
 
== rotational_velocity ==
 
== rotational_velocity ==
 
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.
 
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.
 
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.
 
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.
 
   
 
Example:
 
Example:
 
<key>rotational_velocity</key>
 
<key>rotational_velocity</key>
 
<string>0.707 0.0 0.0 0.707</string>
 
<string>0.707 0.0 0.0 0.707</string>
  +
   
 
== scanClass ==
 
== scanClass ==
Line 383: Line 366:
 
* CLASS_STATION
 
* CLASS_STATION
 
* CLASS_THARGOID
 
* CLASS_THARGOID
  +
   
 
==== Developer Note ====
 
==== Developer Note ====
Line 390: Line 374:
 
<key>scanClass</key>
 
<key>scanClass</key>
 
<string>CLASS_ROCK</string>
 
<string>CLASS_ROCK</string>
  +
   
 
== script_actions ==
 
== script_actions ==
 
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.
 
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.
 
   
 
Example:
 
Example:
Line 426: Line 410:
 
== setup_actions ==
 
== setup_actions ==
 
Arranges a process that may be necessary for some objects, like ball turrets..
 
Arranges a process that may be necessary for some objects, like ball turrets..
 
   
 
Example:
 
Example:
Line 437: Line 420:
 
== smooth ==
 
== smooth ==
 
Determines if the model will have magic smoothening method applied (very rare).
 
Determines if the model will have magic smoothening method applied (very rare).
 
   
 
Example:
 
Example:
Line 459: Line 441:
   
 
'''size''' is the size of the light's corona in metres
 
'''size''' is the size of the light's corona in metres
 
   
 
Example:
 
Example:
Line 469: Line 450:
   
 
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.
 
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.
  +
   
 
== thrust ==
 
== thrust ==
 
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..
 
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..
 
   
 
Example:
 
Example:
Line 480: Line 461:
   
 
== view_position_.. ==
 
== view_position_.. ==
Sets the ship's 4 view positions in XYZ relative to the model.
+
Sets the ship's 4 point-of-view positions in XYZ relative to the model.
 
   
 
Example:
 
Example:
Line 495: Line 476:
 
== weapon_energy ==
 
== weapon_energy ==
 
Gives a weapon energy value to the ship's laser that is different than the default.
 
Gives a weapon energy value to the ship's laser that is different than the default.
 
   
 
Example:
 
Example:
Line 504: Line 484:
 
== weapon_offset ==
 
== weapon_offset ==
 
must ask Aegidian. does it make a poor shot?
 
must ask Aegidian. does it make a poor shot?
 
   
 
Example:
 
Example:
Line 513: Line 492:
 
== weapon_position_.. ==
 
== weapon_position_.. ==
 
Plots the 'gunmouth' points of the model's 4 potential lasers.
 
Plots the 'gunmouth' points of the model's 4 potential lasers.
 
   
 
Example:
 
Example:

Revision as of 10:57, 9 April 2006

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 (extra). The following (property) entries are, for order's sake, listed alphabetically:


aft_eject_position

Determines the XYZ point on the model from which cargo is ejected.

Example:

<key>aft_eject_position</key>
<string>0.0 -4.5 -23.0</string>


ai_type

Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.

Example:

<key>ai_type</key>
<string>pirateAI.plist</string>


beacon

A special feature for beacons and navigation aids. The string can be anything - the first letter is what's displayed in the advanced space compass.

Example:

<key>beacon</key>
<string>X-code</string> 


bounty

Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .

Example:

<key>bounty</key>
<integer>50</integer>


cargo_carried

Determines the type of cargo carried as described in commodities.plist, only one type can be specified.

Example:

<key>cargo_carried</key>
<string>Gold</string>


cargo_type

Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods.

Example:

<key>cargo_type</key>
<string>CARGO_NOT_CARGO</string>

In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)

Example:

<key>cargo_type</key> 
<string>CARGO_CARRIED</string> 
<key>cargo_carried</key> 
<string>4 Gold</string>


death_actions

Gives an oportunity to have a ship do something special as it's dying.

Example:

<key>death_actions</key>
<array>
   <string>spawn: explosive_shrapnel 1</string>
</array>


max_defense_ships

Designates how many ships a dockable entity (station, carrier) can launch in defense.


defense_ship_role

Gives an oportunity to designate a particular (group of) ships that will defend a station/carrier. This has to be specified in the roles of the ship(s) that are assigned to defend.

Example:

<key> defense_ship_role </key>
<string>carrier_defenders</string>


energy_recharge_rate

The rate at which energy is replenished. Stations are at 100, Adders at 2..

Example:

<key>energy_recharge_rate</key>
<real>4.5</real>


escorts

Determines how many escorts an NPC shall have.

Example:

<key>escorts</key>
<integer>4</integer>


escort-role

Assigns the specific ship type to be the escort, by the ship's role

Example:

<key>escort-role</key> 
<string>my_custom_escort_role</string>


escort-ship

Assigns the specific ship type to be the escort, by the ship's name.

Example:

<key>escort-ship</key>
<string>cobramk1</string>


exhaust

The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo

x y z width height length

x y z is the position relative to the origin of the main model.

width in metres, how wide a plume is on x axis.

height in metres, how tall a plume is on y axis.

length in metres, how long a plume is on z axis.


Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long

Example:

<key>exhaust</key>
<array>
    <string>5 0.0 -25 6.0 4.0 10.0</string>
    <string>-5 0.0 -25 6.0 4.0 10.0</string>
</array>


extra_cargo

New in version 1.62rc3 Cargobay extension size can now be customised.

Example:

<key>extra_cargo</key>
<integer>value</integer


forward_weapon_type

Assigns the ship's laser. Any weapon type from the equipment.plist can be used (and WEAPON_NONE).

Example:

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>


frangible

Determines if eventual sub-entities are "loose". By default any given object is already frangible, so the use of this line must be to negate that. If set to false, the object plus subentities will be regarded as a single object. If set to true, sub entities can be destroyed seperately from the main object.

Example:

<key>frangible</key>
<false/>


fuel

Determines an NPC ship's fuel storage, which will affect how it uses its Fuel Injectors.

Example:

<key>fuel</key>
<integer>70</integer>


has_ecm

Determines if a ship has the E.C.M system installed. By chance factor, or true/false.

Example:

<key>has_ecm</key>
<real>0.5</real>

or

<key>has_ecm</key>
<false/>


has_escape_pod

Determines if a ship has an escape pod.

Example:

<key>has_escape_pod</key>
<false/>


has_fuel_injection

Determines if a ship has the witchdrive fuel injector.

Example:

<key>has_fuel_injection </key>
<real>0.99</real>


has_scoop

Determines if a ship has a fuel/cargo scoop.

Example:

<key>has_scoop</key>
<false/>


has_shield_enhancer

Determines if a ship has the coveted shield enhancer.

Example:

<key>has_shield_enhancer</key>
<real>0.45000000000000001</real>


hud

Used for a playership, to assign another HUD than the default one.

Example:

<key>hud</key>
<string>specialhud.plist</string>


laser_color

Determines a ship's laser colour. NPCs that is, not the player's laser.

Example:

<key>laser_color</key>
<string>pinkColor</string>


like_ship

Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)

Example:

<key>like_ship</key>
<string>adder</string>
<key>max_flight_speed</key>
<real>700</real>
<key>name</key>
<string>Freak Turbo Adder</string>


likely_cargo

Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.

Example:

<key>likely_cargo</key>
<integer>2</integer>


max_cargo

Sets the ship's cargo limit.

Example:

<key>max_cargo</key>
<integer>5</integer>


max_energy

Sets the ship's energy value.

Example:

<key>max_energy</key>
<real>300</real>


max_flight_pitch

Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0

Example:

<key>max_flight_pitch</key>
<real>2.2</real>


max_flight_roll

Sets roll factor. Will usually range from 0.8 to 4.6.

Example:

<key>max_flight_roll</key>
<real>4.2000000000000002</real>


max_flight_speed

Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.

Example:

<key>max_flight_speed</key>
<real>320</real>


max_missiles

Sets a ship's missile limit.

Example:

<key>max_missiles</key>
<integer>1</integer>


missile_launch_position

Determines the XYZ point on the model from which a missile is launched.

Example:

<key>missile_launch_position</key>
<string>0.0 -2.25 10.0</string>


missiles

Sets a ship's probable number of missiles.

Example:

<key>missiles</key>
 <integer>0</integer>


model

Assigns the entity's corresponding .dat file that will be found with the exact same name in the Models folder.

Example:

<key>model</key>
<string>example_ship.dat</string>


name

States the model's name as it will be known to the ID computer.

Example:

<key>name</key>
<string>ExampleShip Mark IX</string>


roles

Assigns which role(s) the entity should have, that can correspond to one specific, exclusive use, or several.

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.

Example:

<key>roles</key>
<string>hunter(0.25) trader(2.0) pirate</string>

or simply

<key>roles</key>
<string>just_custom_role</string>


rotational_velocity

May be applied to a sub-entity, like the following entry to the Weeviloid 2s spines. Takes the form of Quaternions, below example enables rotation around the Z-axis.

Example:

<key>rotational_velocity</key>
<string>0.707 0.0 0.0 0.707</string>


scanClass

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.

  • CLASS_BUOY
  • CLASS_CARGO
  • CLASS_MILITARY
  • CLASS_MISSILE
  • CLASS_POLICE
  • CLASS_ROCK
  • CLASS_STATION
  • CLASS_THARGOID


Developer Note

Oolite uses scanClass internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penatlties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!

Example:

<key>scanClass</key>
<string>CLASS_ROCK</string>


script_actions

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.

Example:

<key>script_actions</key>
<array>
    <string>debugOn</string>
    <string>testForEquipment: EQ_CLOAKING_DEVICE</string>
    <dict>
       <key>conditions</key>
       <array>
          <string>foundEquipment_bool equal NO</string>
       </array>
       <key>do</key>
       <array>
          <string>awardEquipment: EQ_CLOAKING_DEVICE</string>
       </array>
    </dict>
    <dict>
       <key>conditions</key>
       <array>
          <string>foundEquipment_bool equal YES</string>
       </array>
       <key>do</key
       <array>
          <string>awardCargo: 100 Gold</string>
       </array>
    </dict>
    <string>debugOff</string>
</array>


setup_actions

Arranges a process that may be necessary for some objects, like ball turrets..

Example:

<key>setup_actions</key>
<array>
   <string>initialiseTurret</string>
</array>


smooth

Determines if the model will have magic smoothening method applied (very rare).

Example:

<key>smooth</key>
<true/>


subentities

Can assign other objects, lights and turrets, to be associated with the model. The first three numbers are XYZ positions, however, controlling positioning of enslaved objects is done by means of quaternions.

Lights follow their own recipe.

*FLASHER* x y z hue speed offset size

x y z is the position relative to the origin of the main model.

hue describes the colour of the light as a position on a color wheel.

speed describes how fast the light pulses (on a sine wave) in Hertz (at 0 the light constantly lit)

offset is the offset to the sine wave (0..1) to time-shift each light

size is the size of the light's corona in metres

Example:

<key>subentities</key>
<array>
   <string>mySubEntity 0 -5 10 1 0 0 0</string>
   <string>*FLASHER* 0 5.5 10 30.0 1 0.0 12</string>
</array>

note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.


thrust

Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..

Example:

<key>thrust</key>
<real>25</real>


view_position_..

Sets the ship's 4 point-of-view positions in XYZ relative to the model.

Example:

<key>view_position_aft</key>
<string>0.0 5.0 -20.0</string>
<key>view_position_forward</key>
<string>0.0 1.9375 5.0</string>
<key>view_position_port</key>
<string>-11.85 2.825 -3.5</string>
<key>view_position_starboard</key>
<string>11.85 2.825 -3.5</string>


weapon_energy

Gives a weapon energy value to the ship's laser that is different than the default.

Example:

<key>weapon_energy</key>
<real>15</real>


weapon_offset

must ask Aegidian. does it make a poor shot?

Example:

<key>weapon_offset_x</key>
<real>10</real>


weapon_position_..

Plots the 'gunmouth' points of the model's 4 potential lasers.

Example:

<key>weapon_position_aft</key>
<string>0.0 -5.0 -20.0</string>
<key>weapon_position_forward</key>
<string>0.0 0.0417 16.6667</string>
<key>weapon_position_port</key>
<string>-13.75 -2.0625 -1.875</string>
<key>weapon_position_starboard</key>
<string>13.75 -2.0625 -1.875</string>