Quick Modding Questions Thread

There is no start year for each era. An era starts for you when you research a tech that is in that era. The first Classical era tech you research advances you to the Classical era, for example.
 
It's probably the iStartPercent value in CIV4EraInfos.xml. It would be the percentage of the turns until the time victory based on the selected game speed. (Can't look it up to make sure as the modiki is still down.)
 
The game does not run on years, it runs on turns. Each game speed specifies sets of X turns which are Y years per turn. When you hit the end of the list, that is when the time victory would happen if it was enabled. The slower the game speed, the more turns there are.

Example: In plain old regular BtS on Normal speed there are 500 turns until you would hit the time victory if it were enabled. If you select the Renaissance era the value of iStartPercent is 37. Therefore it will start on the year represented by turn 185 since 185 is 37% of 500. If you were using Marathon speed the number of turns would be 1500 so starting in the Renaissance would put you at the year represented by turn 555 since 555 is 37% of 1500.

Or, of course, I could be wrong. Stupid modiki being down and all.
 
Another question: I want to have some civilizations have multiple UU for the same unitclass. When I do this civ by default uses the one closest to the bottom in the xml and disregards the others. But I have seen this done in other places like DWOLF's Nazi Germany civilization, but the xml in there does no make sence. Here is the xml for the two fighter UU's
Code:
<UnitInfo>
			<Class>UNITCLASS_MESSER</Class>
			<Type>UNIT_MESSER</Type>
			<UniqueNames/>
			<Special>SPECIALUNIT_FIGHTER</Special>
			<Capture>NONE</Capture>
			<Combat>UNITCOMBAT_AIR</Combat>
			<Domain>DOMAIN_AIR</Domain>
			<DefaultUnitAI>UNITAI_DEFENSE_AIR</DefaultUnitAI>
			<Invisible>NONE</Invisible>
			<SeeInvisible>NONE</SeeInvisible>
			<Description>TXT_KEY_UNIT_MESSER</Description>
			<Civilopedia>TXT_KEY_UNIT_MESSER_PEDIA</Civilopedia>
			<Strategy>TXT_KEY_UNIT_MESSER_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>0</bMilitaryHappiness>
			<bMilitarySupport>1</bMilitarySupport>
			<bMilitaryProduction>1</bMilitaryProduction>
			<bPillage>0</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>0</bFirstStrikeImmune>
			<bNoDefensiveBonus>0</bNoDefensiveBonus>
			<bIgnoreBuildingDefense>1</bIgnoreBuildingDefense>
			<bCanMoveImpassable>0</bCanMoveImpassable>
			<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
			<bFlatMovementCost>0</bFlatMovementCost>
			<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
			<bNukeImmune>0</bNukeImmune>
			<bPrereqBonuses>0</bPrereqBonuses>
			<bPrereqReligion>0</bPrereqReligion>
			<bMechanized>1</bMechanized>
			<bSuicide>0</bSuicide>
			<bHiddenNationality>0</bHiddenNationality>
			<bAlwaysHostile>0</bAlwaysHostile>
			<UnitClassUpgrades>
				<UnitClassUpgrade>
					<UnitClassUpgradeType>UNITCLASS_JET_FIGHTER</UnitClassUpgradeType>
					<bUnitClassUpgrade>1</bUnitClassUpgrade>
				</UnitClassUpgrade>
			</UnitClassUpgrades>
			<UnitClassTargets/>
			<UnitCombatTargets/>
			<UnitClassDefenders/>
			<UnitCombatDefenders/>
			<FlankingStrikes/>
			<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_DEFENSE_AIR</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
				<UnitAI>
					<UnitAIType>UNITAI_CARRIER_AIR</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_FLIGHT</PrereqTech>
			<TechTypes/>
			<BonusType>BONUS_OIL</BonusType>
			<PrereqBonuses/>
			<ProductionTraits/>
			<Flavors/>
			<iAIWeight>0</iAIWeight>
			<iCost>98</iCost>
			<iHurryCostModifier>0</iHurryCostModifier>
			<iAdvancedStartCost>100</iAdvancedStartCost>
			<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
			<iMinAreaSize>-1</iMinAreaSize>
			<iMoves>1</iMoves>
			<bNoRevealMap>0</bNoRevealMap>
			<iAirRange>6</iAirRange>
			<iAirUnitCap>1</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>0</iCombat>
			<iCombatLimit>0</iCombatLimit>
			<iAirCombat>12</iAirCombat>
			<iAirCombatLimit>50</iAirCombatLimit>
			<iXPValueAttack>4</iXPValueAttack>
			<iXPValueDefense>4</iXPValueDefense>
			<iFirstStrikes>0</iFirstStrikes>
			<iChanceFirstStrikes>0</iChanceFirstStrikes>
			<iInterceptionProbability>100</iInterceptionProbability>
			<iEvasionProbability>0</iEvasionProbability>
			<iWithdrawalProb>0</iWithdrawalProb>
			<iCollateralDamage>0</iCollateralDamage>
			<iCollateralDamageLimit>0</iCollateralDamageLimit>
			<iCollateralDamageMaxUnits>0</iCollateralDamageMaxUnits>
			<iCityAttack>0</iCityAttack>
			<iCityDefense>0</iCityDefense>
			<iAnimalCombat>0</iAnimalCombat>
			<iHillsAttack>0</iHillsAttack>
			<iHillsDefense>0</iHillsDefense>
			<TerrainNatives/>
			<FeatureNatives/>
			<TerrainAttacks/>
			<TerrainDefenses/>
			<FeatureAttacks/>
			<FeatureDefenses/>
			<UnitClassAttackMods/>
			<UnitClassDefenseMods/>
			<UnitCombatMods/>
			<UnitCombatCollateralImmunes/>
			<DomainMods/>
			<BonusProductionModifiers/>
			<iBombRate>8</iBombRate>
			<iBombardRate>0</iBombardRate>
			<SpecialCargo>NONE</SpecialCargo>
			<DomainCargo>NONE</DomainCargo>
			<iCargo>0</iCargo>
			<iConscription>0</iConscription>
			<iCultureGarrison>0</iCultureGarrison>
			<iExtraCost>0</iExtraCost>
			<iAsset>3</iAsset>
			<iPower>15</iPower>
			<UnitMeshGroups>
				<iGroupSize>1</iGroupSize>
				<fMaxSpeed>0.75</fMaxSpeed>
				<fPadTime>1</fPadTime>
				<iMeleeWaveSize>1</iMeleeWaveSize>
				<iRangedWaveSize>1</iRangedWaveSize>
				<UnitMeshGroup>
					<iRequired>2</iRequired>
					<EarlyArtDefineTag>ART_DEF_UNIT_MESSER</EarlyArtDefineTag>
				</UnitMeshGroup>
			</UnitMeshGroups>
			<FormationType>FORMATION_TYPE_MACHINE</FormationType>
			<HotKey/>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<FreePromotions/>
			<LeaderPromotion>NONE</LeaderPromotion>
			<iLeaderExperience>0</iLeaderExperience>
		</UnitInfo>
		<UnitInfo>
			<Class>UNITCLASS_FW190</Class>
			<Type>UNIT_FW190</Type>
			<UniqueNames/>
			<Special>SPECIALUNIT_FIGHTER</Special>
			<Capture>NONE</Capture>
			<Combat>UNITCOMBAT_AIR</Combat>
			<Domain>DOMAIN_AIR</Domain>
			<DefaultUnitAI>UNITAI_DEFENSE_AIR</DefaultUnitAI>
			<Invisible>NONE</Invisible>
			<SeeInvisible>NONE</SeeInvisible>
			<Description>TXT_KEY_UNIT_FW190</Description>
			<Civilopedia>TXT_KEY_UNIT_FW190_PEDIA</Civilopedia>
			<Strategy>TXT_KEY_UNIT_FW190_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>0</bMilitaryHappiness>
			<bMilitarySupport>1</bMilitarySupport>
			<bMilitaryProduction>1</bMilitaryProduction>
			<bPillage>0</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>0</bFirstStrikeImmune>
			<bNoDefensiveBonus>0</bNoDefensiveBonus>
			<bIgnoreBuildingDefense>1</bIgnoreBuildingDefense>
			<bCanMoveImpassable>0</bCanMoveImpassable>
			<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
			<bFlatMovementCost>0</bFlatMovementCost>
			<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
			<bNukeImmune>0</bNukeImmune>
			<bPrereqBonuses>0</bPrereqBonuses>
			<bPrereqReligion>0</bPrereqReligion>
			<bMechanized>1</bMechanized>
			<bSuicide>0</bSuicide>
			<bHiddenNationality>0</bHiddenNationality>
			<bAlwaysHostile>0</bAlwaysHostile>
			<UnitClassUpgrades>
				<UnitClassUpgrade>
					<UnitClassUpgradeType>UNITCLASS_JET_FIGHTER</UnitClassUpgradeType>
					<bUnitClassUpgrade>1</bUnitClassUpgrade>
				</UnitClassUpgrade>
			</UnitClassUpgrades>
			<UnitClassTargets/>
			<UnitCombatTargets/>
			<UnitClassDefenders/>
			<UnitCombatDefenders/>
			<FlankingStrikes/>
			<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_DEFENSE_AIR</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
				<UnitAI>
					<UnitAIType>UNITAI_CARRIER_AIR</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_FLIGHT</PrereqTech>
			<TechTypes/>
			<BonusType>BONUS_OIL</BonusType>
			<PrereqBonuses/>
			<ProductionTraits/>
			<Flavors/>
			<iAIWeight>0</iAIWeight>
			<iCost>98</iCost>
			<iHurryCostModifier>0</iHurryCostModifier>
			<iAdvancedStartCost>100</iAdvancedStartCost>
			<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
			<iMinAreaSize>-1</iMinAreaSize>
			<iMoves>1</iMoves>
			<bNoRevealMap>0</bNoRevealMap>
			<iAirRange>6</iAirRange>
			<iAirUnitCap>1</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>0</iCombat>
			<iCombatLimit>0</iCombatLimit>
			<iAirCombat>12</iAirCombat>
			<iAirCombatLimit>50</iAirCombatLimit>
			<iXPValueAttack>4</iXPValueAttack>
			<iXPValueDefense>4</iXPValueDefense>
			<iFirstStrikes>0</iFirstStrikes>
			<iChanceFirstStrikes>0</iChanceFirstStrikes>
			<iInterceptionProbability>100</iInterceptionProbability>
			<iEvasionProbability>0</iEvasionProbability>
			<iWithdrawalProb>0</iWithdrawalProb>
			<iCollateralDamage>0</iCollateralDamage>
			<iCollateralDamageLimit>0</iCollateralDamageLimit>
			<iCollateralDamageMaxUnits>0</iCollateralDamageMaxUnits>
			<iCityAttack>0</iCityAttack>
			<iCityDefense>0</iCityDefense>
			<iAnimalCombat>0</iAnimalCombat>
			<iHillsAttack>0</iHillsAttack>
			<iHillsDefense>0</iHillsDefense>
			<TerrainNatives/>
			<FeatureNatives/>
			<TerrainAttacks/>
			<TerrainDefenses/>
			<FeatureAttacks/>
			<FeatureDefenses/>
			<UnitClassAttackMods/>
			<UnitClassDefenseMods/>
			<UnitCombatMods/>
			<UnitCombatCollateralImmunes/>
			<DomainMods/>
			<BonusProductionModifiers/>
			<iBombRate>8</iBombRate>
			<iBombardRate>0</iBombardRate>
			<SpecialCargo>NONE</SpecialCargo>
			<DomainCargo>NONE</DomainCargo>
			<iCargo>0</iCargo>
			<iConscription>0</iConscription>
			<iCultureGarrison>0</iCultureGarrison>
			<iExtraCost>0</iExtraCost>
			<iAsset>3</iAsset>
			<iPower>15</iPower>
			<UnitMeshGroups>
				<iGroupSize>1</iGroupSize>
				<fMaxSpeed>0.75</fMaxSpeed>
				<fPadTime>1</fPadTime>
				<iMeleeWaveSize>1</iMeleeWaveSize>
				<iRangedWaveSize>1</iRangedWaveSize>
				<UnitMeshGroup>
					<iRequired>2</iRequired>
					<EarlyArtDefineTag>ART_DEF_UNIT_FW190</EarlyArtDefineTag>
				</UnitMeshGroup>
			</UnitMeshGroups>
			<FormationType>FORMATION_TYPE_MACHINE</FormationType>
			<HotKey/>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<FreePromotions/>
			<LeaderPromotion>NONE</LeaderPromotion>
			<iLeaderExperience>0</iLeaderExperience>
		</UnitInfo>
