Ftl More Scrap Mod

Read Below To Get The Faster Than Light Cheats! Download the save states. Locate the folder. Disable Rebel Pursuit - Advanced Edition. FTL: Faster Than Light files. Uploaded: 03 Jun 2014.

(Redirected from Modding Ships)
Modding
Modding guide
Events file structure
Ships
Continue.sav
Mod manager
Mods

Ship data is divided between several files. For example, the Kestrel has a kestral.txt (sic) that details the room/door layout, a kestral.xml file for explosion data and position of weapon slots, and an entry in blueprints.xml defining the game data of the ship.

A ship editor GUI is in development.

Another editor has already been released, but it lacks many key features, such as loading the XML file.

Yet another ship editor - Superluminal - is available and constantly updated. Allows the user to modify pretty much every property of a ship.

Graphics[edit]

FilenameDescription
(ship)Indicates the ship's name.

Example, Zoltan A is 'energy_cruiser' Thus 'energy_cruiser_base.png', etc.

(ship)_base.pngThe base image file of the ship, seen when no rooms are displayed.
(ship)_floor.pngThe gray background image behind rooms. Used only on player ships.
(ship)_gib#.pngThe pieces that are displayed when a ship breaks apart. '#' is 1-6 for player ships, 1-4 for enemy ships.
(ship)_cloak.pngThe pale outline when a ship engages its cloaking device.

A <cloakImage>(another_ship)</cloakImage> can be included in the ship's blueprint file, to make it use another ship's cloak graphic.
Cloak images are 10 pixels bigger in every direction than base images. For example, a 200x200 ship graphic should have a 220x220 cloak image. Otherwise, the cloak image is stretched in-game to match these dimensions.

(ship)_shields1.pngThe shields displayed for a particular ship.

A <shieldImage>(another_ship)</shieldImage> can be included in the ship's blueprint file, to make it use another ship's shield graphic.


TXT File[edit]

