Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.97a is out! (02/02/24); New blog post: Anubis-class Cruiser (12/20/24)

Pages: 1 ... 23 24 [25] 26 27 ... 29

Author Topic: [0.97a] Second-in-Command | A full-scale skill system rework  (Read 136296 times)

Reshy

  • Admiral
  • *****
  • Posts: 1154
  • White
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #360 on: December 06, 2024, 05:09:55 AM »

I did have a question, why was Continuous Repairs made to be so much worse than Hull Restoration?  It seems nearly impossible to get rid of D-Mods with Second In Command Installed, nor is there a good way to avoid accruing D-Mods ( Given the general increase in difficulty of opposing fleets, avoiding casualties is considerably harder).  So if you are playing in large encounters, which you will be, recovering your destroyed ships is almost not even worth it because there's no way you can get it into an operational level, it's just better to strip it and scrap it and buy a new one.  Is that the intent of the second in command mod?
« Last Edit: December 06, 2024, 05:17:12 AM by Reshy »
Logged

Phenir

  • Admiral
  • *****
  • Posts: 1082
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #361 on: December 06, 2024, 08:16:19 AM »

It does also come with dmod prevention. From my experience, it's not that hard to steadily get rid of dmods across the fleet even with losing ships here and there. I was mostly losing frigates though which are cheap enough to just restore. Maybe if it had prioritization for more expensive ships.
Logged

Lukas04

  • Admiral
  • *****
  • Posts: 630
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #362 on: December 06, 2024, 09:35:17 AM »

I did have a question, why was Continuous Repairs made to be so much worse than Hull Restoration?  It seems nearly impossible to get rid of D-Mods with Second In Command Installed, nor is there a good way to avoid accruing D-Mods ( Given the general increase in difficulty of opposing fleets, avoiding casualties is considerably harder).  So if you are playing in large encounters, which you will be, recovering your destroyed ships is almost not even worth it because there's no way you can get it into an operational level, it's just better to strip it and scrap it and buy a new one.  Is that the intent of the second in command mod?

Because Hull Restoration is way to good, and would just limit peoples choices when using the mod. I dont think Dmods become unmanagable with SiC, first because as Phenir mentioned, the dmod chance reduction does actually reduce the dmods you can quite a ton, and combining that with just repairing the few ships that gain to many dmods works pretty well. For playstyles that inevitibly get way to many dmods, you can use Improvisation to make good use of it (Stuff like Fleets full of Reckless/Fearless Officers/AI cores). 

I also personaly like D-Mods being more of a thing with Second-in-Command, in vanilla, due to Hull Restoration, they are just almost not a feature at all. I think playing with SiC makes you notice that most dmods, especialy when you just have 1-2, arent actually that bad at all. I do wanna see if i can solve peoples issues with the dmod overlay/hope alex improves it a bit, but will see.
Logged

Reshy

  • Admiral
  • *****
  • Posts: 1154
  • White
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #363 on: December 06, 2024, 07:17:34 PM »

I did have a question, why was Continuous Repairs made to be so much worse than Hull Restoration?  It seems nearly impossible to get rid of D-Mods with Second In Command Installed, nor is there a good way to avoid accruing D-Mods ( Given the general increase in difficulty of opposing fleets, avoiding casualties is considerably harder).  So if you are playing in large encounters, which you will be, recovering your destroyed ships is almost not even worth it because there's no way you can get it into an operational level, it's just better to strip it and scrap it and buy a new one.  Is that the intent of the second in command mod?

Because Hull Restoration is way to good, and would just limit peoples choices when using the mod. I dont think Dmods become unmanagable with SiC, first because as Phenir mentioned, the dmod chance reduction does actually reduce the dmods you can quite a ton, and combining that with just repairing the few ships that gain to many dmods works pretty well. For playstyles that inevitibly get way to many dmods, you can use Improvisation to make good use of it (Stuff like Fleets full of Reckless/Fearless Officers/AI cores). 

I also personaly like D-Mods being more of a thing with Second-in-Command, in vanilla, due to Hull Restoration, they are just almost not a feature at all. I think playing with SiC makes you notice that most dmods, especialy when you just have 1-2, arent actually that bad at all. I do wanna see if i can solve peoples issues with the dmod overlay/hope alex improves it a bit, but will see.

