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)

Author Topic: why specId null?  (Read 4452 times)

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile
why specId null?
« on: March 07, 2017, 01:55:56 PM »

I often have a crash on game generation when I run faction mods. Here, I have enabled just one faction mod: Underworld

I also have Dynasector and SS+ enabled, along with a few other mods.

Code
146321 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [uw_cabalmarket] not found
java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [uw_cabalmarket] not found
at com.fs.starfarer.loading.SpecStore.o00000(Unknown Source)
at com.fs.starfarer.campaign.econ.Submarket.readResolve(Unknown Source)
at com.fs.starfarer.campaign.econ.Submarket.<init>(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addSubmarket(Unknown Source)
at data.scripts.campaign.econ.UW_CabalInfluence.apply(UW_CabalInfluence.java:10)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at data.scripts.UnderworldModPlugin.syncCabalMarkets(UnderworldModPlugin.java:105)
at data.scripts.UnderworldModPlugin.syncUnderworldScripts(UnderworldModPlugin.java:37)
at data.scripts.UnderworldModPlugin.onGameLoad(UnderworldModPlugin.java:179)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.M.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.I.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.if.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.h.o00000(Unknown Source)
at com.fs.starfarer.ui.OooO.processInput(Unknown Source)
at com.fs.starfarer.ui.Objectsuper.o00000(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)
« Last Edit: March 09, 2017, 02:11:40 PM by gruberscomplete »
Logged
Click here for FREE ships!               Plentysector               Robots With Souls

Midnight Kitsune

  • Admiral
  • *****
  • Posts: 2846
  • Your Friendly Forum Friend
    • View Profile

I often have a crash on game generation when I run faction mods. Here, I have enabled just one faction mod: Underworld

I also have Dynasector and SS+ enabled, along with a few other mods.

Code
146321 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [uw_cabalmarket] not found
java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [uw_cabalmarket] not found
at com.fs.starfarer.loading.SpecStore.o00000(Unknown Source)
at com.fs.starfarer.campaign.econ.Submarket.readResolve(Unknown Source)
at com.fs.starfarer.campaign.econ.Submarket.<init>(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addSubmarket(Unknown Source)
at data.scripts.campaign.econ.UW_CabalInfluence.apply(UW_CabalInfluence.java:10)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at com.fs.starfarer.campaign.econ.Market.addCondition(Unknown Source)
at data.scripts.UnderworldModPlugin.syncCabalMarkets(UnderworldModPlugin.java:105)
at data.scripts.UnderworldModPlugin.syncUnderworldScripts(UnderworldModPlugin.java:37)
at data.scripts.UnderworldModPlugin.onGameLoad(UnderworldModPlugin.java:179)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.M.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.I.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.if.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.h.o00000(Unknown Source)
at com.fs.starfarer.ui.OooO.processInput(Unknown Source)
at com.fs.starfarer.ui.Objectsuper.o00000(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)

I'd say delete and redownload Underworld
Logged
Help out MesoTroniK, a modder in need

2021 is 2020 won
2022 is 2020 too

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile

But its not just underworld. It happens for other mods too, like Templars and Interstellar Imperium.
Logged
Click here for FREE ships!               Plentysector               Robots With Souls

Midnight Kitsune

  • Admiral
  • *****
  • Posts: 2846
  • Your Friendly Forum Friend
    • View Profile

But its not just underworld. It happens for other mods too, like Templars and Interstellar Imperium.
What do you mean? Do you get the exact same error even when Underworld isn't enabled?
Then are you running any other mods with it when you get these errors? Like plentysector? Have you messed with the core files?
Logged
Help out MesoTroniK, a modder in need

2021 is 2020 won
2022 is 2020 too

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile

it gives other errors depending on the mods activated.

When I enable Interstellar Imperium, it says [ii_ebay] not found, and similar results for other faction mods like Templars, there is always something that is not found that crashes the game during loading or new game generation.

Although it seems it doesn't always crash... plentysector might have affected the crashes.
Logged
Click here for FREE ships!               Plentysector               Robots With Souls

Midnight Kitsune

  • Admiral
  • *****
  • Posts: 2846
  • Your Friendly Forum Friend
    • View Profile

Yeah, remove plenty and see what happens
Logged
Help out MesoTroniK, a modder in need

2021 is 2020 won
2022 is 2020 too

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile

seems to work...
Logged
Click here for FREE ships!               Plentysector               Robots With Souls

Midnight Kitsune

  • Admiral
  • *****
  • Posts: 2846
  • Your Friendly Forum Friend
    • View Profile

seems to work...
Then Plenty seems to screw up on modded games
Logged
Help out MesoTroniK, a modder in need

2021 is 2020 won
2022 is 2020 too

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile
why specId null?
« Reply #8 on: March 09, 2017, 12:53:30 PM »

Actually it might not be plentysector.

Just tried it out with nexerelin, dynasector, ss+, and a ton of faction mods and it worked perfectly.

EDIT: Some weird **** is going on. Started a new game as interstellar imperium with templars enabled, but templars are not in the faction list on intel screen.

EDIT2: Started new game as hegemony and got the templar crash.

Spoiler

601041 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [tem_templarmarket] not found
java.lang.RuntimeException: Spec of class [com.fs.starfarer.loading.K] with id [tem_templarmarket] not found
   at com.fs.starfarer.loading.SpecStore.o00000(Unknown Source)
   at com.fs.starfarer.campaign.econ.Submarket.readResolve(Unknown Source)
   at com.fs.starfarer.campaign.econ.Submarket.<init>(Unknown Source)
   at com.fs.starfarer.campaign.econ.Market.addSubmarket(Unknown Source)
   at exerelin.world.ExerelinMarketSetup.addMarketToEntity(ExerelinMarketSetup.java:580)
   at exerelin.world.ExerelinSectorGen.populateSector(ExerelinSectorGen.java:1109)
   at exerelin.world.ExerelinSectorGen.generate(ExerelinSectorGen.java:782)
   at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
   at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
   at com.fs.starfarer.ui.M.dismiss(Unknown Source)
   at com.fs.starfarer.ui.impl.I.dismiss(Unknown Source)
   at com.fs.starfarer.campaign.save.if.actionPerformed(Unknown Source)
   at com.fs.starfarer.ui.h.o00000(Unknown Source)
   at com.fs.starfarer.ui.OooO.processInput(Unknown Source)
   at com.fs.starfarer.ui.h.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.ui.ifnew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.ifnew.processInputImpl(Unknown Source)
   at com.fs.starfarer.coreui.intsuper.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.ui.ifnew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.ifnew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.O0OO.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.ui.ifnew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.ifnew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.M.processInputImpl(Unknown Source)
   at com.fs.starfarer.campaign.save.if.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.ui.ifnew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.ifnew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.P.processInput(Unknown Source)
   at com.fs.starfarer.title.TitleScreenState.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)

[close]

EDIT 3: Turns out nexerelin creates a new market called tem_templarmarket in ExerelinMarketSetup.java, which must be causing the crash. Not sure why it crashes though

Edit 4: Also turns out templars have a custom submarket named tem_templarmarket. Still not sure about what is causing the crash.

Edit 5: Found something. tem_templarmarket is coded to be a MilitarySubmarketPlugin, but plentysector causes markets to be extended as PlentysectorMilitarySubmarketPlugin. Two different types of market plugins. Still not sure why it crashes though.

Based on the line in the crash report:

at exerelin.world.ExerelinMarketSetup.addMarketToEntity(ExerelinMarketSetup.java:580)

I'd say the crash happens when nexerelin executes this line:

newMarket.addSubmarket("tem_templarmarket");

Edit 6:
So apparently the crash report is saying that there is no such thing as "tem_templarmarket"
Spec of class [com.fs.starfarer.loading.K] with id [tem_templarmarket] not found

Since there is no specId (the type of the templar market) with name "tem_templarmarket", so this is null and you cannot do myMarket.addSubmarket(NULL) ... Which leads to the question, why is it null????
« Last Edit: March 09, 2017, 02:12:57 PM by gruberscomplete »
Logged
Click here for FREE ships!               Plentysector               Robots With Souls

Histidine

  • Admiral
  • *****
  • Posts: 4661
    • View Profile
    • GitHub profile
Re: why specId null?
« Reply #9 on: March 10, 2017, 04:34:10 AM »

Here is your problem:
Code: json
    "replace":
[
"data/campaign/submarkets.csv",
],
Don't do this. If you need to make sure of overriding another mod's submarket entries (probably DS in this case), change the mod name/ID to control load order instead of breaking every mod with a custom submarket.
Logged

gruberscomplete

  • Captain
  • ****
  • Posts: 253
    • View Profile
Re: why specId null?
« Reply #10 on: March 10, 2017, 08:10:14 AM »

Think I fixed the crash.

However, Knights Templar still does not show up when I play as Interstellar Imperium.

why??? Is it because they have no markets so they were defeated by nexerelin??

Edit: disabled all faction mods except templar and imperium, and templars showed up...

Edit 2: I guess I was wrong, activated all mods and templars show up...
« Last Edit: March 10, 2017, 09:20:25 AM by gruberscomplete »
Logged
Click here for FREE ships!               Plentysector               Robots With Souls