- Player plays a game with MyMod, which adds a fighter X (might also work with a ship or weapon)
- Later update of MyMod removes X
- Player downloads the updated mod and loads their previous save, it still runs (probably because of how inflater works?)
- ...but factions still think they know the no-longer-existent X, which causes crashes when something picks a "known" fighter and to spawn it, e.g. when docking at a market:
Example error:
4200064 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.api.impl.campaign.submarkets.BaseSubmarketPlugin.addFighters(BaseSubmarketPlugin.java:323)
at exerelin.campaign.submarkets.Nex_OpenMarketPlugin.updateCargoPrePlayerInteraction(Nex_OpenMarketPlugin.java:22)
at com.fs.starfarer.campaign.ui.o0OO.<init>(Unknown Source)
at com.fs.starfarer.coreui.O00o.<init>(Unknown Source)
at com.fs.starfarer.coreui.O00o.<init>(Unknown Source)
at com.fs.starfarer.ui.newui.J$5.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.newui.J.setCurrentTab(Unknown Source)
at com.fs.starfarer.ui.newui.J.setCurrentTab(Unknown Source)
at com.fs.starfarer.ui.newui.U.showCoreInternal(Unknown Source)
at com.fs.starfarer.ui.newui.U.showCore(Unknown Source)
at com.fs.starfarer.api.impl.campaign.rulecmd.OpenCoreTab.execute(OpenCoreTab.java:40)
at com.fs.starfarer.ui.newui.oOOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.OoO0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.?00000(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.OoO0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.Q.processInput(Unknown Source)
at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
Perhaps on game load Starsector should validate each faction's known blueprints and remove anything that doesn't exist in the game?
(Or return to main menu with the load game error, if we expect a different crash down the road and it's better that the player doesn't keep trying to use this save)