Tech Tree Cost Editing

Question folks, I am trying to get the pacing of the game to change by changing the rate at which new techs are learned. I want to drastically slow the game down. Far far far slower than putting the pacing of the game on very slow. Basically, I want it to take upwards of 1000 turns just to hit age of war in techs, and 5000ish before anyone is hitting age of ascension and another 5000 turns before hitting age of victory.

 

It has always irked me how fast 4x games all tend to progress on the research side of things.

 

Now, I setup a mod file for this purpose and originally tried to just alter the PacingDefs.xml file only to find it had no result.

<PacingGroup>
        <InternalName>ResearchRateOptions</InternalName>

        <Pacing>
            <PacingType>VerySlow</PacingType>
            <Stats>
                <EffectType>Research</EffectType>
                <Scope>Global</Scope>
                <Target>
                    <TargetType>Colony</TargetType>
                </Target>
                <BonusType>Multiplier</BonusType>
                <Value>-0.5</Value> <!-- this is the line I tried to change changing value from -0.5 to something smaller like -0.7 -1 -10 and even -1000 -->
            </Stats>
        </Pacing>
        <Pacing>
            <PacingType>Slow</PacingType>
            <Stats>
                <EffectType>Research</EffectType>
                <Scope>Global</Scope>
                <Target>
                    <TargetType>Colony</TargetType>
                </Target>
                <BonusType>Multiplier</BonusType>
                <Value>-0.25</Value>
            </Stats>
        </Pacing>
        <Pacing>
            <PacingType>Normal</PacingType>
            <Stats>
        <EffectType>Research</EffectType>
        <Scope>Global</Scope>
        <Target>
          <TargetType>Colony</TargetType>
        </Target>
        <BonusType>Multiplier</BonusType>
        <Value>0.10</Value>
      </Stats>
        </Pacing>
        <Pacing>
            <PacingType>Fast</PacingType>
            <Stats>
                <EffectType>Research</EffectType>
                <Scope>Global</Scope>
                <Target>
                    <TargetType>Colony</TargetType>
                </Target>
                <BonusType>Multiplier</BonusType>
                <Value>0.25</Value>
            </Stats>
        </Pacing>
        <Pacing>
            <PacingType>VeryFast</PacingType>
            <Stats>
                <EffectType>Research</EffectType>
                <Scope>Global</Scope>
                <Target>
                    <TargetType>Colony</TargetType>
                </Target>
                <BonusType>Multiplier</BonusType>
                <Value>0.5</Value>
            </Stats>
        </Pacing>
    </PacingGroup>

 

Next thing I tried was to go through and change the costs of each tech directly. I started with the AltarianTechDefs.xml tree first just to test things out. When I try to start the game I get the following error:

C:\Users\REDACTED\Documents\My Games\GalCiv3\Mods\ExampleMod\Game\AltarianTechDefs.xml(553,41): error:
value '2346000' must be less than or equal to maxInclusive facet value '2147483.647'

I'm assuming "maxInclusive facet value" indicates a maximum numerical value I can assign for a research cost? If so, is there a way to increase this cap? Basically to change the research values, I have gone into the tech tree and started by multiplying research point costs by 10,25,50 and 75 for the different layers in the starting age. Then I use a multiplier of 100, 250, 500, 750 for the age of war techs, a multiplier of 1000, 2500, 5000 for age of ascension techs, and a multiplier of 10,000 for the age of victory techs. This results in the most expensive age of victory techs needing close to 100,000,000 research points to complete.

 

I'd still much rather achieve the pacing change by changing how fast/slow the different pacing options are. So if anyone knows why trying to mod PacingDefs.xml didn't work that would be excellent as well.

9,841 views 6 replies
Reply #1 Top

Doing some changes to test some more. I temporarily moved the edited Altarian tech tree to a side folder so it wouldn't be messed with. I took the cap value from the error message and rounded down and changed a base value for a random early tech in the Terran tree and fired up a game. I got the following for research time in game "N/A". Anyone know why this is?

Reply #2 Top

This is from the schema (CustomTypes.xsd), which Galciv validates the xmls,

<xs:simpleType name="FixedDecimal">
  <xs:restriction base="xs:decimal">
   <xs:fractionDigits value="3"/>
   <xs:maxInclusive value="2147483.647"/>
   <xs:minInclusive value="-2147483.648"/>
  </xs:restriction>
 </xs:simpleType>

 

So I would assume you can't have values outside of these ranges. You could try and edit the schema, but that usually results in an error.

 

On a side note there is this mod I did a while ago to adjust the tech costs all in one go.

https://www.nexusmods.com/galacticcivilizations3/mods/73

 

 

Reply #3 Top

An interesting utility. That said, I did simplify my description of how I was editing the costs. Basically, the first tech in a tree is x10, the first set of specializations are 1.5x more than the immediate preceeding rank of regular techs. Next tier up is x25, next tier of specializations again 1.5x the preceeding rank of techs. Base age is x10 starting, age of war is x100, age of ascension is x1000 etc.

 

So starting a tree is x10, first rank of specializations are x15, next rank of regular techs are x25, next specializations are x32.5, next rank is x50. Age of War is x100, first rank of specializations is x150, next rank of regular techs are x250, and so on.

 

Specializations are the oval techs, and regular techs are the rectangular techs.

 

I can try to see if modifying the above works. I do wonder though, the game's core executable, it is a 32 bit application or 64 bit application? If it is 32 bits I wonder if that can have an impact on how big the numbers can be?

Reply #4 Top

AFAIK the engine is 64bit, but it looks like the max in-game fixed decimal is 32 bit.

You just need to keep the maximum tech cost below 2147483.

 

 

Reply #6 Top

Yes I have. It has promise. Certainly helps show the trees in a visual format which is handy for telling just where a tech is in relation to the others when editing the xml. I do wish it permitted core file editing. Perhaps an option you have to enable to do so with a strong warning that you are so editing said core files. Could also look into baking the multiplier editor into the greater tree editor. Shows research cost and then another entry below it that has a multiplier of 1 that you can change to auto change the final tech cost. That way I wouldn't need to use a calculator when changing research costs. :D