Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: Null Pointer Exception (possibly because of fleetData: null, commander: null)  (Read 4015 times)

erikem

  • Lieutenant
  • **
  • Posts: 76
    • View Profile

Hi. I have this nasty bug that won't let me finish any combat. Starsector crashes with Null Pointer Exception when combat ends and before I am given any post-combat options.

Log says following:
Spoiler
114876 [Thread-6] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading ..\\saves/save_Jemima_73401664563739212...
131866 [Thread-6] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Finished loading
133111 [Thread-6] INFO  com.fs.starfarer.loading.LoadingUtils  - Loading JSON from [data/config/exerelin_config.json]
133258 [Thread-6] WARN  com.fs.starfarer.campaign.fleet.RepairTracker  - getRepairMult() warning: fleetData: null, commander: null
133258 [Thread-6] WARN  com.fs.starfarer.campaign.fleet.RepairTracker  - getRepairMult() warning: fleetData: null, commander: null
133258 [Thread-6] WARN  com.fs.starfarer.campaign.fleet.RepairTracker  - getRepairMult() warning: fleetData: null, commander: null
133258 [Thread-6] WARN  com.fs.starfarer.campaign.fleet.RepairTracker  - getRepairMult() warning: fleetData: null, commander: null
133268 [Thread-6] DEBUG com.fs.graphics.TextureLoader  - Loading image graphics/backgrounds/background1.jpg into existing tex id 317
133812 [Thread-6] DEBUG com.fs.graphics.TextureLoader  - Loaded 418,57 MB of texture data so far
133814 [Thread-6] INFO  com.fs.graphics.TextureLoader  - Cleaned buffer for texture graphics/backgrounds/background1.jpg (using cast)
350714 [Thread-6] INFO  com.fs.starfarer.combat.CombatEngine  - FP1: 140, FP2: 23, maxFP1: 240, maxFP2: 160
447811 [Thread-6] ERROR com.fs.starfarer.combat.String  - java.lang.NullPointerException
java.lang.NullPointerException
   at data.scripts.plugins.ExerelinFleetEncounterContext.applyExtendedCRLossIfNeeded(ExerelinFleetEncounterContext.java:1496)
   at data.scripts.plugins.ExerelinFleetEncounterContext.applyCREffect(ExerelinFleetEncounterContext.java:1429)
   at data.scripts.plugins.ExerelinFleetEncounterContext.applyShipLosses(ExerelinFleetEncounterContext.java:1400)
   at data.scripts.plugins.ExerelinFleetEncounterContext.applyResultToFleets(ExerelinFleetEncounterContext.java:1316)
   at data.scripts.plugins.ExerelinFleetEncounterContext.processEngagementResults(ExerelinFleetEncounterContext.java:99)
   at data.scripts.plugins.ExerelinFleetInteractionDialogPluginImpl.backFromEngagemen t(ExerelinFleetInteractionDialogPluginImpl.java:113)
   at com.fs.starfarer.campaign.A.???000(Unknown Source)
   at com.fs.starfarer.OoOO.???000(Unknown Source)
   at com.fs.super.oOOO.?00000(Unknown Source)
   at com.fs.starfarer.combat.String.o00000(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:619)
[close]

