Anyone else struggling to find a rational explanation for mod crashes?

I have a selection of modded components, most of them additions, and I can get some things to work, others not, and I can find no logical reasoning to explain why some work and some don't, an example:

Why does this work:

<PlanetTrait>
    <InternalName>GasGiantColony</InternalName>
    <DisplayName>Precursor Gas Giant Colony</DisplayName>
    <Description>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</Description>
    <EffectModifier>
      <EffectType>Manufacturing</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
    <EffectModifier>
      <EffectType>Research</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
    <EffectModifier>
      <EffectType>GoodsAndServices</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
    <EffectModifier>
      <EffectType>Tourism</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
  </PlanetTrait>

but this doesn't:

<PlanetTrait>
    <InternalName>KellOrganoSyntheticWorld</InternalName>
    <DisplayName>Synthetic World</DisplayName>
    <Description>This world long ago turned synthetic, everything now works towards a common goal.</Description>
    <EffectModifier>
      <EffectType>Manufacturing</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
    <EffectModifier>
      <EffectType>Research</EffectType>
      <Target>
        <TargetType>Colony</TargetType>
      </Target>
      <BonusType>Multiplier</BonusType>
      <Value>2</Value>
    </EffectModifier>
  </PlanetTrait>

 

Or:

What is wrong with this:

<RaceTrait>
    <InternalName>BioshipsAbility</InternalName>
    <DisplayName>Bio-Ships</DisplayName>
    <DisplayNameShort>Bio-Ships</DisplayNameShort>
    <Description>Every ship is grown and cared for; enables healing during combat.</Description>
    <IsAbility>1</IsAbility>
    <Mod>
      <EffectType>TacticalRepair</EffectType>
      <Scope>Global</Scope>
      <Target>
        <TargetType>Ship</TargetType>
      </Target>
      <BonusType>Flat</BonusType>
      <Value>2</Value>
    </Mod>
  </RaceTrait>

Anyone else having issues? Anyone have a solution, or just tips and tricks?

49,610 views 10 replies
Reply #1 Top

Have you looked in Debug.err to see if it's giving you any specific error messages?

Reply #2 Top

It appears that my game doesn't crash for any mod reasons, but instead decides to run on my integrated intel family chipset, an underpowered graphics card instead of the default nvidia one, capable of running the game. A frustrating issue, but not the issue at hand. What I would like to know is if to anyone else there are errors in my xml.

Reply #3 Top

Quoting MisterSaturnus, reply 2

It appears that my game doesn't crash for any mod reasons, but instead decides to run on my integrated intel family chipset, an underpowered graphics card instead of the default nvidia one, capable of running the game. A frustrating issue, but not the issue at hand. What I would like to know is if to anyone else there are errors in my xml.

 

Your issue which isn't at hand can be resolved in the NVidia control center, but I dunno what the issue is with your XML. Again, could you open up your Debug.err file and see what the most recent error messages are? Those should explain the crash, with a bit of luck.

Reply #4 Top

This may not be the reason for your issue, but who knows?

Just out of interest, why don't you have these added to your planet traits?

<RelativeWeight>#</RelativeWeight>
<PlanetClassSelect>
<MinPlanetClass>#</MinPlanetClass>
<MaxPlanetClass>#</MaxPlanetClass>
<Weight>#</Weight>
</PlanetClassSelect>

The only other thing I can think of is that the "KellOrganoSyntheticWorld" InternalName has too many characters, since that's the only difference I can see.

 

Reply #5 Top

    <InternalName>GasGiantColony</InternalName>
    <DisplayName>Precursor Gas Giant Colony</DisplayName>
    <Description>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</Description>

You are using literal text, while the program expects reference names.

It should be something like this:

<InternalName>GasGiantColony</InternalName>
<DisplayName>GasGiantColony_Name</DisplayName>
<Description>GasGiantColony_Dec</Description>

And then in the PlanetTraitText.xml these strings should be declared like this (using here the default DesertWorldIcon):

<StringTable>
  <Label>GasGiantColony_Name</Label>
  <String>[ICON=DesertWorldIcon] Precursor Gas Giant Colony</String>
</StringTable>

<StringTable>
  <Label>GasGiantColony_Dec</Label>
  <String>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</String>
</StringTable>

 

Reply #6 Top

Thank you, wasn't aware of the internal name length limit, and as for expecting a string value that points to the text xml files that isn't actually necessary, the game looks to see if text can be found there and if it cannot it takes it literally, as I intended for it to.

As for the graphics issue, the game is set to run on my nvidia, in the control panel.

Reply #7 Top

Quoting Thecw, reply 5


    <InternalName>GasGiantColony</InternalName>
    <DisplayName>Precursor Gas Giant Colony</DisplayName>
    <Description>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</Description>



You are using literal text, while the program expects reference names.

It should be something like this:

<InternalName>GasGiantColony</InternalName>
<DisplayName>GasGiantColony_Name</DisplayName>
<Description>GasGiantColony_Dec</Description>

And then in the PlanetTraitText.xml these strings should be declared like this (using here the default DesertWorldIcon):

<StringTable>
  <Label>GasGiantColony_Name</Label>
  <String>[ICON=DesertWorldIcon] Precursor Gas Giant Colony</String>
</StringTable>

<StringTable>
  <Label>GasGiantColony_Dec</Label>
  <String>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</String>
</StringTable>

 

Yeh! thats what I've been doing too, but you don't have to for the text. Same as with factionDefs - Descriptions etc. 

I think if you want to use new Icons for your planet traits though, then you have to do it as you describe, but it doesn't work currently, so there is no point. Well I can't get the Icons to work yet anyway, and the current vanilla Icon texture file names don't match. It seems they are hooked up elsewhere. ...Edit; yes they are. See edit below.

Edit: Just worked out how the Icons are hooked up :grin:

If you want a unique Icon for your Unique PlanetTrait. You do need to put in your text for <DisplayName>"ReplaceWithYourStuff_Name</Displayname> to a PlanetTraitText.xml as "Thecw" has described above.

For intance; In the UniqueName_PlanetTraitText.xml

<StringTable>
  <Label>GasGiantColony_Name</Label>
  <String>[ICON=UniqueName_Icon] Precursor Gas Giant Colony</String>
</StringTable>

<StringTable>
  <Label>GasGiantColony_Dec</Label>
  <String>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</String>
</StringTable>

You will also need to create a UniqueName_FactionAssets.xml and put it in your mods "Core" folder

Then add to it;

<Asset>
 <Tag>UniqueName_Icon</Tag>
 <Filename>unique_name.png</Filename>
</Asset>

Delete all other Assets that are already in the game.

"unique_name.png" Is your custom icon image for the trait and is put into Gfx/Icons/Stats folder.

Reply #8 Top

Quoting MisterSaturnus, reply 6

Thank you, wasn't aware of the internal name length limit, and as for expecting a string value that points to the text xml files that isn't actually necessary, the game looks to see if text can be found there and if it cannot it takes it literally, as I intended for it to.

As for the graphics issue, the game is set to run on my nvidia, in the control panel.

Well there may not be a limit, but there possibly could be. If that's not the problem then I'm scratching my head, wondering what the heck, just like you are.

+1 Loading…
Reply #9 Top

So after changing the length of the internal name it all appears to be working now, I wonder how many other things I deleted, or commented out because I thought they were just broken, when I was using obscenely descript internal names.
Everyone, thank you!

Reply #10 Top

Oh! Cool, good that you got it working.

So looks like the character limit for an InternalName is 19 or 20. That's good to know & something to be aware of for other things to I suppose.

+1 Loading…