CodeDescription
X_OFFSET
<number>[<number>*35 offsets the entire ship in the X axis]
Y_OFFSET
<number>[<number>*35 offsets the entire ship in the Y axis]
HORIZONTAL
<number>[<number> offsets the entire ship in the X axis by this many pixels. Has no apparent effect on enemy ships]
VERTICAL
<number>[<number> offsets the entire ship in the Y axis by this many pixels]
ELLIPSE[The shield graphic uses these parameters. Also determines the collision perimeter and orbit on which defense drones move.]
<width>[Actually half of the ellipse's final width.]
Does not affect the width of player ships' shield graphic.
<height>[Actually half of the ellipse's final height.]
Does not affect the height of player ships' shield graphic.
<x-offset>[Offsets the shield graphic by <x-offset> pixels.]
<y-offset>[Offsets the shield graphic by <y-offset> pixels.]
ROOM
<id>[Unique ID]
<x>[How many tiles from 0 the room is on the X-axis]
<y>[How many tiles from 0 the room is on the Y-axis]
<w>[How wide is the room, in tiles]
<h>[How tall is the room, in tiles]
DOOR
<x>[How many tiles from 0 the door is on the X-axis]
<y>[How many tiles from 0 the door is on the Y-axis]
<Left/Top room ID>[ID of the room to the left, or top, of this door.]
Value of -1 means the door functions as an airlock, and will drain oxygen from the other room when opened.
<Right/Bottom room ID>[ID of the room to the right, or bottom, of this door.]
Value of -1 means the door functions as an airlock, and will drain oxygen from the other room when opened.
<vertical/horizontal>[Determines whether the door is vertical or horizontal.]
0 = door is horizontal, 1 = door is vertical. Door always snaps to the left or top wall of the tile at which it is located.

Note
It's possible to move between two rooms as long as there is a door that links them, no matter which ID is used.
However, airlocks will not work that way.
For this reason, it is better to link rooms using the following logic -- it guarantees that both rooms and airlocks will work correctly:

XML File[edit]

CodeDescription
<img x='#' y='#' w='#' h='#'/>Determines the size and X/Y offeset of (ship)_base.png
X=Slides the base image left (negative value) or right (positive value)
Y=Slides the base image up (negative value) or down (positive value)
W=The width of the (ship)_base.png

Can cause stretching if set higher or lower than actual (ship)_base dimensions

H=The height of the (ship)_base.png

Can cause stretching if set higher or lower than actual (ship)_base dimensions

<weaponMounts>
<mount x='#' y='#' rotate='true' mirror='false' gib='#' slide='down'/>Determines the placement and movement of ship-mounted weaponry.
X= / Y=X,Y Coordinates determine where the weapon appears on the ship.

Origin (0,0) is determined by the top-left corner of (ship)_base.png and is not affected by <img> offset values

Note:All default weapon sprites face upwards with mounting points to the left.
rotate=True - Turns the weapon sprite 90 degrees clockwise. Used on player ships to make weapons face right.

False - Weapon remains vertically aligned. Used on enemy ships to keep weapons facing up.

mirror=True - Flips the weapon horizontally. Used for player weapons on the top of ships / Enemy weapons on left side.

Independent of rotate= tagFalse - Weapon sprite maintains original orientation.

gib=The chunk of ship the weapon remains attached to when destroyed.

Allows weapon to 'drift' with destroyed wreckage.

slide=Determines which way the weapon moves when powered up.

Accepted values are Up , Down , Left , Right , No

</weaponMounts>
<explosion>
<gib#>Determines alignment of (ship)_gib#.png, and movement during ship destruction
<velocity min='0.6' max='1'/>Determines speed of gib movement. Game randomly selects a value between minimum / maximum values.
<direction min='60' max='120'/>Direction of gib movement. Values between 0-360, rotational. Negative values allowed. Value of 0 is equivalent to facing north.

Helps create image of ship blowing apart, rather than collapsing in on itself. Direction of gibs should face outwards from center.

<angular min='-0.4' max='-0.1'/>Creates 'spin' on gib chunks, causing rotation as pieces move away. Value of 10 is equivalent to a full revolution.
<x>0</x>Horizontal offset, determined from origin of (ship)_base
<y>0</y>Vertical offset, determined from origin of (ship)_base
</gib#>
</explosion>

Blueprint XML File[edit]

CodeDescription
<shipBlueprint name='PLAYER_SHIP_HARD' layout='kestral' img='kestral'>layout determines the name of the .txt and .xml files associated with the ship
img determines the base name of image files associated with the ship
<class>Kestrel Cruiser</class>Name of spaceship in selection screen.
<name>The Kestrel</name>Default name for spaceship.
<desc>This class of ship was decommissioned .../desc>Description of ship in selection screen.
<systemList>List of systems that are installed or could be installed in the ship.
<pilot power='1' room='0' start='true' img='room_pilot'>room: Room ID as described in TXT file.
power: Initial level of associated system.
start: Ship starts with this system installed.
img: Image for room.
<slot>

<direction>right</direction>
<number>0</number>
</slot>

Slot for the position of the system operator. 0 - upper left, 1 - upper right, 2 - lower left, 3 - lower right.
</pilot>
<doors power='1' room='2' start='true' img='room_doors'/>
<sensors power='1' room='3' start='true' img='room_sensors'/>
<medbay power='1' room='4' start='true' img='room_medbay'>
<slot>

<number>1</number>
</slot>

slot for medbay defines which slot is blocked - '-2' means no blocked slot.
</medbay>
<oxygen power='1' room='13' start='true' img='room_oxygen'/>
<shields power='2' room='5' start='true' img='room_shields'/>
<engines power='2' room='14' start='true' img='room_engines'/>
<weapons power='3' room='10' start='true' img='room_weapons'/>
<drones power='2' room='1' start='false'/>
<teleporter power='1' room='15' start='false'/>
<cloaking power='1' room='8' start='false'/>
</systemList>
<weaponSlots>4</weaponSlots>Max weapon slots for ship. Requires weapon system to be installed.
<droneSlots>2</droneSlots>Max drone slots for ship. Requires drones system to be installed.
<weaponList count='2' missiles='8'>Weapons this ship starts with.
missiles: Number of initial missiles.
<weapon name='MISSILES_2_PLAYER'/>
<weapon name='LASER_BURST_3'/>
</weaponList>
<droneList count='3' drones='6'>Drones this ship starts with.
drones: Number of initial drone parts.
<drone name='BATTLE'/>
<drone name='REPAIR'/>
<drone name='REPAIR'/>
</droneList>
<health amount='30'/>Initial ship health.
<maxPower amount ='8'/>Initial max power.
<crewCount amount = '3'/>Start with <amount> number of <class>. This may be listed more than once for mixed-race ships.
</shipBlueprint>


Notes[edit]

  • Slots are numbered progressively in rows, beggining at the top left corner, and ending at bottom right corner. For example, in a 2x2 room, slots in top row would be numbered 0 and 1, while in a 3x2 room 0, 1 and 2, with bottom row having numbers 3, 4 and 5.
  • Man-able systems and medbay have default slots, for when they're not explicitly defined in the blueprints file.
SystemDefault slot and direction
Pilot0, right
Weapons1, up
Shields0, left
Engines2, down
Medbay1, N/A
Because of this, systems that are assigned to small enough rooms without an explicitly defined slot will bug, making the station inaccessible.
  • If a ship has artillery system, but doesn't have a weapon mount assigned to it, the artillery weapon will shoot from beyond the screen, left-hand side. For the graphic to show up properly, the ship's xml file has to have five weapon mounts declared, the fifth mount being the artillery weapon.
  • If a ship has no crew declared in blueprint file, it is considered an automated ship, with all systems appearing manned by non-experienced crew.
  • For player ships, all systems except artillery have to be declared. If a system declaration is not present, it will bug - it won't be available at the start, but it will be purchaseable, and once the player buys the system at a store, it won't show up on the ship, systems interface nor in the upgrade tab.
  • Shield graphic uses the ellipse properties in ship's .txt file; offset applies for both player and enemy ships, but the graphic's dimensions only affect enemy ships' shields.
  • Shield mechanic is collision based; the ellipse property in .txt file is used to determine the collision perimeter. If a ship's room is not inside this ellipse, it will be possible to hit it even if the shields are raised (as long as the missile comes at such an angle that it won't collide with ellipse prior to reaching its target).
Retrieved from 'https://www.ftlwiki.com/w/index.php?title=Modding_ships&oldid=4165'

Hi, all! FTL is an awesome game, isn't it? So many different ships toplay with, so many different weapons to try out, so many encounters.

But if you play it a lot, you may find yourself wanting to go beyondthose limits. Wanting to make up your own ships, weapons, events.Fortunately, FTL is a very moddable game, thanks to some great toolsthe modding community have written.

I'm here to teach you how to create a ship for yourself. There's ahandy utility called FTLEdit written by Darkfrost,and we're goingto use that to do some of the work for us, but we'll still have to doquite a bit ourselves. (There's another editor too, called FTL Ship Creator andwritten by tazardar, but I haven't tried that one.)

If you instead want to create enemy ships, to attack the playerrather than for the player to use, then a lot of this guide will stillapply, but bits of it won't. You'll have to explore a bit more.

Ready to create a new playable ship? Then let's get started.

Step 1: Install FTLEdit, GMM and a Mod

There are a couple of required steps before you actually startmodding. There are certain conditions under which all FTL mods must bedistributed, that basically mean using Grognak's Mod Manager(GMM) is a must. You're going to need to have GMM working ifyou ever want to distribute your mod, and it does some useful thingsto the data files too; not to mention it lets you try out every othermod in the FTL mods forum. So you'll need to install it. A couple of tips:

  • Download FTLEdit from here and GMM from here.
  • When you've unzipped GMM, put it in the same directory thatftlgame.exe is in. (You can find this by right-clicking the FTL shortcut to start the game,clicking Properties, and clicking Find Target or Open File Location. ForSteam installs, look in C:Program Files (x86)SteamsteamappscommonFTL Faster Than Light, or perhaps without the (x86).) When you find ftlgame.exe, I'll call that directory your FTL installdirectory. After you put the contents of the GMM zip there, this directory shouldcontain modman.exe, ftlgame.exe, and a number of subdirectoriesincluding resources/ and mods/ .
  • I can't provide tech support for these utilities. For problems withGMM ask in the GMM thread.

When you've got them installed, check it's working. Run GMM, click'Beginning Scrap Advantage', click Patch. When GMM finishes, launchFTL (you may have to do it directly rather than letting GMM launch itfor you), and start a new game: if you see a blue option saying '(Mod) Strip a near-by asteroid for scrap', the mod is installed!

Since you'll be creating a .ftl mod, and .ftl files are renamed .zipfiles, you'll also need a zip program installed. I recommend7Zip, but WinZip will do fine as well.

Step 2: Design

Okay. With those preliminaries out of the way, time to move on toactual mod design!

The first step is: Figure out what you want your ship to do! Plan theimage you're going to use for the ship, what weapons and crew anddrones you want the ship to have, any augments, what systems you wantto start off levelled-up or have absent entirely.

Ftl More Scrap Mod 1.8.9

Step 3: Draw the Graphics

Obviously you'll need to draw the ship. Where 'draw' may mean draw in a graphics program, or it may meanextract them from some other source. For my Starcraft mod, this meantloading the Starcraft editor, zooming in on one ship, taking ascreenshot and then tidying it up in GIMP.

It's worth knowing what you're aiming for. If you look at the imagesfor the built-in ships, they're all between 400x400 and about 700x400pixels. (If you don't know where to find those images, they're in yourFTL install directory, under resources/resources.dat-unpacked/img/ship. Take a look at all the images in this directory – it's prettyhelpful and interesting.)

