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: Simulator Enhancements (03/13/24)

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Morrokain

Pages: [1] 2 3 ... 5
1
Quote
which apparently has a memory leak, so maybe avoid using the simulator if you can help it?

I do not believe this is the case, or at least not without mods. I've been watching carefully since it was brought up in another thread and at least on my machine there is no memory increase or slowing down from using the simulator.

Figured I'd dispel the confusion regarding this since I looked into it a tiny bit. I'm curious to know what would happen if you copy pasted the simulator enemy list ~10-20 times or so. I tried it myself and the simulator indeed does tank performance (specifically cpu iirc) during the enemy selection screen. No mods installed. It could definitely be a home environment or hardware issue, but if more people can reproduce it then it is an optimization issue - though perhaps not a solvable one using java idk.

So, if a user has a lot of mods that add sim opponents (which I *think* a fair amount do) then they could run into this. It smooths out once you actually start the battle though its only during the selection screen. So reports of battle slowdown are a separate issue altogether I think.

I fairly recently separated out my sim opponent list from my dev sim opponent list to help with this. I use it to test variants and have almost every variant available to test against but its impractical and causes performance issues to let the standard user do the same.

2
Suggestions / "Support Carrier" Behavior Hullmod
« on: July 27, 2021, 02:55:38 PM »
I'm not sure if this was ever suggested before, but it would be interesting to have a hullmod with low OP cost that would:


- Cause the AI to only select allied ships for the "engage" setting for wings. This would cause them to support allied ships only instead of being sent on attack runs.

 - Similarly, the AI wouldn't toggle "engage" without a target being selected.

 - The ship with the hullmod would ignore "Fighter Strike" commands unless explicitly assigned to the ship with the command on it.

 - Escort orders cause the AI to select the ship in question as the supported target even if the carrier itself is not selected as an escort

 - Multiple escort orders with multiple carriers with the hullmod would divide themselves up and support the escorted targets equally if possible.

 - Extra Ambitious: carriers with the hullmod could select enemy fighters as a target for the "engage" toggle, but only if that enemy fighter is targeting the carrier or the carrier's prior ally target.


This would be a great hullmod to use in conjunction with, for instance, the Wasp. Its fragility and specialization as an anti-craft wing rather than an anti-ship wing means that it is much better suited to escorting allied ships than ever targeting an enemy ship. I can't think of a single use case where that would be the *right* move actually. It could also serve to increase the nuance of fighter control without needing additional UI work or (hopefully) many changes to the AI since it would simply have to check for the hullmod being present while iterating through potential target choices.

It wouldn't really spice up player controlled carriers, but I was under the impression that these were treated more like non-player support ships that you can pilot if you really want to.

3
I've been trying a fresh unmodded run of RC12 and I encountered an error while trying to load a quicksave. I can load an earlier save which I will include in the available files for reference:

Log:
Spoiler
18988005 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving to ..\\saves/save_ArcturusSilva_2085535090221707533...
18988007 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 2
18988007 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 3
18989287 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 4
18989288 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6
18989820 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6B
18989821 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml] to [campaign.xml.bak]
18989821 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml] to [descriptor.xml.bak]
18989822 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml.inprogress] to [campaign.xml]
18989822 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml.inprogress] to [descriptor.xml]
18989822 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 7
18989822 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 8
18989822 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Finished saving
18990540 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Cethlenn to Volturn
18990918 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 3.0 for market [Derinkuyu Mining Station]
18991648 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Yesod to Cibola
18991734 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: Hegemony
18991881 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SystemBountyIntel  - Ending bounty at market [Ancyra]
18992500 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.BaseLimitedFleetManager  - Spawned fleet [pirate raiders] at hyperloc Vector2f[2850.0, -11550.0]
18992735 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.BaseLimitedFleetManager  - Spawned fleet [pirate raiders] at hyperloc Vector2f[2850.0, -11550.0]
18992747 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 5.0 for market [Ilm]
18992748 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 5.0 for market [Sphinx]
18993417 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.BaseLimitedFleetManager  - Spawned fleet [pirate raiders] at hyperloc Vector2f[2850.0, -11550.0]
18993839 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Gamma Jannow I, faction: independent
18995315 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.BaseLimitedFleetManager  - Spawned fleet [pirate raiders] at hyperloc Vector2f[2850.0, -11550.0]
18997580 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 3.0 for market [Garnir]
18997900 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 1.0 for market [Tigra City]
18998401 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Sagan, faction: independent
18999484 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Citadel Arcadia to Qaras
19000326 [Thread-9] INFO  sound.null  - Playing music with id [miscallenous_corvus_campaign_music.ogg]
19002328 [Thread-9] INFO  sound.O  - Creating streaming player for music with id [faction_generic_market_01_neutral_var01.ogg]
19002328 [Thread-9] INFO  sound.null  - Playing music with id [faction_generic_market_01_neutral_var01.ogg]
19311348 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: Persean League
19311396 [Thread-7] INFO  sound.O  - Cleaning up music with id [faction_generic_market_01_neutral_var01.ogg]
19311523 [Thread-9] INFO  sound.null  - Playing music with id [miscallenous_corvus_campaign_music.ogg]
19341555 [Thread-9] INFO  sound.O  - Creating streaming player for music with id [faction_generic_market_01_neutral_var01.ogg]
19341555 [Thread-9] INFO  sound.null  - Playing music with id [faction_generic_market_01_neutral_var01.ogg]
19344048 [Thread-7] INFO  sound.O  - Cleaning up music with id [faction_generic_market_01_neutral_var01.ogg]
19344057 [Thread-9] INFO  sound.null  - Playing music with id [miscallenous_corvus_campaign_music.ogg]
19349266 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Asher to Olinadu
19350050 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Domain-era Probe, faction: Luddic Church
19350372 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Sindria to Laicaille Habitat
19350939 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  - Removed officer from [ancyra_market]
19352001 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Alpha Karanan III, faction: independent
19352036 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.BaseLimitedFleetManager  - Spawned fleet [pirate raiders] at hyperloc Vector2f[2850.0, -11550.0]
19352765 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Olinadu to Ilm
19353665 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the pirates for a rep change (20986.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the remnant for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the refugees for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the sleeper for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Omega for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the scavengers for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with mercenaries for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Lion's Guard for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the independents for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Luddic Church for a rep change (0.0, 0.0)
19353666 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Persean League for a rep change (0.0, 0.0)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Sindrian Diktat for a rep change (0.0, 0.0)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Knights of Ludd for a rep change (0.0, 0.0)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Hegemony for a rep change (5878.5, 16982.5)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the derelict for a rep change (0.0, 0.0)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Luddic Path for a rep change (0.0, 0.0)
19353667 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with Tri-Tachyon for a rep change (0.0, 4003.5)
19353816 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Fikenhild to Chalcedon
19354190 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 5.0 for market [Eventide]
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  - Spawning officers/admins at ancyra_market
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -     officerProb: 0.4
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -     additionalProb: 0.1
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -     mercProb: 0.25
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -     adminProb: 0.15
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -
19354920 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  - Added officer at ancyra_market
19356067 [Thread-9] INFO  sound.O  - Creating streaming player for music with id [faction_hegemony_market_03_friendly_var01.ogg]
19356068 [Thread-9] INFO  sound.null  - Playing music with id [faction_hegemony_market_03_friendly_var01.ogg]
19524226 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Port Tse Franchise Station to Asher
19525160 [Thread-7] INFO  sound.O  - Cleaning up music with id [faction_hegemony_market_03_friendly_var01.ogg]
19525650 [Thread-9] INFO  sound.null  - Playing music with id [miscallenous_corvus_campaign_music.ogg]
19525777 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Cibola to Asher
19526110 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Qiqirn, faction: Persean League
19527590 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving to ..\\saves/save_ArcturusSilva_2085535090221707533...
19527592 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 2
19527592 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 3
19528890 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 4
19528890 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6
19529337 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6B
19529340 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml] to [campaign.xml.bak]
19529340 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml] to [descriptor.xml.bak]
19529341 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml.inprogress] to [campaign.xml]
19529341 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml.inprogress] to [descriptor.xml]
19529341 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 7
19529341 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 8
19529341 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Finished saving
19531845 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: independent
19532311 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Creating trade fleet of tier 1.0 for market [Ancyra]
19533689 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Beta Brigador I, faction: pirates
19535991 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Domain-era Survey Ship, faction: independent
19539681 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Nortia to Asher
19540258 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Wonde, faction: independent
19540811 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Ragnar Complex to Tartessus
19542080 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Kapteyn Starworks to Donn
19542762 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: independent
19543528 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Sphinx to Eldfell
19544896 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the pirates for a rep change (30393.5, 0.0)
19544897 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the remnant for a rep change (0.0, 0.0)
19544897 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the refugees for a rep change (0.0, 0.0)
19544897 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the sleeper for a rep change (0.0, 0.0)
19544898 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Omega for a rep change (0.0, 0.0)
19544898 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the scavengers for a rep change (0.0, 0.0)
19544898 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with mercenaries for a rep change (0.0, 0.0)
19544899 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Lion's Guard for a rep change (0.0, 0.0)
19544899 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the independents for a rep change (0.0, 0.0)
19544899 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Luddic Church for a rep change (0.0, 0.0)
19544900 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Persean League for a rep change (0.0, 0.0)
19544900 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Sindrian Diktat for a rep change (0.0, 0.0)
19544900 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Knights of Ludd for a rep change (0.0, 0.0)
19544900 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Hegemony for a rep change (15514.5, 26390.0)
19544901 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the derelict for a rep change (0.0, 0.0)
19544901 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with the Luddic Path for a rep change (0.0, 0.0)
19544902 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.events.RepTrackerEvent  - Not enough trade/smuggling with Tri-Tachyon for a rep change (0.0, 4003.5)
19545659 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Domain-era Probe, faction: Persean League
19550580 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Donn to Nortia
19554693 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.SurveyPlanetMissionIntel  - Created SurveyPlanetMissionIntel: Beta Ala I, faction: independent
19556561 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Gilead to Tigra City
19557561 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: Persean League
19585348 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Thulian Raider Base to Jangala
19587610 [Thread-3] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Derelict Ship, faction: Hegemony
19591546 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_AbaezeDeimos_1524215885145776906\descriptor.xml]
19591549 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_AbaezeHellas_2540906478699011484\descriptor.xml]
19591552 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_AlexanderHellas_3659282865310987316\descriptor.xml]
19591565 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ArcturusSilva_2085535090221707533\descriptor.xml]
19591567 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ArcturusSilva_5500792446603758135\descriptor.xml]
19591569 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_AshleyMcGuire_5342129546188152495\descriptor.xml]
19591581 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_BurtCryoborn_370970054851412873\descriptor.xml]
19591585 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_EgyptGullet_6446501315361602402\descriptor.xml]
19591587 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ElliottPromixa_5073924416868041214\descriptor.xml]
19591597 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_EnkiFirstshift_7603912959749356843\descriptor.xml]
19591601 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_EnyoSchwartz_1196318605905794474\descriptor.xml]
19591604 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ErisOneill_4487380470868803898\descriptor.xml]
19591614 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ErisPark_6199183567493400273\descriptor.xml]
19591617 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_EstherZambrano_2477965357092957421\descriptor.xml]
19591620 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_FanaLivingston_1262525120190773315\descriptor.xml]
19591632 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_FarleyAcevedo_9165206915300039701\descriptor.xml]
19591635 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_FridayDaruwalla_8596861189540916700\descriptor.xml]
19591643 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_FutureJang_7507785304868167035\descriptor.xml]
19591649 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_GavrilFinley_878077567544603707\descriptor.xml]
19591657 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_GilgameshPhobos_5740172260109533850\descriptor.xml]
19591660 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_HathorNil_6944965505132461636\descriptor.xml]
19591663 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_HaydenYamada_423096783556412428\descriptor.xml]
19591669 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_HenryOlsen_482993177273385485\descriptor.xml]
19591672 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_HerculesLopez_552980144176557484\descriptor.xml]
19591679 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_IshtarImran_9048141608067732464\descriptor.xml]
19591682 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_JacksonBelter_6799533924559400413\descriptor.xml]
19591685 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_JupiterOberon_8870529214928147889\descriptor.xml]
19591687 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_KellyGomez_947692723643692560\descriptor.xml]
19591690 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_KennedyDeimos_7742621403970835147\descriptor.xml]
19591692 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_KimFischer_2823093044522261177\descriptor.xml]
19591694 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_KimWelch_1449098092534991329\descriptor.xml]
19591696 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_LapisEnglish_6486311996619861409\descriptor.xml]
19591698 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_LOVID_6759405391925395179\descriptor.xml]
19591707 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_MimasXu_7016960048882317107\descriptor.xml]
19591712 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_NegasiYilmaz_1026515208376012857\descriptor.xml]
19591718 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_NeptuneLopez_2053668367278539774\descriptor.xml]
19591721 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_NourClinker_389353114506277141\descriptor.xml]
19591727 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_OsirisPhobos_5367610823538299683\descriptor.xml]
19591730 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ParisCollier_4426208525056724856\descriptor.xml]
19591732 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ProzorFuller_1030545288017047436\descriptor.xml]
19591734 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_RileyEuropa_6147345911501142909\descriptor.xml]
19591739 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_SetMills_392524330260306587\descriptor.xml]
19591742 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ShannonLuyten_2069626989071377297\descriptor.xml]
19591744 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_SpencerWilder_697619573936376419\descriptor.xml]
19591745 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_TannerOlympus_179862957454773953\descriptor.xml]
19591747 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ThreeTharsis_7906312461823152663\descriptor.xml]
19591749 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_TitaniaCallisto_8962502643268567196\descriptor.xml]
19591753 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_TrinityOctagens_5391005041243514727\descriptor.xml]
19591758 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_TwoGanymede_3006373034182048596\descriptor.xml]
19591764 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_VoltaPhobos_4971630511819205349\descriptor.xml]
19591766 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_WhitneyGullet_5209543680583662477\descriptor.xml]
19591770 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_WhitneyLim_9011241724775124134\descriptor.xml]
19591774 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_WhitneySantos_4496845387749220938\descriptor.xml]
19591776 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ZalaKirkland_2559763326921805731\descriptor.xml]
19591778 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ZalaMullins_3222426495126279303\descriptor.xml]
19591779 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ZalaOkafor_740602800430058597\descriptor.xml]
19591781 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ZeusWorthing_3596260454643741765\descriptor.xml]
19591782 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Reading save data from [..\saves\save_ZoryaEuropa_6184445517256601881\descriptor.xml]
19597376 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading C:\Program Files (x86)\Fractal Softworks\Starsector\starsector-core\..\saves\save_ArcturusSilva_2085535090221707533...
19597380 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading stage 2
19597381 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading stage 3
19598084 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
19598085 [Thread-3] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  -
---- Debugging information ----
cause-exception     : java.lang.IllegalArgumentException
cause-message       : No enum constant com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial.Su rveyDataSpecialType.AUTO_PICK_NOT^SYSTEM
class               : com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial$SurveyDataSpecialData
required-type       : com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial$SurveyDataSpecialData
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 108274
class[1]            : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.rules.Memory
class[3]            : com.fs.starfarer.campaign.CampaignTerrain
class[4]            : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[5]            : com.fs.util.container.repo.ObjectRepository
class[6]            : com.fs.starfarer.campaign.StarSystem
class[7]            : com.fs.starfarer.api.impl.campaign.procgen.Constellation
class[8]            : com.fs.starfarer.api.impl.campaign.intel.bases.PirateBaseIntel
class[9]            : com.fs.starfarer.api.impl.campaign.intel.bases.PirateActivity
class[10]           : com.fs.starfarer.campaign.econ.MarketCondition
class[11]           : com.fs.starfarer.campaign.econ.Market
class[12]           : com.fs.starfarer.campaign.CampaignPlanet
class[13]           : com.fs.starfarer.campaign.CircularOrbit
class[14]           : com.fs.starfarer.api.impl.campaign.fleets.RouteManager$RouteData
class[15]           : com.fs.starfarer.api.impl.campaign.fleets.RouteManager
class[16]           : com.fs.starfarer.campaign.fleet.CampaignFleet
class[17]           : com.fs.starfarer.campaign.econ.reach.ReachEconomy
class[18]           : com.fs.starfarer.campaign.econ.reach.ReachEconomyStepper
class[19]           : com.fs.starfarer.campaign.econ.Economy
class[20]           : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[21]           : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[22]           : com.fs.starfarer.campaign.Hyperspace
class[23]           : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception     : java.lang.IllegalArgumentException
cause-message       : No enum constant com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial.Su rveyDataSpecialType.AUTO_PICK_NOT^SYSTEM
class               : com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial$SurveyDataSpecialData
required-type       : com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial$SurveyDataSpecialData
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 108274
class[1]            : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : com.fs.starfarer.campaign.rules.Memory
class[3]            : com.fs.starfarer.campaign.CampaignTerrain
class[4]            : java.util.ArrayList
converter-type[2]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[5]            : com.fs.util.container.repo.ObjectRepository
class[6]            : com.fs.starfarer.campaign.StarSystem
class[7]            : com.fs.starfarer.api.impl.campaign.procgen.Constellation
class[8]            : com.fs.starfarer.api.impl.campaign.intel.bases.PirateBaseIntel
class[9]            : com.fs.starfarer.api.impl.campaign.intel.bases.PirateActivity
class[10]           : com.fs.starfarer.campaign.econ.MarketCondition
class[11]           : com.fs.starfarer.campaign.econ.Market
class[12]           : com.fs.starfarer.campaign.CampaignPlanet
class[13]           : com.fs.starfarer.campaign.CircularOrbit
class[14]           : com.fs.starfarer.api.impl.campaign.fleets.RouteManager$RouteData
class[15]           : com.fs.starfarer.api.impl.campaign.fleets.RouteManager
class[16]           : com.fs.starfarer.campaign.fleet.CampaignFleet
class[17]           : com.fs.starfarer.campaign.econ.reach.ReachEconomy
class[18]           : com.fs.starfarer.campaign.econ.reach.ReachEconomyStepper
class[19]           : com.fs.starfarer.campaign.econ.Economy
class[20]           : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[21]           : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[22]           : com.fs.starfarer.campaign.Hyperspace
class[23]           : com.fs.starfarer.campaign.CampaignEngine
converter-type[3]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryInt oMap(MapConverter.java:110)
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92)
   at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.rea dItem(AbstractCollectionConverter.java:73)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentE lementToCollection(CollectionConverter.java:98)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:91)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCol lection(CollectionConverter.java:85)
   at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshallField(AbstractReflectionConverter.java:503)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:429)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
   at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1486)
   at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1466)
   at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1346)
   at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
   at com.fs.starfarer.campaign.CampaignState.dialogDismissed(Unknown Source)
   at com.fs.starfarer.ui.N.dismiss(Unknown Source)
   at com.fs.starfarer.ui.impl.K.dismiss(Unknown Source)
   at com.fs.starfarer.campaign.save.LoadGameDialog.actionPerformed(Unknown Source)
   at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
   at com.fs.starfarer.ui.oooO.new(Unknown Source)
   at com.fs.starfarer.ui.oooO.processInput(Unknown Source)
   at com.fs.starfarer.ui.V.super(Unknown Source)
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: No enum constant com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.SurveyDataSpecial.Su rveyDataSpecialType.AUTO_PICK_NOT^SYSTEM
   at java.lang.Enum.valueOf(Unknown Source)
   at com.thoughtworks.xstream.converters.enums.EnumSingleValueConverter.fromString(EnumSingleValueConverter.java:47)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUn marshal(AbstractReflectionConverter.java:316)
   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unma rshal(AbstractReflectionConverter.java:281)
   at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
   ... 350 more