Here's save descriptor:
Spoiler
<?xml version="1.0" ?>
<SaveGameData>
  <portraitName>graphics/portraits/portrait_bushi_1.png</portraitName>
  <characterName>Jemima</characterName>
  <saveFileVersion>0.3</saveFileVersion>
  <characterLevel>10</characterLevel>
  <compressed>true</compressed>
  <isIronMode>false</isIronMode>
  <gameDate>
    <secondsPerDay>10.0</secondsPerDay>
    <cycle>206</cycle>
    <month>11</month>
    <day>9</day>
    <hour>16</hour>
    <elapsed>0.0</elapsed>
  </gameDate>
  <saveDate>2013-10-13 14:51:42.708 UTC</saveDate>
  <allModsEverEnabled>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>blackrock_driveyards</id>
        <version>0.42</version>
        <desc>* Requires LazyLib * BLACKROCK INTERSTELLAR AUTHORITY ENCOURAGES THE EXPORT OF BLACKROCK ARMS AND HULLS FOR THE CONTINUED PROSPERITY OF BLACKROCK-LODESTONE.</desc>
        <name>Blackrock Driveyards</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Blackrock Driveyards created by Cycerin. Java scripting by LazyWizard and EnderNerdcore. Campaign implementations by Uomoz.</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Blackrock Drive Yards</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>bushi</id>
        <version>1.2.0</version>
        <desc>--------------- * Requires LazyLib * ------------------------------------ Bushi is a self-replicating android. Thanks to its ill programming it is set to destroy all organic life in order to safeguard its own future. The threat grows as Bushi's numbers have been estimated to be in the tens of thousands.</desc>
        <name>Bushi</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Gotcha!</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Bushi</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.world.BushiModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>exerelin</id>
        <version>0.61</version>
        <desc>Choose your banner and fight for supremacy of sector Exerelin!</desc>
        <name>Exerelin</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Zaphide</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Exerelin</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.ExerelinModPlugin</modPluginClassName>
        <fullOverrides>
          <string>data/world/factions/thulelegacy.faction</string>
          <string>data/scripts/world/SectorGen.java</string>
          <string>data/world/factions/neutral.faction</string>
          <string>data/world/factions/directorate.faction</string>
          <string>data/world/factions/hiigaran_descendants.faction</string>
          <string>data/world/factions/insurgency.faction</string>
          <string>data/world/factions/syndicate_asp.faction</string>
          <string>data/world/factions/tradeguild.faction</string>
          <string>data/variants/relics_plower_Standard.variant</string>
          <string>data/world/factions/nihil.faction</string>
          <string>data/variants/relics_pusher_Standard.variant</string>
          <string>data/hulls/relics_extinctioner.ship</string>
          <string>data/world/factions/blackrock_driveyards.faction</string>
          <string>data/world/factions/junk_pirates.faction</string>
          <string>data/world/factions/regime.faction</string>
          <string>data/variants/relics_solver_Standard.variant</string>
          <string>data/world/factions/valkyrian.faction</string>
          <string>data/world/factions/rebel.faction</string>
          <string>data/world/factions/hegemony_core.faction</string>
          <string>data/variants/relics_egler_Standard.variant</string>
          <string>data/hulls/relics_faithoper.ship</string>
          <string>data/scripts/plugins/CharacterCreationPluginImpl.java</string>
          <string>data/world/factions/interstellarFederation.faction</string>
          <string>data/world/factions/antediluvian.faction</string>
          <string>data/variants/relics_carrioner_Standard.variant</string>
          <string>data/variants/relics_ringer_Standard.variant</string>
          <string>data/world/factions/gedune.faction</string>
          <string>data/world/factions/scrappers.faction</string>
          <string>data/variants/relics_sidewayer_Standard.variant</string>
          <string>data/world/factions/ceredia.faction</string>
          <string>data/campaign/resources.json</string>
          <string>data/world/factions/minefaction.faction</string>
          <string>data/world/factions/isora.faction</string>
          <string>data/world/factions/qualljom.faction</string>
          <string>data/hulls/relics_queen.ship</string>
          <string>data/variants/relics_intersepter_Standard.variant</string>
          <string>data/world/factions/bushi.faction</string>
          <string>data/world/factions/neutrinocorp.faction</string>
          <string>data/world/factions/shadoworder.faction</string>
          <string>data/world/factions/abandoned.faction</string>
          <string>data/world/factions/zorg.faction</string>
          <string>data/world/factions/shadow_industry.faction</string>
          <string>data/world/factions/elder.faction</string>
          <string>data/variants/relics_arwar_Standard.variant</string>
          <string>data/world/generators.csv</string>
          <string>data/world/factions/lotus_pirates.faction</string>
        </fullOverrides>
        <jars>
          <string>jars/Omnifactory.jar</string>
          <string>jars/ExerelinHacks.jar</string>
          <string>jars/ExerelinPlugins.jar</string>
          <string>jars/ExerelinUtilities.jar</string>
        </jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>GalatiaC</id>
        <version>1.0</version>
        <desc>Galatia Complete is the Ultimate space faring music collection for Starsector. Adds 69 Campaign Music Tracks, 11 Title Screen Music Tracks, and 34 Combat Music Tracks</desc>
        <name>Galatia Complete</name>
        <gameVersion>0.54a</gameVersion>
        <author>Computica</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Galatia Complete</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>hiigaran_descendants</id>
        <version>1.0.0</version>
        <desc>--------------- * Requires LazyLib * ------------------------------------ Descended from a planet called 'Hiigara', the Hiigarans made it to this part of the universe hundreds of years ago, during the Great Exile. Using their technological knowledge that was brought along from home, they now try to get by, avoiding conflict but readying themselves for the day the Hiigaran people will again be hunted.</desc>
        <name>Hiigaran Descendants</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Gotcha!</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Hiigaran Descendants</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.world.HiiModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>junk_pirates</id>
        <version>1.63</version>
        <desc>Some pirates have been stealing tech and creating ships and weapons platforms to increase their ability to further steal technology (makes you wonder why they bother?). Play with these crazy guys.</desc>
        <name>Junk pirates, Ship and mission mod</name>
        <gameVersion>0.6.1a</gameVersion>
        <path>D:\Games\Starsector\starsector-core\..\mods\junk_pirates</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.world.JunkPiratesModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>kadurtheocracy</id>
        <version>1.1.7b</version>
        <desc>Adds two new factions, three new systems, and associated ships/weapons/stations/planets. Integrates with the Gedune, Blackrock Driveyards, ASP Syndicate, Shadowyards Heavy Industries, and Junk Pirates and should be compatible with all other non-total conversion mods! Exerelin and Uomoz-compatible!</desc>
        <name>Kadur Theocracy</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Vayra</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Vayra</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.VayraModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>lw_lazylib</id>
        <version>1.6b</version>
        <desc>A collection of libraries to aid with modding. Not a mod in itself, but required by certain other mods.