Ftl Scrap Cheat

You'll also want at this point to give a little consideration to mountpoints: where do you want the weapons to appear on the outside of yourship?

Step 4: Floor Plan in FTLEdit

Now it's time to fire up FTLEdit. If you haven't launched it before,then once it loads you'll need to click Options and specify the pathto where your FTL install is. If you've run GMM as I told you to, theresources directory ought to contain unpacked versions of data.dat andresources.dat. This is what you need to point FTLEdit at. There's no OK button in this dialog - just close it once you've filled in the directories. You'll know it's right if you can edit an existing ship successfully.

Now, edit one of the existing ships. You should choose the ship whichyou want to replace in the hangar with your new ship. (In order foryour ship to be playable by the player, it has to replace one of the18 ships that goes in the hangar.)

FTLEdit will open with the floor layout of that ship. Now do the following:

  • Click 'Show floor' to remove the grey background to the rooms.
  • Click each room and door in turn and press the Delete key.
  • Click 'Load base', and browse to the image you created earlier. Use'Move base' to position the ship image behind the grid.
  • Draw the rooms using 'Add room'. Click-and-drag to initially size aroom; right-click-and-drag to resize. I recommend you first place allthe rooms, and only then add all the doors using 'Add door'.
  • Add systems using the system icons for weapons, shields, etc. Youneed to specify which room will have a system even if you don't wantthe ship to start with that system. If you leave any systemsunplaced, the ship will be unable to ever gain that system evenif the player buys the system in a shop.