Okay, so that is the intent of the mod.  I'd probably disclose that up front since that's a massive change from vanilla and the mod already makes enemy fleets far tougher than vanilla additionally so losing ships and getting D-Mods happens far more often as well.    Either way I don't believe the changes fixes the centralization of the skill's issue, if anything it makes it worse since it's still affecting a random ship at a very rare rate which means you de-prioritize destroyers and frigates.  The protection against D-Mods was more than halved going from 90% at the maximum to 60% at the maximum (an effective decrease of 75%) and 75% at minimum to 30% at minimum (Well in excess of halving the effect).  More than halving the protection from d-mods is pretty extreme.  Additionally, the implementation of needing to destroy 6 Onslaughts (plus their brand new officers) to remove a single hull mod is laughably disproportionate, especially since it's still random so it's 6 onslaughts to remove a single d-mod from a single frigate.

Will comment that the "killing X DP of ships" effect also feels like it should be in the Piracy XO tree rather than starfaring (since starfaring is in every other case about maintaining your stuff and finding new stuff, not fighting other fleets).  If you wanted to make the effect itself more than a foot note I'd make it remove d-mods based off the size of the ship, something like "Every 240dp removes a d-mod from a capital, every 180 removes a d-mod from a cruiser, every 120 removes a d-mod from a destroyer, every 60 removes a d-mod from a frigate" or something to that effect.  That'd play into the pirate more aggressive playstyle versus starfaring's much more casual one.



Minor tangent here, but I feel like your automation XO's abilities for like repairing and such should benefit the entire fleet... which would reduce dependence on the starfaring XO you dislike people choosing.
« Last Edit: December 06, 2024, 07:24:28 PM by Reshy »
Logged

Lukas04

  • Admiral
  • *****
  • Posts: 630
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #364 on: December 06, 2024, 07:36:19 PM »

I did have a question, why was Continuous Repairs made to be so much worse than Hull Restoration?  It seems nearly impossible to get rid of D-Mods with Second In Command Installed, nor is there a good way to avoid accruing D-Mods ( Given the general increase in difficulty of opposing fleets, avoiding casualties is considerably harder).  So if you are playing in large encounters, which you will be, recovering your destroyed ships is almost not even worth it because there's no way you can get it into an operational level, it's just better to strip it and scrap it and buy a new one.  Is that the intent of the second in command mod?

Because Hull Restoration is way to good, and would just limit peoples choices when using the mod. I dont think Dmods become unmanagable with SiC, first because as Phenir mentioned, the dmod chance reduction does actually reduce the dmods you can quite a ton, and combining that with just repairing the few ships that gain to many dmods works pretty well. For playstyles that inevitibly get way to many dmods, you can use Improvisation to make good use of it (Stuff like Fleets full of Reckless/Fearless Officers/AI cores). 

I also personaly like D-Mods being more of a thing with Second-in-Command, in vanilla, due to Hull Restoration, they are just almost not a feature at all. I think playing with SiC makes you notice that most dmods, especialy when you just have 1-2, arent actually that bad at all. I do wanna see if i can solve peoples issues with the dmod overlay/hope alex improves it a bit, but will see.

Okay, so that is the intent of the mod.  I'd probably disclose that up front since that's a massive change from vanilla and the mod already makes enemy fleets far tougher than vanilla additionally so losing ships and getting D-Mods happens far more often as well.    Either way I don't believe the changes fixes the centralization of the skill's issue, if anything it makes it worse since it's still affecting a random ship at a very rare rate which means you de-prioritize destroyers and frigates.  The protection against D-Mods was more than halved going from 90% at the maximum to 60% at the maximum (an effective decrease of 75%) and 75% at minimum to 30% at minimum (Well in excess of halving the effect).  More than halving the protection from d-mods is pretty extreme.  Additionally, the implementation of needing to destroy 6 Onslaughts (plus their brand new officers) to remove a single hull mod is laughably disproportionate, especially since it's still random so it's 6 onslaughts to remove a single d-mod from a single frigate.

Will comment that the "killing X DP of ships" effect also feels like it should be in the Piracy XO tree rather than starfaring (since starfaring is in every other case about maintaining your stuff and finding new stuff, not fighting other fleets).  If you wanted to make the effect itself more than a foot note I'd make it remove d-mods based off the size of the ship, something like "Every 240dp removes a d-mod from a capital, every 180 removes a d-mod from a cruiser, every 120 removes a d-mod from a destroyer, every 60 removes a d-mod from a frigate" or something to that effect.  That'd play into the pirate more aggressive playstyle versus starfaring's much more casual one.