and the civilization info where it says they are UU's
Code:
<Unit>
					<UnitClassType>UNITCLASS_MESSER</UnitClassType>
					<UnitType>UNIT_MESSER</UnitType>
				</Unit>
				<Unit>
					<UnitClassType>UNITCLASS_FW190</UnitClassType>
					<UnitType>UNIT_FW190</UnitType>
				</Unit>
Now this makes no sence to me because in pedia it says they both replace the fighter. Even in game you can build them both as replacements for fighter. What is weird is when you click on fighter, it does not say it is replaced by these.
 
That's because they don't replace the Fighter unitclass, they are their own (I believe that's what is happening here). I don''t know how to resolve it though.
 
Nope, no SDK this is strictly XML. It is modular though

They are seperate classes, of course, but my question is why in the world does the game think they replace fighters?

Anyway, do you think theres anyway to do this beside SDK? I will ask Jamie what he thinks about if he can put it in the mod but itd be easier without it
 
They are seperate classes, of course, but my question is why in the world does the game think they replace fighters?

How are they defined in UnitClassInfos? If there's a Fighter's name or class there, they may show up as Fighter UUs in the Civilopedia, even though they are not.
 
How are they defined in UnitClassInfos? If there's a Fighter's name or class there, they may show up as Fighter UUs in the Civilopedia, even though they are not.

Ahh yes you are right! Didnt even think to look at the classes
Code:
UnitClassInfo>
			<Type>UNITCLASS_MESSER</Type>
			<Description>TXT_KEY_UNIT_MESSER</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iInstanceCostModifier>0</iInstanceCostModifier>
			<DefaultUnit>UNIT_FIGHTER</DefaultUnit>
		</UnitClassInfo>
		<UnitClassInfo>
			<Type>UNITCLASS_FW190</Type>
			<Description>TXT_KEY_UNIT_FW190</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iInstanceCostModifier>0</iInstanceCostModifier>
			<DefaultUnit>UNIT_FIGHTER</DefaultUnit>
		</UnitClassInfo>
although it is not the class or description it is the default unit then technically it does replace it.

This does work in game though, Germany can't build a figher and can build both of these in game that replaces it. The only problem is in fighter it does not say it is replaced by this unit. Anyone see a way around that?(only way i see is have the unitclass of the unit be fighter, then in civ info have fw190 but that creates other problems) Or see any other problems that oculd happen using this method?
 
Is the DefaultUnit the only thing that prevents Germany from building the Fighter, or do they have the unit for UNITCLASS_FIGHTER set up as NONE in CivilizationInfos? (I'd assume that's needed).

The only problem is in fighter it does not say it is replaced by this unit. Anyone see a way around that?

Edit the pedia text infos in CvGameTextMgr.cpp (setUnitHelp method). Personally I removed most instances of Civilopedia showing what Unit replaces what in the SDK, because when you have like 100 UUs it becomes a mess and is no longer relevant... i.e. fighter replaced by... a list of 20 units.
 
No he does not, which is a bit weird, I would think so as well:confused:

As for the pedia text, not exactly sure where to do that? I mean my first guess was just the help in the unit xml, but that will be a pain, expecially because I got to figure out how to put help on top, as well as got to figure out how to link them, then I got to do a link for each one (which is around 425) which would take forever expecially since now if I choose to do this, I got to change and create 425 unit classes.
Think theres a way to do it SDK wise where there can just simply be more than one UU?
 
Think theres a way to do it SDK wise where there can just simply be more than one UU?

While most things are doable, this one is a really bad idea. You see, there's a method in the DLL called getCivilizationUnits which returns the unit type for a given civilization type & unit class. This method is used all over the sourcecode, the game uses it for many purposes and it's essentially incompatible with the concept of "multiple UUs". You'd be looking at some major coding work in many places, so using one of the workarounds is a better idea, especially since DLL changes to Civilopedia text infos are quite simple.

Personally I implemented multiple UUs the other way, by defining them as separate classes and disabling them for other civs. It's either a matter of copypasting a lot of stuff in CivilizationInfos (with regular expressions it's fast) or fixing the stupid Civ4 bug that doesn't let you have NONE as default unit type (it's probably an easy fix, I never bothered, but might look into it if there's need).
 