This release is targeted towards Starsector version 0.6a.</desc>
        <name>LazyLib</name>
        <gameVersion>0.6a</gameVersion>
        <author>LazyWizard</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\LazyLib</path>
        <totalConversion>false</totalConversion>
        <utility>true</utility>
        <modPluginClassName>org.lazywizard.lazylib.LazyLib</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars>
          <string>jars/LazyLib.jar</string>
        </jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>shadow_ships</id>
        <version>0.4.2.2</version>
        <desc>=Requires LazyLib= Adds the Shadowyards Heavy Industries faction and related ships.</desc>
        <name>Shadowyards Heavy Industries Mod</name>
        <gameVersion>0.6.1a</gameVersion>
        <path>D:\Games\Starsector\starsector-core\..\mods\shadow_ships</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.ShadowyardsModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>The Gedune</id>
        <version>Version 1.3</version>
        <desc>More GREEN! Very mean. The Gedune want your scrap, and possibly your ships. Will you stand up to them?</desc>
        <name>The Gedune</name>
        <gameVersion>0.6a</gameVersion>
        <author>Hyph_k31, and Ghoti</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\Gedune</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.GeduneModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>nomads</id>
        <version>0.9.3</version>
        <desc>The Nomad Armada wanders about</desc>
        <name>The Nomads</name>
        <gameVersion>0.6.1a</gameVersion>
        <author>Trylobot</author>
        <path>D:\Games\Starsector\starsector-core\..\mods\nom</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.TheNomadsModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec>
        <id>zorg</id>
        <version>V15e</version>
        <desc>The Zorg are here to assimilate your gameplay.</desc>
        <name>Zorg</name>
        <gameVersion>0.6a</gameVersion>
        <path>D:\Games\Starsector\starsector-core\..\mods\Zorg15e</path>
        <totalConversion>false</totalConversion>
        <utility>false</utility>
        <modPluginClassName>data.scripts.ZorgModPlugin</modPluginClassName>
        <fullOverrides></fullOverrides>
        <jars></jars>
      </spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
  </allModsEverEnabled>
  <enabledMods>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[2]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[3]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[4]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[5]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[6]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[7]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[8]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[9]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[10]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[11]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
    <com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
      <spec reference="../../../allModsEverEnabled/com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData[12]/spec"></spec>
    </com.fs.starfarer.campaign.ModAndPluginData_-EnabledModData>
  </enabledMods>