Minor tangent here, but I feel like your automation XO's abilities for like repairing and such should benefit the entire fleet... which would reduce dependence on the starfaring XO you dislike people choosing.

Its a total skill system overhaul, if i would have to mention every skill thats removed or readapted, then the mod thread would be as long as a novel. People can check out the skills before installing the mod on the wiki. The mod also does not make the game much harder, with most builds you will arguably have an easier time than vanilla. While NPCs definitly get quite the boost, they cant actually get as many skills as the player, asuming you havent set the mod to hard-mode in the configs. They will also generaly not have builds of the same quality as the player. If you feel like its to much you can reduce the difficulty config.

And yeah, Continuous Repairs is different from Hull Restoration, why would i replace it otherwise. Its not a skill for cleaning up your fleet, its one to keep the rate of dmods you gain more stable.

To the last point, dont think its needed, and i dont dislike people taking the Starfaring XO, never said i do. The Goal is to make people feel less forced to use it, which is a whole different thing. 
« Last Edit: December 06, 2024, 07:41:39 PM by Lukas04 »
Logged

Phenir

  • Admiral
  • *****
  • Posts: 1082
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #365 on: December 07, 2024, 08:37:33 PM »

Additionally, the implementation of needing to destroy 6 Onslaughts (plus their brand new officers) to remove a single hull mod is laughably disproportionate, especially since it's still random so it's 6 onslaughts to remove a single d-mod from a single frigate.
That's a disingenuous interpretation of the effect. It's just 240 dp total, it doesn't matter what that DP actually comes from. Could be freighters (so yeah, you should autoresolve those fleeing civ ships), could be like 6 tiny pirate frigate fleets in a row. Could be a full remnant ordo that actually has like 400 dp so there's a pretty good chance you actually get 2 dmods removed out of it or could be a system's worth of derelict defense fleets.
As for wasting it on frigates, spend 10-40k on repairing them first? It can't repair your frigates if they don't have dmods.
I think you'll find many of the skills are a bit nerfed here but that is made up by being able to have 3 XOs. Even if you spend a slot on piracy or starfaring (you don't have to use a logistics officer btw), I'm certain it's still an increase in player power.

Will comment that the "killing X DP of ships" effect also feels like it should be in the Piracy XO tree rather than starfaring (since starfaring is in every other case about maintaining your stuff and finding new stuff, not fighting other fleets).
To me, starfaring is the "I'm gonna explore the sector and survey and loot literally every planet I come across" tree. While you're out doing that kind of stuff, you'll definitely find some opportunities to fight stuff still. Plus I don't think pirates are really concerned with restoring their stuff, they'd probably sell the scraps they'd use to do that instead hence the credit capstone. Additionally, while there is a theme for the each skill tree, they are not intended to only be used within that theme. There's even a loading tip added that says exactly that.
Logged

Kaisi

  • Ensign
  • *
  • Posts: 10
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #366 on: December 09, 2024, 03:52:17 PM »

I like the changes to Dmod removing skill. Vanilla skill was too "must have". Actually I did feel good ditching that officer after colonizing in favour of more firepower. What could be done in the mod is to rebalance the prices for hull restoration in ports, make the service cost 5% of ship cost per dmod.
Logged

cghhj

  • Ensign
  • *
  • Posts: 45
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #367 on: December 11, 2024, 04:59:56 AM »

Eexecutive officers (Sub) of the AI fleet has no portraits (only display bg03.png).
Is is a design or bug?
Is there is any tricks to make it display AI core portraits?
Logged

Lukas04

  • Admiral
  • *****
  • Posts: 630
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #368 on: December 11, 2024, 05:16:44 AM »

Eexecutive officers (Sub) of the AI fleet has no portraits (only display bg03.png).
Is is a design or bug?
Is there is any tricks to make it display AI core portraits?

It displays Portraits on Automated Fleets just fine for me.
Were you trying to refer to a specific fleet?
Logged

cghhj

  • Ensign
  • *
  • Posts: 45
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #369 on: December 12, 2024, 04:25:51 AM »

Eexecutive officers (Sub) of the AI fleet has no portraits (only display bg03.png).
Is is a design or bug?
Is there is any tricks to make it display AI core portraits?

It displays Portraits on Automated Fleets just fine for me.
Were you trying to refer to a specific fleet?