19598092 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading stage 11
19598092 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Loading stage 12
19610831 [Thread-3] INFO  com.fs.starfarer.util.OOoO  - Saving screenshot to C:\Program Files (x86)\Fractal Softworks\Starsector\starsector-core\..\screenshots\screenshot108.png...
[close]

In-Game Screenshot:
Spoiler
[close]

Error-Causing Save File
Load-Able Save File
Full Log File

Let me know if you need any more info or context. (Overall I'm loving the new update btw!)

*EDIT*

I restarted my computer and reloaded the game and it seems to have fixed the issue for now. It must be something going on at my end.

I'll leave the files here in case there is useful info on why it happened and I'll update if I encounter it again.

4
Modding / Carrier Ranges v1.0.0.1
« on: February 28, 2021, 08:21:20 PM »
Carrier Ranges - Mini Mod



Description: A very small mod - mostly for test purposes of this thread - that reduces the base effective range of all of non-mod-added strike craft wings by 25%. (Borer excluded.) This mod also gives non-mod-added carriers built in hullmods adjusting the effective range of strike craft wings equipped on that carrier. Ranges are from 75% to 150% of the standard range for each wing.

Mod compatibility: This mod only adds the hullmods and does not otherwise override any other component of the base game carrier. It does, however, override the wing data for each base game strike craft - and may interfere with any other mod that does the same.

Licensing: This mod is free-use though the standard modding Starsector restrictions still apply.

1.0.0.1:
 - Hotfix:
   - Fixed issue with wings having 0 OP.

5
I figured this might be worth having a discussion or maybe even a sticky. I also don't want to further derail this thread so I will post my analysis here for any further opinions. (Alex if you feel this is not a good idea then feel free to take this post down. This is a well-meaning attempt at dialogue and not meant to be inflammatory in any way.)

Premise: I suspect that there are some players who chafe at the moderation of these forums because they are used to the internet as a whole - where, for the most part, people can "flame" other people, curse, and say practically anything with impunity and anonymity. It is what modern society is used to now. So when someone says "be nice" some would say "the internet isn't nice so if you can't handle it then don't go on the internet."

I would like to demonstrate why I think the forum moderation we have here is absolutely essential to the health of the community and, more importantly, Starsector: the reason we are all here.

I will give two sample conversations. One with the forum rules in mind and one without. And then I will attempt to prove that the conversation with the forum rules is far more helpful to everyone than the conversation without the forum rules.

To be absolutely crystal clear: I want to strongly preface that this is not in any way meant to target any particular forum members nor is it intended to represent any specific past conversation that is present on the forums. In fact, the topic I have chosen was specifically designed to not resemble any current, or to my knowledge, past discussions. They are meant to be theoretical and exaggerated for the purposes of explaining the point and that is all. I also want to add that everyone makes mistakes. Everyone get's heated from time to time. It happens. We are human. We are not perfect. And that's ok.

Alright with that out of the way, let's begin:

Conversation A: No moderation or adherence to forum rules.
Spoiler
Person One: What the **** is up with missiles? They are terrible and have limited ammo! Why are they even in the game? They should just be removed!

Person Two: Yeah! They suck!

Person Three: What are you talking about? Who cares if they have limited ammo?! You're an idiot if you think that means they should be removed.

Person One: You're the only idiot here. They have limited ammo and they are garbage. They can even be shot down! What kind of game has missiles that can be shot down? A bad one, that's what.

Person Four: Um, literally all games have missiles that can be shot down. Literally all of them! Go back to playing with your kindergarten toys ya weirdo...

Person One: Ok, that's just a load of bs. Literally all games? What rock have you been hiding under? Psh.

Person Two: You guys are just missile fanboys. There is no reason to keep them in the game.

Person Five: There's plenty of reason to keep them in the game!

Person Six: Why is everyone arguing and attacking each other? This is not helpful...

Person Three: Because these idiots don't understand what a good game even is. Its sad really.

Person One: I know what a good game is. You just can't handle that I know more than you. That's what's sad.

Person Four: Fanboys? The only fanboys here are you guys. Get out.

Person Three: No, YOU know NOTHING! You are pathetic and a loser!!

Person Two: Your mother is a hamster and your father smells of elderberries!
[close]

Conversation B: Healthy forum moderation.
Spoiler
Person One: I think missiles should be removed from the game. They aren't useful. We should replace them with attack rabbits.

Person Two: Oh that would be interesting. I hear those attack rabbits are dynamite!

Person Three: I have to disagree with this. Missiles are pretty useful. Why do you think they should be removed, anyway? Wouldn't it be better to fix them instead?

Person One: Maybe, but I'm not confident that it's possible to fix them. I really don't like that they have limited ammo. The other weapons don't have limited ammo. Why should missiles have limited ammo?

Person Four: Well, they have limited ammo because they are powerful compared to other weapons. It also makes them more unique. I also think that attack rabbits wouldn't fit well with Starsector. Dynamite though they may be.

Person One: But, missiles can be shot down and attack rabbits can't. I think that makes attack rabbits better.

Person Five: Right, but you can create a window where they won't get shot down. And then they make a huge impact. I think that's worth it.

Person Two: Meh. I think the window for them to hit is too small for them to be useful. Even if they are powerful it won't matter if I can never get them to hit. Then I run out of ammo and feel like I should have went with a different weapon instead. Or just saved the OP.

Person Three: If that's the case, then I think making the window larger would be a better solution. Attack rabbits feel just like other weapons to me.

Person One: I'm not convinced. Attack rabbits are just cool.

Person Six: What if we made a fourth weapon type for attack rabbits?

Person Four: I think that would be too complicated. It would break up the balance of all the other weapons we already have.

Person Two: My vote is for a 4th weapon type - attack rabbits! And I also would like a larger window for missiles so I feel like they are more useful to me.

Person Four: Maybe the window thing. But I wouldn't like attack rabbits.
[close]

All silliness aside, what have we - as the community and as the developer - learned from each conversation?

The first conversation spiraled into personal attacks pretty quickly. Once the first insult was flung, the OP felt the need to defend himself/herself. On top of that, the anger over being insulted caused them to insult the other person back. Then someone came to defend the first person and insulted the second. Now there is an insult battle that is drawing more combatants as tempers flare even higher.

The important thing to note is that the only data point we have for reference - other than one side likes missiles and one side doesn't and apparently someone's relative has been accused of smelling like a flowering tree - is that limited ammo and PD mitigating missiles are reasons why they don't. That's it. The rest is just insults and vague references without any substance. What changes or improvements to the game could possibly be gleaned from that conversation? Imo, very little.

Contrast that to the wealth of data points in the civil conversation: conversation B. Here we learn not only of the PD and limited ammo aspect, but we also learn that one person feels the window for missiles to hit is smaller than they would like. Then, we have a follow up solution to that issue that can be digested and discussed further. The conversation also brings up several follow-up solution options, such as attack rabbits :P .

Because there isn't a need to keep the insults flying, the dialogue naturally becomes more helpful and the motivations of each opinion become more apparent. The conversations are the same length and there never was an actual agreement in both cases. That is key here. We don't have to agree or come to a consensus. Not every problem can be fixed through such dialogue and some people are going to have a difference of opinion. But the difference is what the developer and the community can learn from the discussion.

That could potentially result in changes that both sides would welcome. Or, at the very least, we can have a larger grasp of the current audience of gamers Starsector appeals to. That is useful data in and of itself.

6
Article: https://www.rockpapershotgun.com/2020/03/09/legend-of-grimrock-still-brings-the-gaming-generations-together/

I came across this article today and I found it both touching and a really neat description of how people of different generations relate to game design and gaming as a whole. It doesn't strive for big answers or attempt to create catch-all definitions of these things, but rather brings them to light and touches upon how they shape what people do and do not enjoy about games new and old. Considering recent discussions in various threads about what is or isn't fun in a game, I thought it would be fun to share it.

For those of you who are unfamiliar with the game, Legend of Grimrock II is a dungeon crawler RPG inspired by 80's dungeon crawlers that came out ~8 years ago. I highly recommend it as I had a great time playing it and I've been pining for a Grimrock III ever since. Unfortunately the company broke up and went in different directions so the wait might be a while if not forever. :'(

If you plan on playing the game, there are some light spoilers in the article like puzzle archetypes and some monsters you will find. Nothing too earthshattering though.

One thing that I love about the article is that it brings up the 'nostalgia elephant' in the room. That is to say that nostalgia is a big factor in how we remember our favorite games and how we sometimes justify their dated flaws to ourselves even if they are painfully obvious to others who don't share our nostalgia. I think that is a huge point to make even if I don't think it's a bad thing. Fun is fun and having a different opinion of what is fun is both natural and healthy.

If anything, I'd say Grimrock II's triumph in bridging that gap is a testament to how well designed it truly is. I was born in 87, so I obviously couldn't possibly have the same experiences as anyone playing games at the time. Yet, somehow I didn't find anything dated about Grimrock II even if the features were nowhere near mainstream. In fact, I found it very refreshing and I was surprised at how excited I was to play it each day. If someone would have come up to me prior to that game and predicted that I would like a game where you press 'qweasd' to turn/move a single block tile in any direction and where slashing effects are a simple single stripe along a character portrait I probably would have laughed and said "you don't know what types of games I like" before going back to playing whatever MMO or RTS I was into at the time.

My takeaway is that good design can transcend time, nostalgia and mainstream trends alike. Discussion welcome! (Please keep it polite.)

*EDIT* Oh! I almost forgot! If you play the game, I recommend Old School mode that doesn't give you a map of any kind. Pen and paper mapping the entire game world as I explored it was quite honestly a BLAST and not the tedium I expected it to be! Maybe I'm an explorer at heart. ;D

7
Suggestions / Faction Doctrine Nice-To-Have
« on: September 03, 2020, 04:46:54 PM »
Just a "nice to have" nothing really serious.

It would neat to be able to determine variant probability based upon fleet size. That way I could prioritize more balanced variants in smaller fleets (early game challenges) and then prioritize more specialized (and synergistic) variants in late game changes. Or, in respect to the benefit for vanilla, some variants can be "reserved" for endgame - creating more challenge with larger fleets.

Example of current faction doctrine: (Please forgive the spacing syntax - it's relatively hard to do on a post.)
Spoiler
   # variantOverrides restricts hulls to listed variants and adjusts their probability
   "variantOverrides":{
         "kite_Interceptor":5,
         "hound_hegemony_Standard":10,
         "wolf_hegemony_PD":10,
         "wolf_hegemony_CS":10,
         "wolf_hegemony_Assault":10,
         "brawler_Elite":8,
         "brawler_hegemony_Assault":10,
         "brawler_hegemony_Strike":10,
         "brawler_hegemony_FS":8,
         "enforcer_XIV_Elite":7,
         "enforcer_XIV_Fighter_Support":10,
         "enforcer_XIV_FS":10,
         "centurion_hegemony_Assault":8,
         "centurion_hegemony_Assault2":8,
         "centurion_hegemony_Strike":7,
         "centurion_hegemony_Elite":6,
         "rhino_hegemony_Strike":8,
         "rhino_hegemony_Assault":8,
         "rhino_hegemony_PD":10,
         "gemini_Standard":10,
         "condor_hegemony_FS":10,
         "condor_hegemony_Attack":7,
         "falcon_xiv_Elite":3,
         "falcon_xiv_Assault":10,
         "falcon_xiv_Escort":10,
         "falcon_xiv_FS":10,
         "falcon_xiv_Strike":10,
         "falcon_xiv_Support":10,
         "eagle_xiv_Assault":10,
         "eagle_xiv_FS":10,
         "eagle_xiv_Strike":10,
         "eagle_xiv_Support":10,
         "eagle_xiv_Elite":5,
         "dominator_XIV_Elite":10,
         "dominator_XIV_Support":20,
         "dominator_XIV_Strike":20,
         "dominator_XIV_Assault":20,
         "dominator_XIV_Assault2":20,
         "mora_hegemony_Assault":15,
         "mora_hegemony_FS":10,
         "mora_hegemony_Strike":10,
         "mora_hegemony_PD":10,
         "legion_xiv_Elite":5,
         "legion_xiv_Assault":10,
         "legion_xiv_Strike":10,
         "legion_xiv_Escort":10,
         "legion_xiv_FS":10,
         "legion_xiv_PD":8,
         "onslaught_xiv_Standard":20,
         "onslaught_xiv_FS":20,
         "onslaught_xiv_Elite":10,
   },
[close]

Suggested faction example:

Spoiler
   # variantOverrides restricts hulls to listed variants and adjusts their probability
   "variantOverrides":{
           "smallFleet":{
         "kite_Interceptor":5,
         "hound_hegemony_Standard":10,
         "wolf_hegemony_PD":10,
         "wolf_hegemony_CS":10,
         "wolf_hegemony_Assault":10,
         "brawler_hegemony_Assault":10,
         "brawler_hegemony_Strike":10,
         "brawler_hegemony_FS":8,
         "enforcer_XIV_Fighter_Support":10,
         "enforcer_XIV_FS":10,
         "centurion_hegemony_Assault":8,
         "centurion_hegemony_Assault2":8,
         "rhino_hegemony_Strike":8,
         "rhino_hegemony_Assault":8,
         "rhino_hegemony_PD":10,
         "gemini_Standard":10,
         "condor_hegemony_FS":10,
         "condor_hegemony_Attack":7,
         "falcon_xiv_Assault":10,
         "falcon_xiv_FS":10,
         "falcon_xiv_Strike":10,
         "eagle_xiv_Assault":10,
         "eagle_xiv_FS":10,
         "eagle_xiv_Strike":10,
         "dominator_XIV_Strike":20,
         "dominator_XIV_Assault":20,
         "dominator_XIV_Assault2":20,
         "mora_hegemony_Assault":15,
         "mora_hegemony_FS":10,
         "mora_hegemony_Strike":10,
         "legion_xiv_Assault":10,
         "legion_xiv_Strike":10,
         "onslaught_xiv_Standard":20,
            },
           "mediumFleet":{
         "kite_Interceptor":5,
         "hound_hegemony_Standard":10,
         "wolf_hegemony_PD":10,
         "wolf_hegemony_CS":10,
         "wolf_hegemony_Assault":10,
         "brawler_Elite":8,
         "brawler_hegemony_Assault":10,
         "brawler_hegemony_Strike":10,
         "brawler_hegemony_FS":8,
         "enforcer_XIV_Fighter_Support":10,
         "enforcer_XIV_FS":10,
         "centurion_hegemony_Assault":8,
         "centurion_hegemony_Assault2":8,
         "centurion_hegemony_Strike":7,
         "rhino_hegemony_Strike":8,
         "rhino_hegemony_Assault":8,
         "rhino_hegemony_PD":10,
         "gemini_Standard":10,
         "condor_hegemony_FS":10,
         "condor_hegemony_Attack":7,
         "falcon_xiv_Assault":10,
         "falcon_xiv_FS":10,
         "falcon_xiv_Strike":10,
         "eagle_xiv_Assault":10,
         "eagle_xiv_Strike":10,
         "eagle_xiv_Support":10,
         "dominator_XIV_Support":20,
         "dominator_XIV_Strike":20,
         "dominator_XIV_Assault":20,
         "dominator_XIV_Assault2":20,
         "mora_hegemony_Assault":15,
         "mora_hegemony_FS":10,
         "mora_hegemony_Strike":10,
         "mora_hegemony_PD":10,
         "legion_xiv_Assault":10,
         "legion_xiv_Strike":10,
         "legion_xiv_FS":10,
         "legion_xiv_PD":8,
         "onslaught_xiv_Standard":20,
         "onslaught_xiv_FS":20,
            },
           "largeFleet":{
         "kite_Interceptor":5,
         "hound_hegemony_Standard":10,
         "wolf_hegemony_PD":10,
         "wolf_hegemony_CS":10,
         "wolf_hegemony_Assault":10,
         "brawler_Elite":8,
         "brawler_hegemony_Assault":10,
         "brawler_hegemony_Strike":10,
         "brawler_hegemony_FS":8,
         "enforcer_XIV_Elite":7,
         "enforcer_XIV_Fighter_Support":10,
         "enforcer_XIV_FS":10,
         "centurion_hegemony_Assault":8,
         "centurion_hegemony_Assault2":8,
         "centurion_hegemony_Strike":7,
         "centurion_hegemony_Elite":6,
         "rhino_hegemony_Strike":8,
         "rhino_hegemony_Assault":8,
         "rhino_hegemony_PD":10,
         "gemini_Standard":10,
         "condor_hegemony_FS":10,
         "condor_hegemony_Attack":7,
         "falcon_xiv_Elite":3,
         "falcon_xiv_Escort":10,
         "falcon_xiv_FS":10,
         "falcon_xiv_Strike":10,
         "falcon_xiv_Support":10,
         "eagle_xiv_Assault":10,
         "eagle_xiv_FS":10,
         "eagle_xiv_Strike":10,
         "eagle_xiv_Support":10,
         "eagle_xiv_Elite":5,
         "dominator_XIV_Elite":10,
         "dominator_XIV_Support":20,
         "dominator_XIV_Strike":20,
         "mora_hegemony_Assault":15,
         "mora_hegemony_FS":10,
         "mora_hegemony_Strike":10,
         "mora_hegemony_PD":10,
         "legion_xiv_Elite":5,
         "legion_xiv_Strike":10,
         "legion_xiv_Escort":10,
         "legion_xiv_FS":10,
         "legion_xiv_PD":8,
         "onslaught_xiv_FS":20,
         "onslaught_xiv_Elite":10,
            },
   },
[close]

8
Regarding upcoming skill changes and fleet diversity mechanics:

The bonus scales down linearly, so if it's 50% at 6, then it'd be 25% at 12.

And, yeah, I get what you're saying about Shepherds/Ventures. Kind of want to see how it actually works out; I mean, losing a bit of the bonus isn't a huge deal, and just in general I'd expect the various fleetwide bonuses to be less-than-maxed-at-all-times.

That said, I could see maybe adding a tag for certain wings or ships that make their bays not count (or get the bonus). But that's getting pretty off-topic for this thread.

The tag would likely be useful. It would also be ideal to have a way to override the cap before degradation of the bonus begins (or rate of decay but linear degradation means the cap is the most important component) - but, honestly, even if it didn't I don't think it would matter too much as an initial theory. (At least for my use case, anyway, the API already lets me give free OP fighters/weapons in some circumstances so that might be enough to warrant a weakened fleet-wide bonus to simply have higher numbers for the *damage impulse* factor or, even, increased sustainability of many more bays at a much lower rate.) Just giving overall impressions/theoretical feedback. For general mod-ability, access to this stat would be sweet!

At the end of the day, I am looking forward to the skill revamp and the idea of increased fleet roles and diversity in hullsize/ship types.

Elite skills seem really interesting as a concept! Besides the expanding lore, I am really excited to see how elite skills work.

9
Suggestions / Faction File Implementation For Modders
« on: June 18, 2020, 06:47:11 PM »
It would be great if the faction file had weight modifiers for all its market/fleet sections similar to how variants and hulls currently work. Even blueprint packages for known ships, etc, could use a way of overriding just that portion rather than having to lock the file entirely. (Not sure if that part already works that way though, and its pretty easy to override blueprint contents themselves by using the csv files to remove the blueprint tags... so on second thought not as big of a deal with the exception that removing the tags means that any factions in Nex, for instance, that rely on those packages' contents for a new game start will be negatively affected.)

This way some factions could have a higher chance, for instance, to have rare fighters or weapons in their markets. Or a lower chance, etc. Thematically this makes sense to me.

It also solves the issue of having to override the entire faction file to remove standard vanilla weapons and fighters from showing up in faction markets. (Which means no portraits can be added, no new ships/variants/weapons, etc, for other mods adding things to vanilla factions.) Instead, I could just remove the item from spawning or being used by setting its weight to 0 - like how the buffalo2 works in many vanilla factions.

If its too much work, ah well. It would certainly be nice though!  :)

10
Modding / Ugh THIS is why I hate Excel....
« on: June 17, 2020, 03:56:59 PM »
Arrrgh!  >:(

My ship_data.csv and weapon_data.csv files are now completely broken in the "tags" column for the Open Office csv editor because my dumb butt saved it in Excel Ex-smell (like hot garbage) for a tiny change to a completely different cell. Apparently that makes the quotes unable to be read as a cell wrapper for Open Office. *Curses under breath*

It's not a big deal for now because I still can use Excel or Google Sheets, but if I get a new computer I will have to buy Microsoft Office again or stick with Google Sheets and it's not exactly cheap. This stuff annoys me so much. Any quote enclosed cells are finicky-er than my cat in that program's format... sigh. I even tried re-saving it as a .csv with google sheets and nope its just permanently broken in Open Office now unless I manually change it. I will say I'm pretty unfamiliar with Google Sheets so that could be the problem. I'm probably going to permanently switch to that and learn it now though.

People... just use Google Sheets it will save you a large headache though it requires internet access (I don't always have that while camping and sometimes do late-night work by the fire with my gfs labtop). It's at least free instead of forcing a format that you will have to constantly pay for in the future.

Proof:

Spoiler
Notepad:



Excel:



Open Office:


[close]

11
Modding / [0.9.1a] Expanded Fleet Dialogue
« on: May 09, 2020, 03:14:16 PM »
Mod Page Under Construction

This WIP mod expands fleet dialogue options for npc fleets.

The current options are:

1) Commodity Requests (Fuel, Supplies, Credits)
Examples:
Spoiler
]


















[close]

2) Ceasefire Negations (Can also use bribes to increase the chance of success)
Examples:
Spoiler

















[close]

Mod Compatibility Information:

For those mods who implement their own dialogue, that dialogue will not spawn this mod's dialogue options. A couple examples: Coalition, Dassault-Mikoyan Engineering

However, mods that use the standard default fleet dialogue from vanilla for their mod faction will have the options populated. Example: Diable Avionics

Opt In/Out Options: the mod plugin can be set up to crash the game if Fleet Dialogue is active, so that is one way a modder can easily get around this. Another way would be to just implement custom faction dialogue using the unique mod id to prevent the default vanilla dialogue from being used.

There isn't an easy way around this on my side since many vanilla factions rely upon the defaults, but as an olive branch if there are particular modder/modders who really don't want to add custom dialogue for their faction or an exclusion in the mod plugin and also don't want these options available: Post here with a link to the mod page and I will try and add a "not this faction" check to the defaults and I *think* that should allow the original defaults in vanilla to still populate for that faction without the dialogue options. That is very much an educated guess though, and will be done in an "upon request" kind of way.

Similarly, if you have implemented custom dialogue for your mod faction, and would like these options to be included in the interim between release and if/when I can set up some way of doing this in the mod faction's directory, you can post here and I will implement the dialogue with the necessary script in this mod.

12
Suggestions / Easy Mode Toggles
« on: February 17, 2020, 05:37:01 PM »
It could potentially be helpful for new players to have visible in-game difficulty toggle options when starting a first play through. These options could also be expanded to effect more campaign difficulty spikes.

1) An option to reduce supply and maintenance costs or alternatively reduce the credit cost of supplies and fuel.

