Star Trek: FTL

Discuss and distribute tools and methods for modding. Moderator - Grognak
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Star Trek: FTL

Postby Abs » Mon Aug 11, 2014 9:23 pm

:) Hi all,

I would like to announce a little mod I am working on that I have called Star Trek: FTL. It is focused on being an almost total conversion mod. It will be set in the time frame of the original series.

I have started making this mod [and also started modding] 6 days ago, so new features may be added to the list (or removed) as I learn more about how to mod the game.

Current Features (Click links for screenshots):

Planned Features:
  • Modify Mantis sprite sheet to look like Klingons.
  • Modify Zoltan sprite sheet to look like Romulans.

Since we can't make custom races, the following is my race legend:
  • Starfleet = Humans
  • Klingons = Mantis
  • Romulans = Zoltan
  • Betazoid = Slug
  • Gorn = Rock
  • ? = Engi
  • Tholian = Crystal
  • ? = Lanius
  • Orion Syndicate = Pirates
  • ? = Rebels

If you have any constructive suggestions/feedback, I'm more than happy to hear it!

Abs
Last edited by Abs on Tue Jan 20, 2015 4:45 pm, edited 67 times in total.
Image
Click to go to the mod's facebook page for the latest updates!
OneShot17
Posts: 35
Joined: Fri Apr 18, 2014 3:54 am

Re: Star Trek: FTL

Postby OneShot17 » Wed Aug 13, 2014 6:11 am

Looks real promising! Also, check out my Star Trek Overhaul Mod that's a little further down the list. Maybe you could help me with it... ;) Good luck!
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Re: Star Trek: FTL

Postby Abs » Mon Sep 01, 2014 9:48 pm

OneShot17 wrote:Looks real promising! Also, check out my Star Trek Overhaul Mod that's a little further down the list. Maybe you could help me with it... ;) Good luck!


Cool looking mod, OneShot17. Can't wait to see what else you do with it!

Update:
Sorry for the lack of updates - I have been on vacation for the past two weeks and got back two days ago! Since then I've created the resources I need to add my first custom enemy ship: the Klingon D7 Cruiser!

Image

One problem, I am unable to get it in the game. Is there anyone with experience adding custom enemy ships who can help me out? So far these are the steps I have taken:

1. Create the ship as an enemy ship using Superluminal v2.0.6b beta.
2. Save the ship as an ftl file.
3. Load the ship into the game using Slipstream Mod Manager.

The ship does not seem to appear ever. I have tried modifying the name of the autoBlueprints.xml.append to just autoBlueprints.xml in the hopes of overriding all the other ships, but this did not work.

Any help is much appreciated!

Abs
Image
Click to go to the mod's facebook page for the latest updates!
OneShot17
Posts: 35
Joined: Fri Apr 18, 2014 3:54 am

Re: Star Trek: FTL

Postby OneShot17 » Mon Sep 01, 2014 10:16 pm

Well, for one thing, you need an event that spawns it. For another, a bug I've encountered is that enemy ships made with Superluminal and called using an event that I write get replaced with a Rebel Rigger. It's really annoying. If you can get it to work, please help me.
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Re: Star Trek: FTL

Postby Abs » Mon Sep 01, 2014 10:27 pm

OneShot17 wrote:Well, for one thing, you need an event that spawns it. For another, a bug I've encountered is that enemy ships made with Superluminal and called using an event that I write get replaced with a Rebel Rigger. It's really annoying. If you can get it to work, please help me.


Heh....yea, I saw that you posted too.

I did the same thing you did (not use append), minus the event and only got rebel riggers too.

How did you create your events?

Abs
Image
Click to go to the mod's facebook page for the latest updates!
User avatar
kartoFlane
Posts: 1488
Joined: Mon Jan 14, 2013 10:20 pm

Re: Star Trek: FTL

Postby kartoFlane » Mon Sep 01, 2014 11:46 pm