As for the pedia text, not exactly sure where to do that?

Look for TXT_KEY_REPLACED_BY_UNIT for the code that prints "Replaced by..."
and TXT_KEY_REPLACES_UNIT for the code that prints "Replaces..."

That's where an extra check is needed, although I won't give you a solution for the trick with DefaultUnit off top of my head. If you go this route and need help, say so and I'll look into it.

For stuff like "425 unit classes" I really recommend learning regular expressions. It appears really difficult at first, and turns out even more difficult... but even the basics can help you save hours of precious time that would be spent pressing CTRL-C and CTRL-V repeatedly. In the end you can edit a text file in 425 places at once with like 2 lines of regexp.
 
Look for TXT_KEY_REPLACED_BY_UNIT for the code that prints "Replaced by..."
and TXT_KEY_REPLACES_UNIT for the code that prints "Replaces..."

That's where an extra check is needed, although I won't give you a solution for the trick with DefaultUnit off top of my head. If you go this route and need help, say so and I'll look into it.

For stuff like "425 unit classes" I really recommend learning regular expressions. It appears really difficult at first, and turns out even more difficult... but even the basics can help you save hours of precious time that would be spent pressing CTRL-C and CTRL-V repeatedly. In the end you can edit a text file in 425 places at once with like 2 lines of regexp.
Well due to my little (although some, but little) knowledge of python I am sure I will need help. I can ask platyping as he has done things like this before.

As for regular expressions, well I got no idea what that is:lol:
 
As for regular expressions, well I got no idea what that is:lol:

It's a way of searching for and replacing patterns in text. The patterns can be very complex and let you do stuff like replacing all contents of a specific XML tag with NONE, or turning all unit names into XML keys i.e. all tags like <Description>FW-190</Description> can be turned into <Description>TXT_KEY_UNIT_FW_190</Description> with one click, or turn a plain list of unit names into a full XML file with all tags... with one click (handy for language files).
 
It's a way of searching for and replacing patterns in text. The patterns can be very complex and let you do stuff like replacing all contents of a specific XML tag with NONE, or turning all unit names into XML keys i.e. all tags like <Description>FW-190</Description> can be turned into <Description>TXT_KEY_UNIT_FW_190</Description> with one click, or turn a plain list of unit names into a full XML file with all tags... with one click (handy for language files).

Ahh yes I requested that to J_mie6 a while ago and he came out with seomthing like that. I could see how that would be helpful but gotta learn new things then:cry::lol:
 
Top Bottom