Step 5: Options in FTLEdit

Click FTLEdit's Options button. Drag the dialog to somewhere thatisn't overlapping the main FTLEdit window. Now go through the optionsfor crew, weapons, drones etc, adjusting them as you like. A fewnotes:

  • In the 'Important ship settings' section, it's simplest if you setthe 'Img' and 'Layout' to the same thing. For simplicity this should be all lowercase and with no spaces (but underscores _ are fine).
  • Do not change the 'ID' other than to one of the 18 ships in thehangar.

When you're done, click 'Export Ship' and 'Export the .ftl package'.This will produce a first draft of the .ftl file that will form yourmod. It's nowhere near finished, but it's a good first step. Copy the.ftl file over to your FTL install's mods/ directory. Make a backupcopy of it somewhere else as well if you like.

Step 6: Unzip the .ftl file and Add Images

Ftl More Scrap Mod

Right, it's time to fill in the gaps in what FTLEdit produced. Renameyour .ftl file to instead end .zip, and unzip it to a directorysomewhere. Go into that directory. This I'll call your mod rootdirectory. It should contain two subdirectories, data/ and img/. Theimg/ directory needs to contain a subdirectory called ship/ with allyour ship images in, but FTLEdit doesn't put them in there. So that'syour first task: copy your ship image into your mod's img/shipdirectory. Give it the name [myship]_base.png , where [myship] is whatyou specified as the 'Img' setting in FTLEdit's options.