</SaveGameData>
[close]

Although log says that it fails at "data.scripts.plugins.ExerelinFleetEncounterContext.applyExtendedCRLossIfNeeded(ExerelinFleetEncounterContext.java:1496)" I think it might be something generic because of: "WARN  com.fs.starfarer.campaign.fleet.RepairTracker  - getRepairMult() warning: fleetData: null, commander: null". Seems like fleetData is not pointing to my fleet (if it should).
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24112
    • View Profile

Hi - looks like this crash is in the code for the Exerelin mod. Could you post this in the mod's thread instead?
Logged

erikem

  • Lieutenant
  • **
  • Posts: 76
    • View Profile

Thx for the confirmation. Sure I will.
Logged

Zaphide

  • Admiral
  • *****
  • Posts: 799
    • View Profile

Hi Alex,

Not to resurrect this as I have no more info but I did have a look. Somehow a number of FleetMember's have a null value returning for getFleetCommander as per this line in ExerelinFleetEncounterContext:
Code
MutableCharacterStatsAPI stats = member.getFleetCommander().getStats();
(the variable member is used a few lines above and doesn't throw a NullPointerException so I'm assuming the member variable is OK)

Although this is in Exerelin's version of the FleetEncounterContext, in this section it should be no different than the StarSector core version (in fact the only change in FleetEncounterContext at all was some loot calculation stuff).  Possibly something else in Exerelin (or another mod) is causing the issue, as I believe that this line is just a symptom rather than the problem.

Note the issue is not on all ships. Erikem provided me a save (and all the mods) and I could happily engage combat with only 1 or a few ships; it was only when deploying every ship that the crash occurred every time. I couldn't see an issue in the save file but I'm not 100% sure what I am looking for.

I assume that Erikem would be happy to provide the save and mod files if required.

Logged

erikem

  • Lieutenant
  • **
  • Posts: 76
    • View Profile

I'm not feeling too much personal about saves and mods so here they are.

Here's the link to my saves:
https://www.dropbox.com/s/tier470v94gidkx/saves.rar

And here's the link to my mods (except for Galatia coz it's huuuge):
https://www.dropbox.com/s/i9w9zfq7nsln1ff/mods.rar
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24112
    • View Profile

Thanks for the save!

Hm. Can't seem to reproduce the problem, though. What I do is: 1) find a battle 2) deploy everything (losing enough stuff so that it's possible to do so) and select "send out salvage crews" when it ends.


(Side note: man, the compilation of all the various scripts in the mods makes the loading take a *long* time. Jar files = good; if possible.)
Logged

erikem

  • Lieutenant
  • **
  • Posts: 76
    • View Profile

That's strange... I suppose asking questions like "did u enable all mods I used?" or "do you use latest available for players Starsector version?" is silly so I won't ask them.

I've actually found the ship that causes the issue - it's one of those Rathan-Class destroyers. When you look at it at fleet dialogue it's CR is shown as empty. Trying to mothball it crashes the game for sure.

If all ships seem ok in ur fleet dialogue I'll make some screenshots.
Logged

Zaphide

  • Admiral
  • *****
  • Posts: 799
    • View Profile

I suspect that if the ship is destroyed the crash doesn't happen as then it won't fall into that ApplyCR method (guessing though).

Erikem what is the ships name? I can then have a look at it in the save file :)

(Side note re. jars: Yeah but then they are not so editable for (most) other people :)  )
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24112
    • View Profile

Hmm. Right, I see that now. Doesn't make sense, though - it should be impossible for a ship to end up in this state; being part of the fleet and not having the fleet data properly set for the member. Picking it up and putting it down "fixes" it, and any other way I can see of adding a ship to the fleet should avoid this problem.

Ah, well - I'll keep an eye out for this. Seeing the save helps, but the problem is figuring out how it got into this invalid state to begin with. Thanks, guys!
Logged