Difference between revisions of "Creating Ships and Stations"

From PioneerWiki
Jump to: navigation, search
(Add stub for Station Properties section)
m (Ship Properties: - added some entries in shipdef.lua)
Line 13: Line 13:
 
     -- Name of the model used for the ship (minus the ".model" extension. This is case sensitive)
 
     -- Name of the model used for the ship (minus the ".model" extension. This is case sensitive)
 
     model = "",
 
     model = "",
+
 
 +
    -- Manufacturer of the ship. Only for logo and decal selection currently.
 +
    -- Valid options are the file names (without extension) from data/icons/manufacturers/
 +
    manufacturer = "",
 +
 
 +
    -- Ship class. Only for icon and text display in the ship market currently.
 +
    -- Valid options are the file names (without extension) from the data/icons/shipclass/
 +
 
 +
 
 
     -- Linear thruster power in Newtons
 
     -- Linear thruster power in Newtons
 
     forward_thrust = 65e5,
 
     forward_thrust = 65e5,
Line 28: Line 36:
 
   
 
   
 
     -- Table of gun mount positions
 
     -- Table of gun mount positions
     -- note: in the future, gun positions will be specified as tag nodes in the model
+
     -- note: these values are deprecated fallback values, gun positions are now specified as tag nodes in the model.
 +
    -- See the article on pioneer wiki about the model system
 
     gun_mounts =
 
     gun_mounts =
 
     {
 
     {
Line 46: Line 55:
 
     -- system is being created (see [https://github.com/pioneerspacesim/pioneer/pull/1719 github issue 1719])
 
     -- system is being created (see [https://github.com/pioneerspacesim/pioneer/pull/1719 github issue 1719])
 
   
 
   
     max_cargo = 100, -- usually the same as the 'capacity' value
+
     max_cargo = 100, -- usually the same as the 'capacity' value, can not be larger than capacity.
 
     max_engine = 1, -- set to 0 to prevent fitting a hyperdrive
 
     max_engine = 1, -- set to 0 to prevent fitting a hyperdrive
     max_laser = 2, -- should be <= the number of gun mounts you have specified
+
     max_laser = 2, -- minimum: 0, maximum 2 currently.
 
     max_missile = 4,
 
     max_missile = 4,
 
     max_ecm = 1,
 
     max_ecm = 1,
Line 57: Line 66:
 
     max_energybooster = 1,
 
     max_energybooster = 1,
 
     max_atmoshield = 1,
 
     max_atmoshield = 1,
     max_cabin = 2,
+
     max_cabin = 2, -- number of passenger cabins
 
     max_shield = 5,
 
     max_shield = 5,
 
     max_fuelscoop = 1,
 
     max_fuelscoop = 1,
Line 70: Line 79:
 
     max_crew = 2,
 
     max_crew = 2,
 
   
 
   
     -- total capacity (in tonnes)
+
     -- total cargo and equipment capacity (in tonnes)
 
     capacity = 15,
 
     capacity = 15,
     -- mass of the empty hull (in tonnes)
+
     -- mass of the empty hull (in tonnes) - health of the ship is determined from this value
 
     hull_mass = 10,
 
     hull_mass = 10,
 
     -- size of the propellant tank (in tonnes)
 
     -- size of the propellant tank (in tonnes)

Revision as of 05:38, 11 April 2014

Before a ship or station can appear in the game, you have to specify its properties.

Ship Properties

Ship definitions live in data/ships. Each .lua file in this directory contains one ship definition. The file name (minus the .lua extension) is used as a unique identifier for the ship type (e.g., "wave"), so that code (e.g., mission scripts) can refer to a particular ship type. That identifier is case sensitive -- it is best to stick to the convention used for existing ships (all lower case, using underscores instead of spaces).

The easiest way to create a ship is to copy an existing ship definition and then edit it. The properties you can set (as of alpha 31) are:

define_ship {
    -- Name of the ship shown to the player (e.g., in the shipyard)
    name = "",

    -- Name of the model used for the ship (minus the ".model" extension. This is case sensitive)
    model = "",
    -- Manufacturer of the ship. Only for logo and decal selection currently. 
    -- Valid options are the file names (without extension) from data/icons/manufacturers/
    manufacturer = "",
    -- Ship class. Only for icon and text display in the ship market currently.
    -- Valid options are the file names (without extension) from the data/icons/shipclass/


    -- Linear thruster power in Newtons
    forward_thrust = 65e5,
    reverse_thrust = 12e5,
    up_thrust = 18e5,
    down_thrust = 18e5,
    left_thrust = 18e5,
    right_thrust = 18e5,

    -- Angular thruster power
    -- This currently uses non-standard units, but is proportional to Newton-metres
    -- It is best to find the right value by experimenting in-game
    angular_thrust = 25e5,

    -- Table of gun mount positions
    -- note: these values are deprecated fallback values, gun positions are now specified as tag nodes in the model. 
    -- See the article on pioneer wiki about the model system
    gun_mounts =
    {
        { v(0,-2,-46), v(0,0,-1), 5, 'HORIZONTAL' },
        { v(0,0,0), v(0,0,1), 5, 'HORIZONTAL' },
    },

    -- Equipment limits
    -- Each type of item or equipment has a particular slot that it can fit into;
    -- equipment can only be fitted if the ship has the right slot available,
    -- and also has enough capacity to carry the extra mass
    -- For most types of equipment, the slot limit should be set to
    -- 0 (to disable that equipment) or 1 (to enable it)
    -- Some types of equipment could have limits greater than 1 (e.g., cabins, shields)

    -- note: in the future, these slots will change, because a new Lua-driven equipment
    -- system is being created (see github issue 1719)

    max_cargo = 100, -- usually the same as the 'capacity' value, can not be larger than capacity.
    max_engine = 1, -- set to 0 to prevent fitting a hyperdrive
    max_laser = 2, -- minimum: 0, maximum 2 currently.
    max_missile = 4,
    max_ecm = 1,
    max_scanner = 1,
    max_radarmapper = 1,
    max_hypercloud = 1,
    max_hullautorepair = 1,
    max_energybooster = 1,
    max_atmoshield = 1,
    max_cabin = 2, -- number of passenger cabins
    max_shield = 5,
    max_fuelscoop = 1,
    max_cargoscoop = 1,
    max_lasercooler = 1,
    max_cargolifesupport = 1,
    max_autopilot = 1,

    -- crew limits
    -- note: in the future, the ship will not be able to launch with fewer than min_crew crew-members
    min_crew = 1,
    max_crew = 2,

    -- total cargo and equipment capacity (in tonnes)
    capacity = 15,
    -- mass of the empty hull (in tonnes) - health of the ship is determined from this value
    hull_mass = 10,
    -- size of the propellant tank (in tonnes)
    fuel_tank_mass = 15,

    -- Exhaust velocity Vc [m/s] is equivalent of engine efficiency and depend on used technology.
    -- Higher Vc means lower fuel consumption. Smaller ships built for speed often mount engines
    -- with higher Vc. Another way to make faster ship is to increase fuel_tank_mass.
    effective_exhaust_velocity = 59167e3,

    -- base price of a ship with just a hyperdrive
    price = 70000,
    -- base hyperdrive fitted as standard (set to 0 if the ship is not hyperspace capable)
    hyperdrive_class = 0,
}

Station Properties

To be written...

Note: The way that docking bays work is currently being improved. See github issue 2058