You also need to add an image called [myship]_floor.png . For most modsthis is just an empty transparent .png file, but if you feel like ityou can draw a floor layout. If you don't have an easy way to create atransparent png, download this one and save it asmyship_floor.png in the same directory, img/ship inside your moddirectory.

Once you've done this, you ought to be able to zip up your mod into a.ftl file and try it out. It'll have a bunch of glitches that we'llfix in later stages, but it ought to be broadly playable. To turn yourmod directory into a mod and install it, these are the steps:

  • Navigate to your mod's root directory in Windows Explorer. Youshould see two directories: img/ and data/ .
  • Select both img/ and data/ (e.g. by dragging a box around both ofthem). Right-click one of them and select 'Add to zip file myship.zip'or similar.
  • When 7Zip finishes creating the archive, rename it to myship.ftl .
  • Move the .ftl file off into your FTL install's mods/ directory.
  • Run GMM. Select your mod and click Patch.
  • Launch FTL and take a look at your ship in the hangar!

Ftl More Scrap Mod 1.7.10

It's best to do this regularly. For example, after each of the remaining steps, you could do this process to testout your work.

Incidentally, if you happen to have cygwin installed, you can do allthe above with this one line:

pushd mods/myship ; zip -qr myship myship ; mv myship.zip ../myship.ftl; popd ; ./modman.exe ; ./ftlgame.exe

Step 7: Edit the Blueprint and Add Weapon Mounts

Now, inside your mod's data/ directory is a key file calledblueprints.xml.append. Open this file in a text editor (Notepad woulddo if you don't have anything else).

You ought to be able to see how the XML in this file matches up towhat you defined in FTLEdit's options screen. The power levels,weapons and so on should all match what you set. If you want to changethem, you can do that here.

In particular, if you want your ship to have fewer augments, weaponsor drones than the one you were editing had, then you'll need toremove some lines here, because FTLEdit unfortunately leaves them in.

Ftl More Scrap Mod

FTLEdit does now produce a layout xml file, including the offset,which is great as you don't have to do that yourself any more. (Makesure you have the latest version of FTLEdit, version 0.91 as of 31st December 2012, as thatstep is a real pain to do manually.) But you do still need to defineweapon mount points: that is, the places where weapon images poke outfrom behind the ship.

Ftl More Scrap Mod

This is pretty easy. Open the ship image in any image editor. Positionyour mouse cursor over the point where you want the rear corner of thefirst weapon to be. Now look at the editor's status bar for twonumbers: these are the x and y coordinates of this mount point. Notedown these numbers. Repeat for each mount point (you usually want 4).If your ship has the Artillery Beam as on the Federation Cruiser, dothe same to get an extra pair of mount point coordinates for where thebeam should fire from.

Edit the file called [myship].xml that's in the data/ directory ofyour mod root. For each mount point, add a line looking like this:

