Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: [Nexerelin v0.9.5g] CTD with Agents  (Read 1341 times)

eec

  • Ensign
  • *
  • Posts: 2
    • View Profile
[Nexerelin v0.9.5g] CTD with Agents
« on: December 07, 2019, 04:47:01 PM »

Background: Running latest starsector version with LazyLib and latest version of Nexerelin (0.9.5g). No other mods. Save file has player with one agent running a "Lower Relations" operation between Tri-Tech and Hegemony, after just completing another, exact same operation. The agent info panel displayed the text "java.lang.NullPointerException" after confirming the mission.

Issue: Consistent and unavoidable CTD when accessing the intel menu (Pressing 'E'). This crash also occurs after about 30 seconds, consistently, regardless of any player actions (standing still, leaving the system, not accessing the intel menu, etc). This might be when the agent completes/fails the mission, but I can't check since accessing the intel menu causes immediate CTD.

Log:
Code
40711 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
at exerelin.campaign.intel.agents.LowerRelations.addCurrentActionBullet(LowerRelations.java:163)
at exerelin.campaign.intel.agents.AgentIntel.createIntelInfo(AgentIntel.java:194)
at com.fs.starfarer.campaign.comms.v2.A.recreate(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.A.<init>(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.EventsPanel.ô00000(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.EventsPanel.øÖ0000(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.EventsPanel.sizeChanged(Unknown Source)
at com.fs.starfarer.ui.for.setSize(Unknown Source)
at com.fs.starfarer.campaign.comms.return.this.void(Unknown Source)
at com.fs.starfarer.campaign.comms.return.sizeChanged(Unknown Source)
at com.fs.starfarer.ui.for.setSize(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.setSize(Unknown Source)
at com.fs.starfarer.ui.newui.O0oO$7.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.newnew.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.I.Ò00000(Unknown Source)
at com.fs.starfarer.ui.I.processInput(Unknown Source)
at com.fs.starfarer.ui.newnew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.N.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.O0oO.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.processInput(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)

Unfortunately, I don't create separate save files too often, so I'm stuck until I can find a workaround for the CTD. Are there console commands that can remove the agent?
Logged

Sundog

  • Admiral
  • *****
  • Posts: 1727
    • View Profile
Re: [Nexerelin v0.9.5g] CTD with Agents
« Reply #1 on: December 07, 2019, 06:21:46 PM »

No idea what would cause that to happen, but you might be able to fix it with this command:
Code
runcode Global.getSector().getIntelManager().removeIntel(Global.getSector().getIntelManager().getFirstIntel(exerelin.campaign.intel.agents.AgentIntel.class));
You might need to run it more than once if you have more than one active agent.

Histidine

  • Admiral
  • *****
  • Posts: 4682
    • View Profile
    • GitHub profile
Re: [Nexerelin v0.9.5g] CTD with Agents
« Reply #2 on: December 07, 2019, 06:34:47 PM »

You can also search for <currentAction> in your save's campaign.xml and try deleting that block up to the </currentAction>.

It should look something like this (following is for a raise relations action, but the format should be about the same):
Code: xml
<currentAction cl="NexAgntActRaiseRel" z="97335" nC="true">
<market cl="Market" ref="1900"></market>
<agent ref="97331"></agent>
<agentFaction cl="Faction" ref="562"></agentFaction>
<targetFaction cl="Faction" ref="109"></targetFaction>
<playerInvolved>true</playerInvolved>
<relation>0.0</relation>
<xpGain>-1</xpGain>
<newLevel>-1</newLevel>
<days>67.5</days>
<cost>40000.0</cost>
<daysRemaining>18.507761</daysRemaining>
<thirdFaction cl="Faction" ref="562"></thirdFaction>
</currentAction>
(if you want to be really advanced, add the missing thirdFaction reference instead of deleting the action)

Next version of Nexerelin will print a warning message instead of crashing (at least until it actually tries to execute the action).
« Last Edit: December 07, 2019, 06:37:12 PM by Histidine »
Logged

eec

  • Ensign
  • *
  • Posts: 2
    • View Profile
Re: [Nexerelin v0.9.5g] CTD with Agents
« Reply #3 on: December 07, 2019, 07:30:29 PM »

That seems to have fixed it.

To clarify: deleting the currentAction block produces an error upon loading the save file (something complains about not being able to reference the action).  However, adding the missing thirdFaction (with the reference number copied from the lastAction below, since it was the same mission) fixes the problem entirely. The agent completes the mission and no crashes or strange text is apparent.

Thanks, everyone!
Logged