Ah, guess related with game creation when I made localization.
A new game solved it. Thanks for reply through.
Logged

HeimrArnadalr

  • Ensign
  • *
  • Posts: 31
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #370 on: December 12, 2024, 12:48:05 PM »

I have a save that's failing to load, and I believe it's because of Second-in-Command. Here's the crash log:
Spoiler
1032759 [Thread-2] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
1032759 [Thread-2] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  - Failed calling method
---- Debugging information ----
message             : Failed calling method
cause-exception     : java.lang.NullPointerException
cause-message       : Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
method              : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class               : com.fs.starfarer.campaign.fleet.FleetMember
required-type       : com.fs.starfarer.campaign.fleet.FleetMember
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 1281804
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.util.CollectionView
required-type[2]    : com.fs.starfarer.campaign.util.CollectionView
class[3]            : com.fs.starfarer.campaign.fleet.CampaignFleetView
required-type[3]    : com.fs.starfarer.campaign.fleet.CampaignFleetView
class[4]            : com.fs.starfarer.campaign.fleet.CampaignFleet
required-type[4]    : com.fs.starfarer.campaign.fleet.CampaignFleet
class[5]            : second_in_command.SCData
required-type[5]    : second_in_command.SCData
class[6]            : com.fs.starfarer.campaign.rules.Memory
required-type[6]    : com.fs.starfarer.campaign.rules.Memory
class[7]            : java.util.ArrayList
required-type[7]    : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[8]            : shipmastery.campaign.recentbattles.RecentBattlesIntel
required-type[8]    : shipmastery.campaign.recentbattles.RecentBattlesIntel
class[9]            : com.fs.util.container.repo.ObjectRepository
required-type[9]    : com.fs.util.container.repo.ObjectRepository
class[10]           : com.fs.starfarer.campaign.comms.v2.IntelManager
required-type[10]   : com.fs.starfarer.campaign.comms.v2.IntelManager
class[11]           : com.fs.starfarer.campaign.CampaignEngine
required-type[11]   : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException: Failed calling method
---- Debugging information ----
message             : Failed calling method
cause-exception     : java.lang.NullPointerException
cause-message       : Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
method              : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class               : com.fs.starfarer.campaign.fleet.FleetMember
required-type       : com.fs.starfarer.campaign.fleet.FleetMember
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 1281804
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.util.CollectionView
required-type[2]    : com.fs.starfarer.campaign.util.CollectionView
class[3]            : com.fs.starfarer.campaign.fleet.CampaignFleetView
required-type[3]    : com.fs.starfarer.campaign.fleet.CampaignFleetView
class[4]            : com.fs.starfarer.campaign.fleet.CampaignFleet
required-type[4]    : com.fs.starfarer.campaign.fleet.CampaignFleet
class[5]            : second_in_command.SCData
required-type[5]    : second_in_command.SCData
class[6]            : com.fs.starfarer.campaign.rules.Memory
required-type[6]    : com.fs.starfarer.campaign.rules.Memory
class[7]            : java.util.ArrayList
required-type[7]    : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[8]            : shipmastery.campaign.recentbattles.RecentBattlesIntel
required-type[8]    : shipmastery.campaign.recentbattles.RecentBattlesIntel
class[9]            : com.fs.util.container.repo.ObjectRepository
required-type[9]    : com.fs.util.container.repo.ObjectRepository
class[10]           : com.fs.starfarer.campaign.comms.v2.IntelManager
required-type[10]   : com.fs.starfarer.campaign.comms.v2.IntelManager
class[11]           : com.fs.starfarer.campaign.CampaignEngine
required-type[11]   : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
   at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:82) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:278) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dCompleteItem(AbstractCollectionConverter.java:147) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryInt oMap(MapConverter.java:105) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dCompleteItem(AbstractCollectionConverter.java:147) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryInt oMap(MapConverter.java:106) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1431) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1411) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1305) ~[xstream-1.4.17.jar:1.4.17]
   at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.O.dismiss(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.impl.for.dismiss(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.save.LoadGameDialog.actionPerformed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o0O0.buttonPressed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.int.Ò00000(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.int.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o0O0.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.g$Oo.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.g.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.E.I.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.O.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.title.TitleScreenState.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source) ~[port_obf.jar:?]
   at com.fs.state.AppDriver.begin(Unknown Source) ~[port.common_obf.jar:?]
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.StarfarerLauncher.super(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source) ~[port_obf.jar:?]
   at java.base/java.lang.Thread.run(Thread.java:1575) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
   at com.fs.starfarer.campaign.fleet.CampaignFleet.getCommander(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.fleet.CampaignFleet.getCommander(Unknown Source) ~[port_obf.jar:?]
   at exoticatechnologies.util.FleetMemberUtils.getFleetCommander(FleetMemberUtils.kt:147) ~[?:?]
   at exoticatechnologies.modifications.exotics.impl.PlasmaFluxCatalyst.applyExoticTo Stats(PlasmaFluxCatalyst.kt:73) ~[?:?]
   at exoticatechnologies.hullmods.ExoticaTechHM.applyEffectsBeforeShipCreation(ExoticaTechHM.java:151) ~[?:?]
   at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.fleet.FleetMember.readResolve(Unknown Source) ~[port_obf.jar:?]
   at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
   at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
   at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:78) ~[xstream-1.4.17.jar:1.4.17]
   ... 150 more
[close]

The save was created with 1.2.11 (I think), but the failure to load happens both with 1.2.11 and 1.2.12. I can provide the save if you need it, but it's too big to attach to this post.
Logged

MFerite

  • Ensign
  • *
  • Posts: 1
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #371 on: December 12, 2024, 01:21:45 PM »

Are there a way to have skills regarding planet Admistrating/ Industry for the Player?
Logged

Lukas04

  • Admiral
  • *****
  • Posts: 630
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #372 on: December 12, 2024, 04:30:54 PM »

I have a save that's failing to load, and I believe it's because of Second-in-Command. Here's the crash log:
Spoiler
1032759 [Thread-2] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
1032759 [Thread-2] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  - Failed calling method
---- Debugging information ----
message             : Failed calling method
cause-exception     : java.lang.NullPointerException
cause-message       : Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
method              : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class               : com.fs.starfarer.campaign.fleet.FleetMember
required-type       : com.fs.starfarer.campaign.fleet.FleetMember
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 1281804
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.util.CollectionView
required-type[2]    : com.fs.starfarer.campaign.util.CollectionView
class[3]            : com.fs.starfarer.campaign.fleet.CampaignFleetView
required-type[3]    : com.fs.starfarer.campaign.fleet.CampaignFleetView
class[4]            : com.fs.starfarer.campaign.fleet.CampaignFleet
required-type[4]    : com.fs.starfarer.campaign.fleet.CampaignFleet
class[5]            : second_in_command.SCData
required-type[5]    : second_in_command.SCData
class[6]            : com.fs.starfarer.campaign.rules.Memory
required-type[6]    : com.fs.starfarer.campaign.rules.Memory
class[7]            : java.util.ArrayList
required-type[7]    : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[8]            : shipmastery.campaign.recentbattles.RecentBattlesIntel
required-type[8]    : shipmastery.campaign.recentbattles.RecentBattlesIntel
class[9]            : com.fs.util.container.repo.ObjectRepository
required-type[9]    : com.fs.util.container.repo.ObjectRepository
class[10]           : com.fs.starfarer.campaign.comms.v2.IntelManager
required-type[10]   : com.fs.starfarer.campaign.comms.v2.IntelManager
class[11]           : com.fs.starfarer.campaign.CampaignEngine
required-type[11]   : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException: Failed calling method
---- Debugging information ----
message             : Failed calling method
cause-exception     : java.lang.NullPointerException
cause-message       : Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
method              : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class               : com.fs.starfarer.campaign.fleet.FleetMember
required-type       : com.fs.starfarer.campaign.fleet.FleetMember
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 1281804
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.util.CollectionView
required-type[2]    : com.fs.starfarer.campaign.util.CollectionView
class[3]            : com.fs.starfarer.campaign.fleet.CampaignFleetView
required-type[3]    : com.fs.starfarer.campaign.fleet.CampaignFleetView
class[4]            : com.fs.starfarer.campaign.fleet.CampaignFleet
required-type[4]    : com.fs.starfarer.campaign.fleet.CampaignFleet
class[5]            : second_in_command.SCData
required-type[5]    : second_in_command.SCData
class[6]            : com.fs.starfarer.campaign.rules.Memory
required-type[6]    : com.fs.starfarer.campaign.rules.Memory
class[7]            : java.util.ArrayList
required-type[7]    : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[8]            : shipmastery.campaign.recentbattles.RecentBattlesIntel
required-type[8]    : shipmastery.campaign.recentbattles.RecentBattlesIntel
class[9]            : com.fs.util.container.repo.ObjectRepository
required-type[9]    : com.fs.util.container.repo.ObjectRepository
class[10]           : com.fs.starfarer.campaign.comms.v2.IntelManager
required-type[10]   : com.fs.starfarer.campaign.comms.v2.IntelManager
class[11]           : com.fs.starfarer.campaign.CampaignEngine
required-type[11]   : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
   at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:82) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:278) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dCompleteItem(AbstractCollectionConverter.java:147) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryInt oMap(MapConverter.java:105) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dCompleteItem(AbstractCollectionConverter.java:147) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryInt oMap(MapConverter.java:106) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dBareItem(AbstractCollectionConverter.java:132) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:117) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:499) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:425) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:277) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1431) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1411) ~[xstream-1.4.17.jar:1.4.17]
   at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1305) ~[xstream-1.4.17.jar:1.4.17]
   at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.O.dismiss(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.impl.for.dismiss(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.save.LoadGameDialog.actionPerformed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o0O0.buttonPressed(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.int.Ò00000(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.int.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o0O0.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.g$Oo.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.g.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.E.I.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.O.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.ui.thissuper.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.title.TitleScreenState.processInput(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source) ~[port_obf.jar:?]
   at com.fs.state.AppDriver.begin(Unknown Source) ~[port.common_obf.jar:?]
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.StarfarerLauncher.super(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source) ~[port_obf.jar:?]
   at java.base/java.lang.Thread.run(Thread.java:1575) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.campaign.fleet.FleetData.getCommander()" because "this.fleetData" is null
   at com.fs.starfarer.campaign.fleet.CampaignFleet.getCommander(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.fleet.CampaignFleet.getCommander(Unknown Source) ~[port_obf.jar:?]
   at exoticatechnologies.util.FleetMemberUtils.getFleetCommander(FleetMemberUtils.kt:147) ~[?:?]
   at exoticatechnologies.modifications.exotics.impl.PlasmaFluxCatalyst.applyExoticTo Stats(PlasmaFluxCatalyst.kt:73) ~[?:?]
   at exoticatechnologies.hullmods.ExoticaTechHM.applyEffectsBeforeShipCreation(ExoticaTechHM.java:151) ~[?:?]
   at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source) ~[port_obf.jar:?]
   at com.fs.starfarer.campaign.fleet.FleetMember.readResolve(Unknown Source) ~[port_obf.jar:?]
   at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
   at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
   at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:78) ~[xstream-1.4.17.jar:1.4.17]
   ... 150 more
[close]

The save was created with 1.2.11 (I think), but the failure to load happens both with 1.2.11 and 1.2.12. I can provide the save if you need it, but it's too big to attach to this post.

Looks like a crash with Exotica. Im Gonna ask Kaysaar to see if he can fix it.

Are there a way to have skills regarding planet Admistrating/ Industry for the Player?

Not on the player, just admins.
Logged

Bobamelius

  • Ensign
  • *
  • Posts: 13
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #373 on: December 13, 2024, 12:54:19 AM »

Ended up disabling this mod because XOs don't get any experience from non-combat sources. I'm doing a mining/surveying focused game (at least starting out) and I'm completely kneecapped by not being able to get any kind of logistical skills aside from the free one you get upon hiring an XO.

I was looking forward to exploring this mod, but I don't want to be locked into fighting 24/7 from the very beginning of the game.
Logged

Lukas04

  • Admiral
  • *****
  • Posts: 630
    • View Profile
Re: [0.97a] Second-in-Command | A full-scale skill system rework
« Reply #374 on: December 13, 2024, 01:04:08 AM »

Ended up disabling this mod because XOs don't get any experience from non-combat sources. I'm doing a mining/surveying focused game (at least starting out) and I'm completely kneecapped by not being able to get any kind of logistical skills aside from the free one you get upon hiring an XO.

I was looking forward to exploring this mod, but I don't want to be locked into fighting 24/7 from the very beginning of the game.

Il probs look in to improving the XP listener at some point, but its a rather low priority for now since the mod is more fit for a more standard playstyle anyways.
Logged
Pages: 1 ... 23 24 [25] 26 27 ... 29