2) An option to reduce the penalty of inspections/or number of raids generated against their colonies.

(Thoughts of any more?)

Having a visible in-game toggle menu might encourage players to customize their difficulty the first time they play based upon their gaming experience or genre background. For instance, a player may want to reduce supply or fuel costs but not, say, reduce the combat damage their piloted ship takes, or, increase the damage it deals, etc.

A concern: How could this also accommodate mod additions to difficulty mode config? Is it possible to implement a scrolling list in the UI that could read entries from the settings file and populate toggles during in-game campaign starts? (Thereby allowing additions to the list of config options that can be enabled/disabled when starting a new campaign in-game).

TLDR: The main goal is to make difficulty customization more visible to new players and to increase the number of customization options for more elements of the campaign.

13
Modding / Any interest in a random faction battle mission?
« on: August 28, 2019, 09:44:12 AM »
I wanted to gauge interest in this since I am already making one for Archean Order, but has anyone ever created a random faction battle mission sort of like random battle but with randomly assigned faction fleets?

I am about... er, half way done? - with mine and if there is interest I can post the code here when I'm finished. I've made it fairly easy to edit for anyone else to use. You would just have to replace the variants since many of the current ones included are exclusive to my mod.

How it works:

1) Chooses a random faction for the player and the enemy. (lists of available factions for each are separate so you can lock some factions to one side or the other)

