Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: CTD - heavily modded, weird NPE (no mod pointer)  (Read 499 times)

Iridescens

  • Lieutenant
  • **
  • Posts: 56
    • View Profile
CTD - heavily modded, weird NPE (no mod pointer)
« on: September 21, 2020, 12:30:41 AM »

Hi!

I'd be very glad to have this pinpointed, because I don't have a clue where to start debugging. It just doesn't seem to relate to specific mod.
NPE CTD error
987839 [Thread-4] INFO  data.scripts.OfficerManagerEvent  - Removed officer from mairaath_abandoned_station2, 40 total available
988067 [Thread-4] INFO  com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager  - Added trade fleet route from Cibola to Baetis
988317 [Thread-4] INFO  com.fs.starfarer.api.impl.campaign.intel.AnalyzeEntityMissionIntel  - Created AnalyzeEntityMissionIntel: Domain-era Probe, faction: Tri-Tachyon
988896 [Thread-8] INFO  sound.oo0O  - Cleaning up music with id [ApproLight_bg_music02.ogg]
989073 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
   at com.fs.starfarer.ui.A.new.super(Unknown Source)
   at com.fs.starfarer.ui.A.new.<init>(Unknown Source)
   at com.fs.starfarer.campaign.ui.String.<init>(Unknown Source)
   at com.fs.starfarer.ui.P.super(Unknown Source)
   at com.fs.starfarer.campaign.ui.oOOo.addIconFor(Unknown Source)
   at com.fs.starfarer.campaign.ui.oOOo.<init>(Unknown Source)
   at com.fs.starfarer.ui.impl.C$2.??O000(Unknown Source)
   at com.fs.starfarer.ui.impl.C$2.beforeShown(Unknown Source)
   at com.fs.starfarer.campaign.C.o00000(Unknown Source)
   at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
   at com.fs.starfarer.campaign.CampaignState.advance(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$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
989240 [Thread-10] INFO  sound.oo0O  - Creating streaming player for music with id [ApproLight_bg_music02.ogg]
989240 [Thread-10] INFO  sound.null  - Playing music with id [ApproLight_bg_music02.ogg]
[close]
Modlist
{"enabledMods": [
  "Adjusted Sector",
  "ApproLight",
  "ApproLightPlus",
  "timid_admins",
  "blackrock_driveyards",
  "chatter",
  "timid_commissioned_hull_mods",
  "lw_radar",
  "lw_console",
  "diableavionics",
  "extra_system_reloaded",
  "gates_awakened",
  "gladiatorsociety",
  "deconomics",
  "lw_lazylib",
  "leadingPip",
  "ArkLeg",
  "logisticsNotifications",
  "MagicLib",
  "Neutrino",
  "nexerelin",
  "ORA",
  "tahlan_scalartech",
  "SCY",
  "swp",
  "bonomel_skilledup",
  "speedUp",
  "sun_starship_legends",
  "Sylphon_RnD",
  "Terraforming and Station Construction",
  "Templars",
  "US",
  "URW",
  "vayrasector",
  "lw_version_checker",
  "toggleWeapons",
  "XhanEmpire",
  "audio_plus",
  "shaderLib"
]}
[close]
Logged

Histidine

  • Admiral
  • *****
  • Posts: 4681
    • View Profile
    • GitHub profile
Re: CTD - heavily modded, weird NPE (no mod pointer)
« Reply #1 on: September 22, 2020, 08:00:48 PM »

It's the modular ship autofit variant issue. See example with solution

Quote
Delete any autofit variants you've created for modular ships (or make them non-prioritised in player faction doctrine, if you can get to that screen without crashing)
Logged

Iridescens

  • Lieutenant
  • **
  • Posts: 56
    • View Profile
Re: CTD - heavily modded, weird NPE (no mod pointer)
« Reply #2 on: September 24, 2020, 12:52:28 AM »

I did implement autofit wiper before save and after load, but still crashing. EDIT: And every 2 days.
Spoiler
public static void removeESHullmodFromAutoFitGoalVariants() {
        try {
            for (ShipHullSpecAPI spec : Global.getSettings().getAllShipHullSpecs()) {
                for (ShipVariantAPI v : Global.getSector().getAutofitVariants().getTargetVariants(spec.getHullId())) {
                    if(v != null) removeESHullModsFromVariant(v);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
public static void removeESHullModsFromVariant(ShipVariantAPI v) {
        for (int i = 0; i <= ORDNANCE_HULLMOD_MAX_LEVEL; ++i) {
            v.removePermaMod("es_shiplevelHM"+i);
        }
        List<String> slots = v.getModuleSlots();

        for(int i = 0; i < slots.size(); ++i) {
            ShipVariantAPI module = v.getModuleVariant(slots.get(i));
            if (module != null) {
                removeESHullModsFromVariant(module);
            }
        }
    }
[close]
What else can I do to troubleshoot this issue futher?

NPE can occur with player interaction with entity or without, like inter-faction battle somewhere in the system.
The only similar code is:
Spoiler
[Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
   at com.fs.starfarer.ui.A.new.super(Unknown Source)
   at com.fs.starfarer.ui.A.new.<init>(Unknown Source)
   at com.fs.starfarer.campaign.ui.String.<init>(Unknown Source)
   at com.fs.starfarer.ui.P.super(Unknown Source)
   at com.fs.starfarer.campaign.ui.oOOo.addIconFor(Unknown Source)
...
[close]
« Last Edit: September 24, 2020, 07:17:49 AM by Iridescens »
Logged