so i'm attempting to make a transwarp technology for my custom race. the game seems to accept the code as it doesnt crash initially loading, but in the game it simply does not show up in the tree. for the base tree i just copied the terran tree and modified it from there. i only removed anything higher than warp (which worked fine) now trying to put transwarp in its place. Here is what i have:
SurianTechDefs.xml
<Tech> <InternalName>SurianTranswarp</InternalName> <GenericName>SurianTranswarp</GenericName> <DisplayName>Transwarp_Name</DisplayName> <TechTree>Surian_Tree</TechTree> <ShortDescription>SurianTranswarp_ShortDec</ShortDescription> <Description>SurianTranswarp_Dec</Description> <ResearchCost>250</ResearchCost> <TechPoints>1</TechPoints> <AICategoryWeight> <Military>18</Military> <Growth>12</Growth> <Tech>10</Tech> <Diplomacy>4</Diplomacy> <Expansion>16</Expansion> <Wealth>14</Wealth> <Influence>10</Influence> <Fortification>12</Fortification> <Prerequ> <Techs> <Option>SurianWarpFieldFocus1</Option> <Option>SurianWarpFieldFocus2</Option> <Option>SurianWarpFieldFocus3</Option> </Techs> <TechAge> <Option>AgeOfWar</Option> </TechAge> </Prerequ> </Tech>
SurianTechDefsText.xml
<StringTable> <Label>SurianTranswarp_Name</Label> <String>Transwarp</String> </StringTable> <StringTable> <Label>SurianTranswarp_ShortDec</Label> <String>Conduit technology</String> </StringTable> <StringTable> <Label>SurianTranswarp_Dec</Label> <String>A transwarp conduit is created through subspace and a ship can travel through it at extreme speeds</String> </StringTable>
SurianTechSpecializationsDef.xml
<TechSpecialization> <InternalName>SurianTranswarp</InternalName> <DisplayName>SurianTranswarp_Name</DisplayName> <ShortDescription>SurianTranswarp_ShortDec</ShortDescription> <Description>SurianTranswarp_Dec</Description> <ColorDef>TechBlue</ColorDef> <Icon>GC3_Drives_Icon.png</Icon> </TechSpecialization>
not sure if thats the problem, but you dont need the TechSpecialization if that tech isnt supposed to be a specialization-tech (the ones where you pick 1 out of 2/3)
First try removing that tech specialization, because that isn't a specialization tech group, and double-check that every preceeding tech is linked up properly. Nothing else is jumping out at me that looks wrong.
There's a few errors here, actually. In fact, I'm surprised the game loaded at all.
First off, you're missing a "</AICategoryWeight>" tag in that tech (it should be after the Fortification tag). The lack of that is causing my game to hard crash each and every time. That might just be a copy-n-paste error, but the xml block as written isn't going to run.
Secondly, I agree with everyone else about getting rid of the specialization. It's not a specialization, so that might confuse matters. I haven't tested it with that xml block, mind, but I see no reason for it.
Thirdly, when I did a dry run (switching things to Terran instead of Surian), the game didn't display anything when I had the Internal Name TerranWarpFieldFocus1/2/3 in the Option section. But when I put in the Generic Name instead (WarpFieldFocus1, WarpFieldFocus2. etc) it did display (after I made the fix I mention in the next paragraph). That shouldn't matter, but if the game wants the Generic Name not the Internal Name, that could be it.
Finally, the label "SurianTranswarp_Name" doesn't match with the display tech name "Transwarp_Name", so the game doesn't know to match the two. Thus it isn't going to display it, even when it is using the Generic Name instead of the Internal Name in the Option section. But when the two are matched and everything I mentioned above is fixed I get:
I'll post a fixed version of everything in a bit in this post, but I have to run for a bit.
Decided to make a separate post.
Here is my suggested corrections (bolded in red):
<Tech><InternalName>SurianTranswarp</InternalName><GenericName>SurianTranswarp</GenericName><DisplayName>SurianTranswarp_Name</DisplayName><TechTree>Surian_Tree</TechTree><ShortDescription>SurianTranswarp_ShortDec</ShortDescription><Description>SurianTranswarp_Dec</Description><ResearchCost>250</ResearchCost><TechPoints>1</TechPoints><AICategoryWeight><Military>18</Military><Growth>12</Growth><Tech>10</Tech><Diplomacy>4</Diplomacy><Expansion>16</Expansion><Wealth>14</Wealth><Influence>10</Influence><Fortification>12</Fortification></AICategoryWeight><Prerequ><Techs><Option>WarpFieldFocus1</Option><Option>WarpFieldFocus2</Option><Option>WarpFieldFocus3</Option></Techs><TechAge><Option>AgeOfWar</Option></TechAge></Prerequ></Tech>
<StringTable><Label>SurianTranswarp_Name</Label><String>Transwarp</String></StringTable><StringTable><Label>SurianTranswarp_ShortDec</Label><String>Conduit technology</String></StringTable><StringTable><Label>SurianTranswarp_Dec</Label><String>A transwarp conduit is created through subspace and a ship can travel through it at extreme speeds</String></StringTable>
====
In the above, there is no specialization xml block, the DisplayName matches the one in the text table, the AI CatagoryWeight is restored, and the Options are set as described as above.
This SHOULD work. At the least it worked when I thew it in the Terran Tech Tree, after modifying the things that needed to be modified to make it a Terran Tech instead of a Custom Race Tech.
One last thing that is probably unimportant. but I wanted to mention all the same. I noticed that the "InternalName" and the "GenericName" are exactly the same in your tech block. I have no idea how finicky GC III is about that, but I've noticed in all of Stardock's tech trees xmls, they never appear to be duplicated. Not that I recollect at any rate.
They'll even do something like:
<InternalName>KrynnKrynnTourismTech</InternalName> <GenericName>KrynnTourismTech</GenericName>
to make sure they're different. So in your case, following the same convention, it'd be:
<InternalName>SurianSurianTranswarp</InternalName><GenericName>SurianTranswarp</GenericName>
No, it didn't seem to matter on my testing. But who knows if it'll ever matter as GC III's engine is refined/poked at.
the game is fine with the internal and generic name being the same, I use that method almost exclusively for custom techs.
This.
I do the same. The Generic name is what is used to link Improvements/Components to Techs and also to link Techs together.
I think the internal name is used for tech tree building, bit unsure on this tbh.
There are many great features available to you once you register, including:
Sign in or Create Account