2) For for each side, chooses a capital-class flagship for the fleet from a list of the chosen faction's possible flagships. (those lists are also separate for the player and enemy)
 
3) From the remaining fleet points after the flagship is chosen populate the rest of the fleet with that faction's ships. (I am thinking of also investing in a sorting algorithm to make cruisers at the top of the fleet, destroyers just after, etc. Just makes it look prettier lol)

14
As I have been playtesting Archean Order with .9.1a of Starsector, I noticed something different in how the AI combats fighters over prior updates.

They seem to almost completely ignore the "STRIKE,USE_VS_FRIGATES" or simply "STRIKE" AI tags now, unless they are within range of another enemy ship.

I can give you some videos if you like, but the AI uses Atropos torpedoes and ballistic strike weapons designed with very limited ammo storage against inconsequential fighters whenever other ships aren't present. This often locks them out of those weapons when the actual fight commences, and its frustrating.

If there is time in the future, I would really appreciate an AI tag that explicitly prevents those weapons from being used on fighters, literally ever. Never ever, ever.

Reasoning: There is never a good situation where that is viable in my mod since fighters are so flimsy and replaceable. To make matters worse, the Tachyon Lance is a "kill shot super weapon" with a 60 second cooldown. It is wasted on fighters more often than not even with the "STRIKE,USE_VS_FRIGATES" tag. I'm actually not really sure why on that one, since other ships are actually very much in range of 10,000 at the time. Yet still, it seems to prefer fighters...

