HULL/SHIP ITEM FILE BREAKDOWN
See Core Mod / Adding Ships for information about how to add a new ship/item into the game.
We'll use the basic shuttle item file as a template, found in core.cpk/data/items/hull_shuttle.xml
Opening the .xml file, it should have a whole bunch of nicely spaced lines of nonsense that I can't format easily to showcase as an example. So we'll do it piece by piece...
<root> <header> <game_version>1.0.0</game_version> <id>hull_shuttle</id> <title>Civilian shuttle hull</title> <description>It would probably be a good idea to get rid of this as soon as you can...</description> <enabled>1</enabled> </header>
<game_version> Leave it alone.
<id> The filename, without extension
<title> The item name as shown in-game (in store or inventory)
<description> The description as shown in-game...
<enabled> I'm guessing just a discrete way to control the item's availability, for debug?
<gfx> <icon>items/hull_shuttle.png</icon> </gfx>
The only thing here is the path to the in-game icon picture for the item. In this case, we are using the icon provided in the core game files. If you want to use your own icon, you need to add it to your mod (.mpk) file:
Item icons are placed into MOD.mpk/content/textures/items and must have the same name as called under the <gfx> section above.
Pretty much the remainder of the hull/item file is covered under the <data> header...
<shops_level> The minimum level of shop that will carry the item; Level 1 items are carried by the starting station.
<price> The item's unmodified price
<requirements> Skill (or other?) requirement for usage of the item/hull. (eg. Heavy Frigates)
<effects> The effects header defines the basic hull/item parameters such as health, inventory space, etc..See Effect Types later on for more info...
<item_data> This header section defines the actual model and textures to use for the item/hull.
<world_model> The name of the plain model file (.obj) located in MOD.mpk/content/hulls/ <world_textures> The three required textures for the model. See the core.cpk/content/textures/hulls files for examples. <diffuse> Diffuse texture <specular> Specular texture <normal> Normal texture <inventory_model> The same reference as <world_model> above. <inventory_textures> Same textures referenced above; Change as required for your own file names. <world_scale> This seems to scale the 3D model in-game; Values higher than 1 will increase the ship's size. <inventory_scale> Unknown?
Sound effect references for the hull, primarily the sound of the engines and the ship exploding.
<mass> The 'mass' of the hull/item, play with it to see the effects. <shapes> Assuming that this defines the collision area for the ship. They seem to always have a defined mass of 1.
<consumables> The number of consumable slots on the hull <devices> The number of device slots on the hull <boosters> The number of booster slots on the hull
<id> ?? <slot_type> Assuming type of weapon..Laser/Cannon/Missile <slot_size> Size of slot 1/2/3/? <display_type> ?? <direction> 0; Base direction the weapon is facing, 0 being ahead? <rotation_angle> Turret degrees of freedom <rotation_speed> Turret rotation speed <position> Position of turret model on ship
This section defines the engine and RCS trails left by the ship during movement. Color scheme is typically something like <color>R:G:B:Intensity</color>
This defines the intermittent (if desired) lights on the ship model. You can define the colors, position, and intervals of the lights.