Modular Moddind & Overriding?

Tomcat1962

Chieftain
Joined
Oct 24, 2009
Messages
30
First of all, i'd like to express, that I deeply appreciate all the Work & efforts that all the People here have put into this great Game respectively great Mod.

Since some of the features of ROM are a matter of personal taste, I started a little personal ModMod-Project, mainly aiming in adding Units or replacing existing ones for the nations I usually prefer to play with.

Keeping in mind, that maybe some day I'd like to share my work, I especially like the idea of modular Modding and try to keep my work strictly modular.
But here, I stumble about some problems and I have some questions:

- Is there a way to overide Original-Rom Files Content completly or partially (especially from the "CIV4UnitInfos.xml") without replacing the old File in the XML-Folder? (e.g. I'd like to changed some values of ROM-Units without replacing them or adding new similar ones.)

- Where must these files be placed in the modular path and how have they to be named?
(Modular loadings seems to be "off" by default in the "Rise of Mankind.ini" and I dare not to change this. On the other hand, modular loadingstill works like anyone can see by the example of "Holy Wars" )
 
- Is there a way to overide Original-Rom Files Content completly or partially (especially from the "CIV4UnitInfos.xml") without replacing the old File in the XML-Folder? (e.g. I'd like to changed some values of ROM-Units without replacing them or adding new similar ones.)

This is easy to do. Just copy the section for that unit from the CIV4UnitInfos.xml into a new XML files, add the header XML tags and footer XML tags, and make the changes you want. After your done, cut out the unchanged code.

For example, say you wanted, for some strange reason, for Knights to be only defensive.

Grab the Knight XML section:

Spoiler :
Code:
<UnitInfo>
            <Class>UNITCLASS_KNIGHT</Class>
            <Type>UNIT_KNIGHT</Type>
            <UniqueNames/>
            <Special>NONE</Special>
            <Capture>NONE</Capture>
            <Combat>UNITCOMBAT_MOUNTED</Combat>
            <Domain>DOMAIN_LAND</Domain>
            <DefaultUnitAI>UNITAI_ATTACK</DefaultUnitAI>
            <Invisible>NONE</Invisible>
            <SeeInvisible>NONE</SeeInvisible>
            <Description>TXT_KEY_UNIT_KNIGHT</Description>
            <Civilopedia>TXT_KEY_UNIT_KNIGHT_PEDIA</Civilopedia>
            <Strategy>TXT_KEY_UNIT_KNIGHT_STRATEGY</Strategy>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <bAnimal>0</bAnimal>
            <bFood>0</bFood>
            <bNoBadGoodies>0</bNoBadGoodies>
            <bOnlyDefensive>0</bOnlyDefensive>
            <bNoCapture>0</bNoCapture>
            <bQuickCombat>0</bQuickCombat>
            <bRivalTerritory>0</bRivalTerritory>
            <bMilitaryHappiness>1</bMilitaryHappiness>
            <bMilitarySupport>1</bMilitarySupport>
            <bMilitaryProduction>1</bMilitaryProduction>
            <bPillage>1</bPillage>
            <bSpy>0</bSpy>
            <bSabotage>0</bSabotage>
            <bDestroy>0</bDestroy>
            <bStealPlans>0</bStealPlans>
            <bInvestigate>0</bInvestigate>
            <bCounterSpy>0</bCounterSpy>
            <bFound>0</bFound>
            <bGoldenAge>0</bGoldenAge>
            <bInvisible>0</bInvisible>
            <bFirstStrikeImmune>1</bFirstStrikeImmune>
            <bNoDefensiveBonus>1</bNoDefensiveBonus>
            <bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
            <bCanMoveImpassable>0</bCanMoveImpassable>
            <bCanMoveAllTerrain>0</bCanMoveAllTerrain>
            <bFlatMovementCost>0</bFlatMovementCost>
            <bIgnoreTerrainCost>0</bIgnoreTerrainCost>
            <bNukeImmune>0</bNukeImmune>
            <bPrereqBonuses>0</bPrereqBonuses>
            <bPrereqReligion>0</bPrereqReligion>
            <bMechanized>0</bMechanized>
            <bSuicide>0</bSuicide>
            <bHiddenNationality>0</bHiddenNationality>
            <bAlwaysHostile>0</bAlwaysHostile>
            <UnitClassUpgrades>
                <UnitClassUpgrade>
                    <UnitClassUpgradeType>UNITCLASS_CUIRASSIER</UnitClassUpgradeType>
                    <bUnitClassUpgrade>1</bUnitClassUpgrade>
                </UnitClassUpgrade>
            </UnitClassUpgrades>
            <UnitClassTargets/>
            <UnitCombatTargets/>
            <UnitClassDefenders/>
            <UnitCombatDefenders/>
            <FlankingStrikes>
                <FlankingStrike>
                    <FlankingStrikeUnitClass>UNITCLASS_CATAPULT</FlankingStrikeUnitClass>
                    <iFlankingStrength>100</iFlankingStrength>
                </FlankingStrike>
                <FlankingStrike>
                    <FlankingStrikeUnitClass>UNITCLASS_TREBUCHET</FlankingStrikeUnitClass>
                    <iFlankingStrength>100</iFlankingStrength>
                </FlankingStrike>
            </FlankingStrikes>
            <UnitAIs>
                <UnitAI>
                    <UnitAIType>UNITAI_ATTACK</UnitAIType>
                    <bUnitAI>1</bUnitAI>
                </UnitAI>
                <UnitAI>
                    <UnitAIType>UNITAI_PILLAGE</UnitAIType>
                    <bUnitAI>1</bUnitAI>
                </UnitAI>
            </UnitAIs>
            <NotUnitAIs/>
            <Builds/>
            <ReligionSpreads/>
            <CorporationSpreads/>
            <GreatPeoples/>
            <Buildings/>
            <ForceBuildings/>
            <HolyCity>NONE</HolyCity>
            <ReligionType>NONE</ReligionType>
            <StateReligion>NONE</StateReligion>
            <PrereqReligion>NONE</PrereqReligion>
            <PrereqCorporation>NONE</PrereqCorporation>
            <PrereqBuilding>NONE</PrereqBuilding>
            <PrereqTech>TECH_ARMORED_CAVALRY</PrereqTech>
            <TechTypes>
                <PrereqTech>NONE</PrereqTech>
            </TechTypes>
            <BonusType>BONUS_HORSE</BonusType>
            <PrereqBonuses>
                <BonusType>BONUS_IRON</BonusType>
            </PrereqBonuses>
            <ProductionTraits/>
            <Flavors/>
            <iAIWeight>0</iAIWeight>
            <iCost>90</iCost>
            <iHurryCostModifier>0</iHurryCostModifier>
            <iAdvancedStartCost>100</iAdvancedStartCost>
            <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
            <iMinAreaSize>-1</iMinAreaSize>
            <iMoves>2</iMoves>
            <bNoRevealMap>0</bNoRevealMap>
            <iAirRange>0</iAirRange>
            <iAirUnitCap>0</iAirUnitCap>
            <iDropRange>0</iDropRange>
            <iNukeRange>-1</iNukeRange>
            <iWorkRate>0</iWorkRate>
            <iBaseDiscover>0</iBaseDiscover>
            <iDiscoverMultiplier>0</iDiscoverMultiplier>
            <iBaseHurry>0</iBaseHurry>
            <iHurryMultiplier>0</iHurryMultiplier>
            <iBaseTrade>0</iBaseTrade>
            <iTradeMultiplier>0</iTradeMultiplier>
            <iGreatWorkCulture>0</iGreatWorkCulture>
            <iEspionagePoints>0</iEspionagePoints>
            <TerrainImpassables/>
            <FeatureImpassables/>
            <TerrainPassableTechs/>
            <FeaturePassableTechs/>
            <iCombat>11</iCombat>
            <iCombatLimit>100</iCombatLimit>
            <iAirCombat>0</iAirCombat>
            <iAirCombatLimit>0</iAirCombatLimit>
            <iXPValueAttack>4</iXPValueAttack>
            <iXPValueDefense>2</iXPValueDefense>
            <iFirstStrikes>0</iFirstStrikes>
            <iChanceFirstStrikes>0</iChanceFirstStrikes>
            <iInterceptionProbability>0</iInterceptionProbability>
            <iEvasionProbability>0</iEvasionProbability>
            <iWithdrawalProb>0</iWithdrawalProb>
            <iCollateralDamage>0</iCollateralDamage>
            <iCollateralDamageLimit>100</iCollateralDamageLimit>
            <iCollateralDamageMaxUnits>6</iCollateralDamageMaxUnits>
            <iCityAttack>0</iCityAttack>
            <iCityDefense>0</iCityDefense>
            <iAnimalCombat>0</iAnimalCombat>
            <iHillsAttack>0</iHillsAttack>
            <iHillsDefense>0</iHillsDefense>
            <TerrainNatives/>
            <FeatureNatives/>
            <TerrainAttacks/>
            <TerrainDefenses/>
            <FeatureAttacks>
                <FeatureAttack>
                    <FeatureType>FEATURE_FOREST</FeatureType>
                    <iFeatureAttack>-25</iFeatureAttack>
                </FeatureAttack>
                <FeatureAttack>
                    <FeatureType>FEATURE_JUNGLE</FeatureType>
                    <iFeatureAttack>-50</iFeatureAttack>
                </FeatureAttack>
            </FeatureAttacks>
            <FeatureDefenses/>
            <UnitClassAttackMods/>
            <UnitClassDefenseMods/>
            <UnitCombatMods/>
            <UnitCombatCollateralImmunes/>
            <DomainMods/>
            <BonusProductionModifiers/>
            <iBombRate>0</iBombRate>
            <iBombardRate>0</iBombardRate>
            <SpecialCargo>NONE</SpecialCargo>
            <DomainCargo>NONE</DomainCargo>
            <iCargo>0</iCargo>
            <iConscription>0</iConscription>
            <iCultureGarrison>6</iCultureGarrison>
            <iExtraCost>0</iExtraCost>
            <iAsset>3</iAsset>
            <iPower>22</iPower>
            <UnitMeshGroups>
                <iGroupSize>3</iGroupSize>
                <fMaxSpeed>1.75</fMaxSpeed>
                <fPadTime>1</fPadTime>
                <iMeleeWaveSize>3</iMeleeWaveSize>
                <iRangedWaveSize>3</iRangedWaveSize>
                <UnitMeshGroup>
                    <iRequired>3</iRequired>
                    <EarlyArtDefineTag>ART_DEF_UNIT_KNIGHT</EarlyArtDefineTag>
                </UnitMeshGroup>
            </UnitMeshGroups>
            <FormationType>FORMATION_TYPE_DEFAULT</FormationType>
            <HotKey/>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <iHotKeyPriority>0</iHotKeyPriority>
            <FreePromotions/>
            <LeaderPromotion>NONE</LeaderPromotion>
            <iLeaderExperience>0</iLeaderExperience>
        </UnitInfo>

Now, create a new XML file called SOMETHING_CIV4UnitInfo.xml and put this section in. Now add the header and footer sections, so it looks like this:
Spoiler :

Code:
[COLOR=Red]    <?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Alex Mantzaris (Firaxis Games) -->
<!-- Sid Meier's Civilization 4 -->
<!-- Copyright Firaxis Games 2005 -->
<!-- -->
<!-- Unit Infos -->
<Civ4UnitInfos xmlns="x-schema:CIV4UnitSchema.xml">[/COLOR]
    <UnitInfo>
            <Class>UNITCLASS_KNIGHT</Class>
            <Type>UNIT_KNIGHT</Type>
            <UniqueNames/>
            <Special>NONE</Special>
            <Capture>NONE</Capture>
            <Combat>UNITCOMBAT_MOUNTED</Combat>
            <Domain>DOMAIN_LAND</Domain>
            <DefaultUnitAI>UNITAI_ATTACK</DefaultUnitAI>
            <Invisible>NONE</Invisible>
            <SeeInvisible>NONE</SeeInvisible>
            <Description>TXT_KEY_UNIT_KNIGHT</Description>
            <Civilopedia>TXT_KEY_UNIT_KNIGHT_PEDIA</Civilopedia>
            <Strategy>TXT_KEY_UNIT_KNIGHT_STRATEGY</Strategy>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <bAnimal>0</bAnimal>
            <bFood>0</bFood>
            <bNoBadGoodies>0</bNoBadGoodies>
            <bOnlyDefensive>0</bOnlyDefensive>
            <bNoCapture>0</bNoCapture>
            <bQuickCombat>0</bQuickCombat>
            <bRivalTerritory>0</bRivalTerritory>
            <bMilitaryHappiness>1</bMilitaryHappiness>
            <bMilitarySupport>1</bMilitarySupport>
            <bMilitaryProduction>1</bMilitaryProduction>
            <bPillage>1</bPillage>
            <bSpy>0</bSpy>
            <bSabotage>0</bSabotage>
            <bDestroy>0</bDestroy>
            <bStealPlans>0</bStealPlans>
            <bInvestigate>0</bInvestigate>
            <bCounterSpy>0</bCounterSpy>
            <bFound>0</bFound>
            <bGoldenAge>0</bGoldenAge>
            <bInvisible>0</bInvisible>
            <bFirstStrikeImmune>1</bFirstStrikeImmune>
            <bNoDefensiveBonus>1</bNoDefensiveBonus>
            <bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
            <bCanMoveImpassable>0</bCanMoveImpassable>
            <bCanMoveAllTerrain>0</bCanMoveAllTerrain>
            <bFlatMovementCost>0</bFlatMovementCost>
            <bIgnoreTerrainCost>0</bIgnoreTerrainCost>
            <bNukeImmune>0</bNukeImmune>
            <bPrereqBonuses>0</bPrereqBonuses>
            <bPrereqReligion>0</bPrereqReligion>
            <bMechanized>0</bMechanized>
            <bSuicide>0</bSuicide>
            <bHiddenNationality>0</bHiddenNationality>
            <bAlwaysHostile>0</bAlwaysHostile>
            <UnitClassUpgrades>
                <UnitClassUpgrade>
                    <UnitClassUpgradeType>UNITCLASS_CUIRASSIER</UnitClassUpgradeType>
                    <bUnitClassUpgrade>1</bUnitClassUpgrade>
                </UnitClassUpgrade>
            </UnitClassUpgrades>
            <UnitClassTargets/>
            <UnitCombatTargets/>
            <UnitClassDefenders/>
            <UnitCombatDefenders/>
            <FlankingStrikes>
                <FlankingStrike>
                    <FlankingStrikeUnitClass>UNITCLASS_CATAPULT</FlankingStrikeUnitClass>
                    <iFlankingStrength>100</iFlankingStrength>
                </FlankingStrike>
                <FlankingStrike>
                    <FlankingStrikeUnitClass>UNITCLASS_TREBUCHET</FlankingStrikeUnitClass>
                    <iFlankingStrength>100</iFlankingStrength>
                </FlankingStrike>
            </FlankingStrikes>
            <UnitAIs>
                <UnitAI>
                    <UnitAIType>UNITAI_ATTACK</UnitAIType>
                    <bUnitAI>1</bUnitAI>
                </UnitAI>
                <UnitAI>
                    <UnitAIType>UNITAI_PILLAGE</UnitAIType>
                    <bUnitAI>1</bUnitAI>
                </UnitAI>
            </UnitAIs>
            <NotUnitAIs/>
            <Builds/>
            <ReligionSpreads/>
            <CorporationSpreads/>
            <GreatPeoples/>
            <Buildings/>
            <ForceBuildings/>
            <HolyCity>NONE</HolyCity>
            <ReligionType>NONE</ReligionType>
            <StateReligion>NONE</StateReligion>
            <PrereqReligion>NONE</PrereqReligion>
            <PrereqCorporation>NONE</PrereqCorporation>
            <PrereqBuilding>NONE</PrereqBuilding>
            <PrereqTech>TECH_ARMORED_CAVALRY</PrereqTech>
            <TechTypes>
                <PrereqTech>NONE</PrereqTech>
            </TechTypes>
            <BonusType>BONUS_HORSE</BonusType>
            <PrereqBonuses>
                <BonusType>BONUS_IRON</BonusType>
            </PrereqBonuses>
            <ProductionTraits/>
            <Flavors/>
            <iAIWeight>0</iAIWeight>
            <iCost>90</iCost>
            <iHurryCostModifier>0</iHurryCostModifier>
            <iAdvancedStartCost>100</iAdvancedStartCost>
            <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
            <iMinAreaSize>-1</iMinAreaSize>
            <iMoves>2</iMoves>
            <bNoRevealMap>0</bNoRevealMap>
            <iAirRange>0</iAirRange>
            <iAirUnitCap>0</iAirUnitCap>
            <iDropRange>0</iDropRange>
            <iNukeRange>-1</iNukeRange>
            <iWorkRate>0</iWorkRate>
            <iBaseDiscover>0</iBaseDiscover>
            <iDiscoverMultiplier>0</iDiscoverMultiplier>
            <iBaseHurry>0</iBaseHurry>
            <iHurryMultiplier>0</iHurryMultiplier>
            <iBaseTrade>0</iBaseTrade>
            <iTradeMultiplier>0</iTradeMultiplier>
            <iGreatWorkCulture>0</iGreatWorkCulture>
            <iEspionagePoints>0</iEspionagePoints>
            <TerrainImpassables/>
            <FeatureImpassables/>
            <TerrainPassableTechs/>
            <FeaturePassableTechs/>
            <iCombat>11</iCombat>
            <iCombatLimit>100</iCombatLimit>
            <iAirCombat>0</iAirCombat>
            <iAirCombatLimit>0</iAirCombatLimit>
            <iXPValueAttack>4</iXPValueAttack>
            <iXPValueDefense>2</iXPValueDefense>
            <iFirstStrikes>0</iFirstStrikes>
            <iChanceFirstStrikes>0</iChanceFirstStrikes>
            <iInterceptionProbability>0</iInterceptionProbability>
            <iEvasionProbability>0</iEvasionProbability>
            <iWithdrawalProb>0</iWithdrawalProb>
            <iCollateralDamage>0</iCollateralDamage>
            <iCollateralDamageLimit>100</iCollateralDamageLimit>
            <iCollateralDamageMaxUnits>6</iCollateralDamageMaxUnits>
            <iCityAttack>0</iCityAttack>
            <iCityDefense>0</iCityDefense>
            <iAnimalCombat>0</iAnimalCombat>
            <iHillsAttack>0</iHillsAttack>
            <iHillsDefense>0</iHillsDefense>
            <TerrainNatives/>
            <FeatureNatives/>
            <TerrainAttacks/>
            <TerrainDefenses/>
            <FeatureAttacks>
                <FeatureAttack>
                    <FeatureType>FEATURE_FOREST</FeatureType>
                    <iFeatureAttack>-25</iFeatureAttack>
                </FeatureAttack>
                <FeatureAttack>
                    <FeatureType>FEATURE_JUNGLE</FeatureType>
                    <iFeatureAttack>-50</iFeatureAttack>
                </FeatureAttack>
            </FeatureAttacks>
            <FeatureDefenses/>
            <UnitClassAttackMods/>
            <UnitClassDefenseMods/>
            <UnitCombatMods/>
            <UnitCombatCollateralImmunes/>
            <DomainMods/>
            <BonusProductionModifiers/>
            <iBombRate>0</iBombRate>
            <iBombardRate>0</iBombardRate>
            <SpecialCargo>NONE</SpecialCargo>
            <DomainCargo>NONE</DomainCargo>
            <iCargo>0</iCargo>
            <iConscription>0</iConscription>
            <iCultureGarrison>6</iCultureGarrison>
            <iExtraCost>0</iExtraCost>
            <iAsset>3</iAsset>
            <iPower>22</iPower>
            <UnitMeshGroups>
                <iGroupSize>3</iGroupSize>
                <fMaxSpeed>1.75</fMaxSpeed>
                <fPadTime>1</fPadTime>
                <iMeleeWaveSize>3</iMeleeWaveSize>
                <iRangedWaveSize>3</iRangedWaveSize>
                <UnitMeshGroup>
                    <iRequired>3</iRequired>
                    <EarlyArtDefineTag>ART_DEF_UNIT_KNIGHT</EarlyArtDefineTag>
                </UnitMeshGroup>
            </UnitMeshGroups>
            <FormationType>FORMATION_TYPE_DEFAULT</FormationType>
            <HotKey/>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <iHotKeyPriority>0</iHotKeyPriority>
            <FreePromotions/>
            <LeaderPromotion>NONE</LeaderPromotion>
            <iLeaderExperience>0</iLeaderExperience>
        </UnitInfo>
[COLOR=Red]    </UnitInfos>
</Civ4UnitInfos>[/COLOR]

Now, the line we want to change is this:

Code:
<bOnlyDefensive>0</bOnlyDefensive>

So we change it to:

Code:
<bOnlyDefensive>1</bOnlyDefensive>

Great, now, for the sake of readibility, and for compatibility, we cut out the rest of the unneeded code, so our final module looks like this:
Spoiler :

Code:
    <?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Alex Mantzaris (Firaxis Games) -->
<!-- Sid Meier's Civilization 4 -->
<!-- Copyright Firaxis Games 2005 -->
<!-- -->
<!-- Unit Infos -->
<Civ4UnitInfos xmlns="x-schema:CIV4UnitSchema.xml">
    <UnitInfos>
        <UnitInfo>
            <Class>UNITCLASS_KNIGHT</Class>
            <Type>UNIT_KNIGHT</Type>
            <bOnlyDefensive>1</bOnlyDefensive>
        </UnitInfo>
    </UnitInfos>
</Civ4UnitInfos>

That's all we need, because the game loads the main XML first, and then loads the modules, and only changes the changed XML lines. Just make sure you include the CIV4UnitSchema.xml in the folder with your module. Then, add the entry for the folder in the ModularLoadingControls file.

Viola! It's easier than it looks, trust me.

- Where must these files be placed in the modular path and how have they to be named?
(Modular loadings seems to be "off" by default in the "Rise of Mankind.ini" and I dare not to change this. On the other hand, modular loadingstill works like anyone can see by the example of "Holy Wars" )

It's actually always on, ignore the .ini, because the ModularLoadingControls files now control which modules get loaded, not the INI. As for the path, anywhere in the modules folder is fine, just make sure that if you create a new folder to add it to the MLF file. There's already a tutorial on how to do that.
 
Finally, because of your help, I got what I looked for... Thx. :thumbsup: :bowdown:

(...) As for the path, anywhere in the modules folder is fine, just make sure that if you create a new folder to add it to the MLF file. There's already a tutorial on how to do that.

Honestly here I have to disagree: anywhere seems to me not fine. e.g. the changes are not loaded (at least not here on my system) if you place the new files in the "Modules"-Folder, or in the "Custom Units"-Folder, but in any other subfolders that are mentioned allready in the MLF-Control-Files or that are new added ;)

I won't argue about the Logic behind this. Maybe I should read the mentioned tutorial... :D
All what counts is the result with your help, so again: :thumbsup: :bowdown:
 
I've been doing a lot of this myself, and I have run into one glitch so far.

If I include my own version of the RoM_GameText_Objects.xml (or Strategy or Civilopedia) file, it is not loaded.
I used to have the same problem with Civ4UnitInfos.xml and some of the other, until I also included copies of the appropriate Schema file -- now all the altered files seem to be loading, but not any of the GameText files.

Is there anything like a Schema file that I should be including if I make an altered version of any of the ROM_GameText files?
 
I've been doing a lot of this myself, and I have run into one glitch so far.

If I include my own version of the RoM_GameText_Objects.xml (or Strategy or Civilopedia) file, it is not loaded.
I used to have the same problem with Civ4UnitInfos.xml and some of the other, until I also included copies of the appropriate Schema file -- now all the altered files seem to be loading, but not any of the GameText files.

Is there anything like a Schema file that I should be including if I make an altered version of any of the ROM_GameText files?

I don't know what it is about gametext's, it's often hit and miss for me. I found that some text will load fine in a modular folder, others have to be placed in the base XML/Text folder. Try doing that.
 
I've been doing a lot of this myself, and I have run into one glitch so far.

If I include my own version of the RoM_GameText_Objects.xml (or Strategy or Civilopedia) file, it is not loaded.
I used to have the same problem with Civ4UnitInfos.xml and some of the other, until I also included copies of the appropriate Schema file -- now all the altered files seem to be loading, but not any of the GameText files.

Is there anything like a Schema file that I should be including if I make an altered version of any of the ROM_GameText files?

I noticed from Afforess' installing that you can't make GameText modular (guessing here, so I can be wrong). You need to make a new file in Text folder. Of course, if you are changing the file already there, yoou can do so in there. It will show up.

I'm sure that no one will really care that much if you overwrite our gametext since most of time it will just fill up what is already empty already.
 
I've been doing a lot of this myself, and I have run into one glitch so far.

If I include my own version of the RoM_GameText_Objects.xml (or Strategy or Civilopedia) file, it is not loaded.
I used to have the same problem with Civ4UnitInfos.xml and some of the other, until I also included copies of the appropriate Schema file -- now all the altered files seem to be loading, but not any of the GameText files.

Is there anything like a Schema file that I should be including if I make an altered version of any of the ROM_GameText files?

I have only had trouble with GameText XML files when they have the same name as others. So if you call it My_RoM_GameText_Objects.xml instead of RoM_GameText_Objects.xml it might work. But then I sometimes have trouble where once I stop getting errors in the XML in a folder the game stops loading it at all :)
 
Oh, FYI, Glider1 said he is planning on adding a bForceOverwrite tag so that modules can modularly overwrite base XML objects. This means that with RevDCM 2.7, we can be "truly" modular.
 
I noticed from Afforess' installing that you can't make GameText modular (guessing here, so I can be wrong). You need to make a new file in Text folder. Of course, if you are changing the file already there, yoou can do so in there. It will show up.

I'm sure that no one will really care that much if you overwrite our gametext since most of time it will just fill up what is already empty already.

Don't know what the problem is, the gametext file in ANM is modular and it works perfectly. Yet I can say the same for projects until I saw AND's reaction to it.
 
Don't know what the problem is, the gametext file in ANM is modular and it works perfectly. Yet I can say the same for projects until I saw AND's reaction to it.

I've found that GameText for SDK features can't be modular, hence a rather large and growing "Afforess_GameText.xml" in your folder. ;)
 
Back
Top Bottom