Well, the editor only exports the <shipBlueprint> tag and nothing else, so it won't work with enemy ships right out of the box. This means that the game has the ship in its files, but nothing is telling it to load it. To do that, you have to mess with XMLs a little.

Specifically, you have to add your shipBlueprint to one of the blueprint lists -- for example, SHIPS_PIRATE, or a new, custom list.
These lists are then called by <ship> events (<ship name="PIRATE" auto_blueprint="SHIPS_PIRATE"/>) located in events_ships.xml. Which in turn are called by regular events (<ship load="PIRATE"/>), scattered throughout all the other event files.

There's also a quirk that causes the game to favor the vanilla enemy ships for some inexplicable reason, causing the new ships to appear extraordinarily rarely. Sleeper has more experience with that, since he had to overcome this hurdle when adding new enemy layouts to CE (IIRC he ended up changing all vanilla ships to have different blueprint names)

Anyhow, there's TaxiService's Mod Testing Environment, which is pretty easy to set up.

OneShot17 wrote:Well, for one thing, you need an event that spawns it. For another, a bug I've encountered is that enemy ships made with Superluminal and called using an event that I write get replaced with a Rebel Rigger. It's really annoying. If you can get it to work, please help me.

That's because by removing the .append extension, you're effectively replacing the stock autoBlueprints.xml, so that it only contains your <shipBlueprint> and nothing else.
So since the game can't find the lists that events are referencing, it loads the default, crash-protection blueprint (located in blueprints.xml), which is, incidentally, the Rebel Rigger.
Superluminal2 - a ship editor for FTL
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Re: Star Trek: FTL

Postby Abs » Tue Sep 02, 2014 12:12 am

kartoFlane wrote:Well, the editor only exports the <shipBlueprint> tag and nothing else, so it won't work with enemy ships right out of the box. This means that the game has the ship in its files, but nothing is telling it to load it. To do that, you have to mess with XMLs a little.

Specifically, you have to add your shipBlueprint to one of the blueprint lists -- for example, SHIPS_PIRATE, or a new, custom list.
These lists are then called by <ship> events (<ship name="PIRATE" auto_blueprint="SHIPS_PIRATE"/>) located in events_ships.xml. Which in turn are called by regular events (<ship load="PIRATE"/>), scattered throughout all the other event files.

There's also a quirk that causes the game to favor the vanilla enemy ships for some inexplicable reason, causing the new ships to appear extraordinarily rarely. Sleeper has more experience with that, since he had to overcome this hurdle when adding new enemy layouts to CE (IIRC he ended up changing all vanilla ships to have different blueprint names).


Yep...saw that after digging around the files a bit more. So I've modified the autoBlueprints.xml (no append) file as follows:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>

<blueprintList name="WEAPONS_REBEL">
   <name>LASER_BURST_1</name>
   <name>LASER_BURST_2_A</name>
   <name>LASER_BURST_3</name>
   <name>LASER_BURST_5</name>
   <name>LASER_HEAVY_1</name>
   <name>LASER_HEAVY_2</name>
   <name>MISSILES_1</name>
   <name>MISSILES_2</name>
   <name>MISSILES_3</name>
   <name>MISSILES_BREACH</name>
   <name>BEAM_1</name>
   <name>BEAM_2</name>
   <name>BOMB_1</name>
</blueprintList>

<blueprintList name="SHIPS_FED">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHPS_REBEL_AND_AUTO">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_REBEL">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_REBEL_ELITE">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_AUTO">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_JELLY">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_MANTIS">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_ROCK">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_ROCK_PIRATE">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_CIRCLE">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_ZOLTAN">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_ZOLTAN_PIRATE">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_CRYSTAL">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_CIVILIAN">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<blueprintList name="SHIPS_PIRATE">
   <name>Klingon_D7_Cruiser</name>
</blueprintList>