Or, it will fire, then suddenly re-target to a fighter randomly from the ship it started its burst on.

15
Suggestions / Player Expectations and Early Game Balance
« on: March 03, 2019, 12:45:13 PM »
Overall I think the last few official updates have really helped to open up the early game's starting options.

There is a lot more nuance in what you can do to get a bit of cash flow, and that extends to a variety of play styles. You can trade effectively with missions both from the bar and intel, you can salvage what you find on the fringes of the car world and take on surveying missions if you want to explore to start, or you can get right into combat early on with paid bounties.

Though all of these options are possible and explicitly encouraged through their immediate and open representation on the mission board, in my opinion the difficulty between each option is a bit confusing to the new player right now.

Details (--CAUTION-- spoilers contained):
Spoiler
- The average starting pirate bounty is pretty strong with typically a couple to several vessels above a frigate present. That is at lv 0. A level above that can include capitals with mods, but I assume its far above the strength of the derelict equivalent.

 - The starting tiered derelict has only a couple frigates, on average, defending it. So if you are exploring you will need very little combat capability early on. Trading and bounty hunting both require a lot more by comparison.

 - The derelict survey vessels can be a large jump in strength from the probes with a lot more defenders present. So a salvager or explorer suddenly finds that they went from needing a frigate or two to several frigates and a destroyer.

 - Some bar missions leading to weapon caches, on the other hand, are guarded by high tier REDACTED and are within a star's corona. That is a really difficult encounter for a new player. To have a large enough fleet to deal with the defenders, the corona's effects get worse and more costly/difficult to manage.
[close]

Suggestions:

 - Like the fleet strength indicator added for the next update, maybe include something in the mission ui later down the line to give a general sense of the mission's difficulty.
 - I think starting encounters between play styles should roughly match each other in combat difficulty. Not 100% equal, maybe, but at least fairly close. Otherwise you run the risk of a new player unknowingly choosing a more difficult route simply because of role playing preferences. Though this point is less relevant if the player is explicitly made aware of that fact.

Pages: [1] 2 3 ... 5