The x and y numbers are the coordinates you noted earlier. 'rotate'should usually be true: true means point to the right, false meanspoint upwards. 'mirror' should be true for weapons that pokeup-and-right (usually on top of your ship) and false for weapons that poke down-and-right (on the bottom). 'slide' indicates which direction the weapon slides out when you activate it.

Troubleshooting

If you have problems with your mod not working, the most common cause is some XML that's slightly wrong or not as FTL expects it. You need to very carefully check your XML in blueprints.xml.append and myship.xml, to make sure that every <tag> either ends with />, or is matched by a closing </tag>.

Step 8: Choose a Shield Image

You need to choose a shield image that's about the right size for yourship. Look at the existing shield images in your FTL install'simg/ship/ subdirectory – everything ending in _shields1.png. They'reall different sizes, and you want one that's big enough to encloseyour whole ship. You don't have to use the same image that thebase-game ships use, but you do need to use something that's anellipse.

If you conclude that, say, the Zoltan Cruiser's 640x400 shieldwill do – the image energy_cruiser_shields1.png – then editthe blueprint to add

(Note that you leave off '_shields1', because FTL adds that at the end.)If you're creating your own shield image file calledmyship_shields1.png , you don't need to add to theblueprint; just put the shield image in your mod's img/ship directory.

The second half of this task is to edit the ELLIPSE dimensions in themyship.txt file. This is important because if you don't change it,then no matter what the image looks like, the shield will only protectrooms within a 400x400px circle: outlying rooms can be hit even ifyour shields are up! You need to set the numbers after ELLIPSE tohalf the width and half the height of the shield image.

This would be a good time to rezip your mod and check it out again,following the same instructions as in step 6.

Step 9: Choose Room Images

You should choose or create images for the individual rooms in yourship. Go and look in resource.dat-unpacked/img/ship/interior . Allthose images are possibilities to appear in the rooms of your ship.This isn't just graphical polish, because you need to select whichspace of the crewable rooms is the one where the operator needs to go.By default, FTLEdit doesn't give sensible settings here. Room imagescome out very distorted, and some rooms can end up not crewable atall, which imposes a major gameplay penalty.