<shipBlueprint name="Klingon_D7_Cruiser" layout="Klingon_D7" img="Klingon_D7">
   <class>D7 Cruiser</class>
   <minSector>1</minSector>
   <maxSector>8</maxSector>
   <systemList>
      <artillery power="1" max="4" room="1" start="false" weapon="ARTILLERY_FED" />
      <cloaking power="1" max="3" room="8" start="true" />
      <engines power="1" max="10" room="4" start="true" />
      <oxygen power="1" max="3" room="2" start="true" />
      <pilot power="1" max="3" room="0" start="true" />
      <sensors power="1" max="3" room="7" start="true" />
      <shields power="1" max="10" room="3" start="true" />
      <teleporter power="1" max="3" room="6" start="false" />
      <weapons power="1" max="10" room="5" start="true" />
   </systemList>
   <weaponSlots>2</weaponSlots>
   <droneSlots>0</droneSlots>
   <!-- weaponList missiles="0" count="2" load="OVERRIDE_WEAPONS_AUTO" -->
   <weaponList missiles="0" count="2" load="WEAPONS_REBEL" />
   <droneList drones="0" count="0" />
   <health amount="30" />
   <maxPower amount="25" />
   <crewCount amount="4" max="8" class="rock" />
   <boardingAI>invasion</boardingAI>
</shipBlueprint>


...and I finally saw it (albeit a little off center). I guess I just have to work backwards a bit more and try and figure out why it didn't appear before. I had tried only replacing the rebel classes (auto, and otherwise), but this didn't seem to work.

kartoFlane, while I have you here, can I ask one more question?

I created this ship with your ship editor. What do I need to do to combine these two ships into one mod? My only question is: how do I handle the different room.xml.append files, as both their content appears similar. Is it okay to merge them?

Constitution class ship:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>

<roomLayout name="Pilot">
   <computerGlow x="54" y="43" dir="RIGHT" />
</roomLayout>


D7 Cruiser:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>

<roomLayout name="pilot">
   <computerGlow x="19" y="9" dir="RIGHT" />
</roomLayout>


Thanks again for your help!

Abs
Image
Click to go to the mod's facebook page for the latest updates!
User avatar
kartoFlane
Posts: 1488
Joined: Mon Jan 14, 2013 10:20 pm

Re: Star Trek: FTL

Postby kartoFlane » Tue Sep 02, 2014 12:29 am

Regarding the off-center thing, that's probably because your ship has non-zero X_OFFSET/Y_OFFSET values. For enemy ships they should always be 0. Generally Edit > Calculate Optimal Offset should be enough to center the ship. You can preview how the ship will look in-game by going to View > Show Hangar ('H' by default)

Regarding rooms.xml, the name attribute specifies the name of the interior image that the <roomLayout> tag is tied to (eg. room_Pilot.png). I don't know if FTL is case-sensitive about file names, though. It's probably best to rename the images and their references to make them more distinct, like pilot_constitution and pilot_d7, and then proceed with the merge.
Superluminal2 - a ship editor for FTL
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Re: Star Trek: FTL

Postby Abs » Tue Sep 02, 2014 12:36 am

Man, you're awesome. I didn't think to use the 'show hangar' on enemy ships. Auto-calculating the offsets seems to have done it (at least in your ship editor). I'm off to do some testing in-game now.

Abs

PS: Just wanted to take a minute to thank you for all your hard work on the ship editor. This issue was frustrating me, so I went back to the last page of the forums and began working my way backward looking for a solution. Modding this game would be a hundred times harder without your application. You rule!
Image
Click to go to the mod's facebook page for the latest updates!
Abs
Posts: 82
Joined: Tue Aug 05, 2014 10:01 am

Re: Star Trek: FTL

Postby Abs » Thu Sep 04, 2014 8:04 pm

Hi all,

Just wanted to take a minute and share the Facebook page that I've made for this mod: https://www.facebook.com/STFTL

I'll be posting photos, getting feedback, and providing betas here. My posts there will be more frequent than the forums, as I'll only post big posts here.

Cheers,

Abs
Image
Click to go to the mod's facebook page for the latest updates!