So what you need to do is bring up your ship, either in FTL with themod installed, or in FTLEdit; simultaneously open the blueprint in atext editor; and also have a thumbnails view of img/ship/interior tohand. For each of the systems and subsystems on your ship - probablyall eleven, unless you've deliberately omitted some - you need to dothe following steps.

  • Note the room's size. For example, the weapons room in your shipmight be width 2 and height 1.
  • Look in img/ship/interior for an image for that system of that size.Note that each square of a room is precisely 35x35 pixels: so in theexample we're looking for a weapons system image that's 70px wide by35px high. If you look in img/ship/interior you'll see that room_weapons_8.png is the only one of that size.
  • Edit the ship blueprint's line for that system to specify the imagein question. E.g. you should update the <weapons> line to sayimg='room_weapons_8'.
  • If the system is one of the four crewable systems – weapons,engines, shields or pilot – you need to look at the image you'vechosen and see where the computer terminal is. Note which square is itin, counting from top-left starting at 0, and which wall theterminal's against, i.e. which direction crew should face when they'reusing it. The square numbers start counting at 0 and go in readingorder, so the square numbers for a 3x2 room would be:
  • Now you need to change the blueprint lines for those crewablesystems further. In our example, the weapons terminal is in the right-hand square ofthat 2x1 room, i.e. position 1 (because we start counting at 0), and on the topwall. Change the line which before said:

    so that now it says:

    Take particular note that the line used to end /> but now it ends >.

  • You also need to do this for the medbay. By default, one square ofthe medbay is not standable-in. The setting for themedbay specifies which slot is blocked by the med computer. (Don't usea <direction> parameter for this one.) E.g. for a 2x2 medbay whose bottom-left square is blocked, you'd say

    If you don't want any slot blocked – likely to be the case if your medbay is 2 spaces or smaller– then the magic code is to use slot minus two, i.e. <number>-2</number> .

  • What if none of the existing room images fit your room? Then you'llhave to either redesign the room layout in FTLEdit to fit theavailable room images, or create a room image for your desired size.It's easy enough: just choose an image similar to the one you need,open it, expand the border to the size you want, and move bits of roomimage around until they're on the appropriate edges. Save it into yourmod's img/ship/interior directory with a new name, likeroom_weapons_51.png. Then do the same with the three coloured glowimages for the computer screen, with names room_weapons_51_glow1.png. (These should just need positioning correctly in the new border.)Then specify that new name in the blueprint: img='room_weapons_51'
  • If you're a stickler for making sure that none of the bits ofcloaking system or shield system go in front of doors, you may need toedit images to move bits around for several other room images.
  • Any images you specify that aren't the right size will bestretched or shrunk to fit. This looks awful for rooms with computerterminals, but can be okay with some others, especially the sensorsroom.
  • For 1x1 system rooms, you may want to just use img='computer', afree-standing terminal without any accoutrements around it.

Step 10: Make a Cloak Image

This technically isn't required, but if you don't do this, wheneveranyone in your ship cloaks they'll see a sudden black box appearbehind the ship.

The image you create should be a version of the ship image, but withthe edges highlighted in grey/white. Importantly, you also need toexpand it away from the border by 10px in each direction: so the cloakimage should be 20px larger than the ship image in both x and y. Ifound the following sequence of GIMP commands produced areasonable cloak image, but you can produce one however you like.

  • Open the ship image
  • Layer -> Layer Size -> increase numbers by 20
  • Image -> Fit Canvas to Layers
  • Filter -> Edge Detect -> Laplace
  • Press Shift-O for the Select by Colour tool
  • Click a transparent bit of image
  • Selection -> Invert
  • Fill tool, set tool options to fill whole selection, fill selectionwith colour #f3f3f3
  • Layer -> Duplicate Layer
  • Page Down to select the lower layer
  • Selection -> Grow -> 1 pixel
  • Selection -> Feather -> 5 pixels
  • Fill whole selection with colour #57c8fd
  • Set lower layer opacity to 50%
  • Export image as myship_cloak.png into your mod's img/ship directory

Step 11: Make Miniship Images

We're nearly done. There's still one step you should do beforereleasing your mod, which is to create a thumbnail view of your shipfor the Select Your Ship screen and the Highscores screen.

It's mainly a case of shrinking the ship image to 191 x 121 px and savingit in your mod's img/customizeUI directory. To fit the look of thebase-game ships, you should probably add a small glow behind thethumbnail. You can do this in GIMP using feathered selection similarto how I described for creating a cloak image.

Note that in the hangar's Select Your Ship screen, only the primaryversions (Type A) of each ship are shown. However, you should create thumbnailsfor any secondary versions (Type B) you overwrite too, so that they show upcorrectly in the highscores list.

Step 12: Gibs

This isn't necessary, and a lot of modders skip this step entirely.But if you want to make your ship looks nice when it explodes, then take a look at the existing ships' _gib1.png through to _gib6.png, and at the section of an existing ship's .xml file such as circle_cruiser.xml (in data.dat-unpacked), and make yourself some images for the different parts of the ship, and define the <explosion> to say which direction each of the gibs should fly off in. Note that gib1 will be on top of the rest, then gib2, and so on, down to your last gib (often gib6) which will be underneath all the others.

And Finally: Playtest!

Now you've got all the skills you need to make a ship every bit asgood as the ships in the base game. But odds are, your first designwill be missing the mark somewhere. It might be too strong, too weak,unbalanced in one way or another. The only way to find out is toplaytest it, and then playtest it some more! Keep on trying changesuntil you're happy with the quality level, and then upload the .ftlfile somewhere publicly accessible and go and post about it on theFTL Working Mods Forum!


This tutorial was written by alextfish, creator of the Starcraft mod. SDG.