UnitPromotions xml error in database

ScoopJohn

Chieftain
Joined
Oct 30, 2015
Messages
47
I was in the middle of working on my anime mod, few other civilizations are done well, except now i'm struck once again in another fatal error, but due that i can't still understand what's wrong, can somebody explain this database log error?

Code:
[25221.343] no such table: Language_zh_CN
[25221.343] In Query - insert into Language_zh_CN('Tag', 'Text') values (?, ?);
[25221.343] In XMLSerializer while updating table Language_zh_CN from file Localization/IGE_ZH_CN.xml.
[25222.078] table UnitPromotions_Features has no column named TerrainType
[25222.078] In Query - insert into UnitPromotions_Features('PromotionType', 'TerrainType', 'Attack') values (?, ?, ?);
[25222.078] In XMLSerializer while updating table UnitPromotions_Features from file XML/Units/CIV5UnitPromotions.xml.

I'm not perfect at translating this error in clean language so anybody here could be great at telling me what's wrong.

For some reason while i was trying to upload an attachment of my mod, the file size is larger than 20+ MB as usual and i can't get to upload it due to a missing security token. So here's instead the XML of the CIV5UnitPromotions.xml file, try to see if you can get to find out what's the error.

Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Created by ModBuddy on 2/8/2016 2:29:50 PM -->
<GameData>
	<UnitPromotions>
		<Row>
			<Type>PROMOTION_POLARSCRAMBLE</Type>
			<Description>TXT_KEY_PROMOTION_POLARSCRAMBLE</Description>
			<Help>TXT_KEY_PROMOTION_POLARSCRAMBLE_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>22</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_POLARSCRAMBLE</PediaEntry>
		</Row>
		<Row>
			<Type>PROMOTION_LOVESUN</Type>
			<Description>TXT_KEY_PROMOTION_LOVESUN</Description>
			<Help>TXT_KEY_PROMOTION_LOVESUN_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>9</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_LOVESUN</PediaEntry>
			<AdjacentTileHealChange>15</AdjacentTileHealChange>
		</Row>
		<Row>
			<Type>PROMOTION_SLAVICREB</Type>
			<Description>TXT_KEY_PROMOTION_SLAVICREB</Description>
			<Help>TXT_KEY_PROMOTION_SLAVICREB_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>13</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_SLAVICREB</PediaEntry>
		</Row>
	</UnitPromotions>

	<UnitPromotions_Features>
		<Row>
			<PromotionType>PROMOTION_POLARSCRAMBLE</PromotionType>
			<TerrainType>FEATURE_SNOW</TerrainType>
			<Attack>50</Attack>
		</Row>
	</UnitPromotions_Features>

	<UnitPromotions_UnitCombatMods>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_ARCHER</UnitCombatType>
			<Modifier>40</Modifier>
		</Row>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_MELEE</UnitCombatType>
			<Modifier>30</Modifier>
		</Row>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_RECON</UnitCombatType>
			<Modifier>50</Modifier>
		</Row>
	</UnitPromotions_UnitCombatMods>
</GameData>
 
The key bit
Code:
table UnitPromotions_Features has no column named TerrainType
Can put terrains in the features table!
 
The key bit
Code:
table UnitPromotions_Features has no column named TerrainType
Can put terrains in the features table!

I don't understand what your saying....
EDIT: I think i got it, the modiki had a mispelling on the table names on some pages...how really strange.....
 
Terrain and features are two different things.

You're looking for: UnitPromotions_Terrain not UnitPromotions_Features

Snow isn't a feature, it's a terrain. Features are either Natural Wonders or on a tile. Forests, jungle, marshes, and flood plains are examples. Snow, Tundra, Grasslands, or Plains are examples of terrain.
 
For BNW, in folder C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization V\assets\DLC\Expansion2\Gameplay\XML\Units* there is a file called CIV5UnitPromotions.xml. If you open this file, and look at the top of the file, you will find a series of table definitions:
Spoiler :
Code:
<Table name="UnitPromotions">
	<!-- Basic info -->
	<Column name="ID" type="integer" primarykey="true" autoincrement="true"/>
	<Column name="Type" type="text" notnull="true" unique="true"/>
	<Column name="Description" type="text" reference="Language_en_US(Tag)"/>
	<Column name="Help" type="text" default="" reference="Language_en_US(Tag)"/>
	<Column name="DisabledHelp" type="text" default=""/>
	<Column name="Button" type="text"/>
	<Column name="PortraitIndex" type="integer" default="9"/>
	<Column name="IconAtlas" type="text" default="ABILITY_ATLAS" reference="IconTextureAtlases(Atlas)"/>
	<!-- Hotkey info -->
	<Column name="HotKey" type="text"/>
	<Column name="HotKeyAlt" type="text"/>
	<Column name="HotKeyPriority" type="integer" default="0"/>
	<Column name="HotKeyPriorityAlt" type="integer" default="0"/>
	<Column name="OrderPriority" type="integer" default="0"/>
	<Column name="AltDown" type="boolean" default="false"/>
	<Column name="AltDownAlt" type="boolean" default="false"/>
	<Column name="ShiftDown" type="boolean" default="false"/>
	<Column name="ShiftDownAlt" type="boolean" default="false"/>
	<Column name="CtrlDown" type="boolean" default="false"/>
	<Column name="CtrlDownAlt" type="boolean" default="false"/>
	<!-- UnitPromotions info -->
	<Column name="Sound" type="text"/>
	<Column name="CannotBeChosen" type="boolean" default="false"/>
	<Column name="LostWithUpgrade" type="boolean" default="false"/>
	<Column name="NotWithUpgrade" type="boolean" default="false"/>
	<Column name="InstaHeal" type="boolean" default="false"/>
	<Column name="Leader" type="boolean" default="false"/>
	<Column name="Blitz" type="boolean" default="false"/>
	<Column name="Amphib" type="boolean" default="false"/>
	<Column name="River" type="boolean" default="false"/>
	<Column name="EnemyRoute" type="boolean" default="false"/>
	<Column name="RivalTerritory" type="boolean" default="false"/>
	<Column name="MustSetUpToRangedAttack" type="boolean" default="false"/>
	<Column name="RangedSupportFire" type="boolean" default="false"/>
	<Column name="CanMoveAfterAttacking" type="boolean" default="false"/>
	<Column name="AlwaysHeal" type="boolean" default="false"/>
	<Column name="HealOutsideFriendly" type="boolean" default="false"/>
	<Column name="HillsDoubleMove" type="boolean" default="false"/>
	<Column name="RoughTerrainEndsTurn" type="boolean" default="false"/>
	<Column name="IgnoreTerrainCost" type="boolean" default="false"/>
	<Column name="HoveringUnit" type="boolean" default="false"/>
	<Column name="FlatMovementCost" type="boolean" default="false"/>
	<Column name="CanMoveImpassable" type="boolean" default="false"/>
	<Column name="NoCapture" type="boolean" default="false"/>
	<Column name="OnlyDefensive" type="boolean" default="false"/>
	<Column name="NoDefensiveBonus" type="boolean" default="false"/>
	<Column name="NukeImmune" type="boolean" default="false"/>
	<Column name="HiddenNationality" type="boolean" default="false"/>
	<Column name="AlwaysHostile" type="boolean" default="false"/>
	<Column name="NoRevealMap" type="boolean" default="false"/>
	<Column name="Recon" type="boolean" default="false"/>
	<Column name="CanMoveAllTerrain" type="boolean" default="false"/>
	<Column name="FreePillageMoves" type="boolean" default="false"/>
	<Column name="AirSweepCapable" type="boolean" default="false"/>
	<Column name="AllowsEmbarkation" type="boolean" default="false"/>
	<Column name="EmbarkedAllWater" type="boolean" default="false"/>
	<Column name="HealIfDestroyExcludesBarbarians" type="boolean" default="false"/>
	<Column name="RangeAttackIgnoreLOS" type="boolean" default="false"/>
	<Column name="CityAttackOnly" type="boolean" default="false"/>
	<Column name="CaptureDefeatedEnemy" type="boolean" default="false"/>
	<Column name="HealOnPillage" type="boolean" default="false"/>
	<Column name="IgnoreGreatGeneralBenefit" type="boolean" default="false"/>
	<Column name="IgnoreZOC" type="boolean" default="false"/>
	<Column name="HasPostCombatPromotions" type="boolean" default="false"/>
	<Column name="PostCombatPromotionsExclusive" type="boolean" default="false"/>
	<Column name="RangedAttackModifier" type="integer" default="0"/>
	<Column name="InterceptionCombatModifier" type="integer" default="0"/>
	<Column name="InterceptionDefenseDamageModifier" type="integer" default="0"/>
	<Column name="AirSweepCombatModifier" type="integer" default="0"/>
	<Column name="ExtraAttacks" type="integer" default="0"/>
	<Column name="ExtraNavalMovement" type="integer" default="0"/>
	<Column name="VisibilityChange" type="integer" default="0"/>
	<Column name="MovesChange" type="integer" default="0"/>
	<Column name="MoveDiscountChange" type="integer" default="0"/>
	<Column name="RangeChange" type="integer" default="0"/>
	<Column name="InterceptChanceChange" type="integer" default="0"/>
	<Column name="NumInterceptionChange" type="integer" default="0"/>
	<Column name="EvasionChange" type="integer" default="0"/>
	<Column name="CargoChange" type="integer" default="0"/>
	<Column name="EnemyHealChange" type="integer" default="0"/>
	<Column name="NeutralHealChange" type="integer" default="0"/>
	<Column name="FriendlyHealChange" type="integer" default="0"/>
	<Column name="SameTileHealChange" type="integer" default="0"/>
	<Column name="AdjacentTileHealChange" type="integer" default="0"/>
	<Column name="EnemyDamageChance" type="integer" default="0"/>
	<Column name="NeutralDamageChance" type="integer" default="0"/>
	<Column name="EnemyDamage" type="integer" default="0"/>
	<Column name="NeutralDamage" type="integer" default="0"/>
	<Column name="CombatPercent" type="integer" default="0"/>
	<Column name="CityAttack" type="integer" default="0"/>
	<Column name="CityDefense" type="integer" default="0"/>
	<Column name="RangedDefenseMod" type="integer" default="0"/>
	<Column name="HillsAttack" type="integer" default="0"/>
	<Column name="HillsDefense" type="integer" default="0"/>
	<Column name="OpenAttack" type="integer" default="0"/>
	<Column name="OpenRangedAttackMod" type="integer" default="0"/>
	<Column name="OpenDefense" type="integer" default="0"/>
	<Column name="RoughAttack" type="integer" default="0"/>
	<Column name="RoughRangedAttackMod" type="integer" default="0"/>
	<Column name="RoughDefense" type="integer" default="0"/>
	<Column name="AttackFortifiedMod" type="integer" default="0"/>
	<Column name="AttackWoundedMod" type="integer" default="0"/>
	<Column name="FlankAttackModifier" type="integer" default="0"/>
	<Column name="NearbyEnemyCombatMod" type="integer" default="0"/>
	<Column name="NearbyEnemyCombatRange" type="integer" default="0"/>
	<Column name="UpgradeDiscount" type="integer" default="0"/>
	<Column name="ExperiencePercent" type="integer" default="0"/>
	<Column name="AdjacentMod" type="integer" default="0"/>
	<Column name="AttackMod" type="integer" default="0"/>
	<Column name="DefenseMod" type="integer" default="0"/>
	<Column name="DropRange" type="integer" default="0"/>
	<Column name="GreatGeneral" type="boolean" default="0"/>
	<Column name="GreatAdmiral" type="boolean" default="0"/>
	<Column name="GreatGeneralModifier" type="integer" default="0"/>
	<Column name="GreatGeneralReceivesMovement" type="boolean" default="0"/>
	<Column name="GreatGeneralCombatModifier" type="integer" default="0"/>
	<Column name="FriendlyLandsModifier" type="integer" default="0"/>
	<Column name="FriendlyLandsAttackModifier" type="integer" default="0"/>
	<Column name="OutsideFriendlyLandsModifier" type="integer" default="0"/>
	<Column name="HPHealedIfDestroyEnemy" type="integer" default="0"/>
	<Column name="ExtraWithdrawal" type="integer" default="0"/>
	<Column name="EmbarkExtraVisibility" type="integer" default="0"/>
	<Column name="EmbarkDefenseModifier" type="integer" default="0"/>
	<Column name="CapitalDefenseModifier" type="integer" default="0"/>
	<Column name="CapitalDefenseFalloff" type="integer" default="0"/>
	<Column name="CityAttackPlunderModifier" type="integer" default="0"/>
	<Column name="ReligiousStrengthLossRivalTerritory" type="integer" default="0"/>
	<Column name="TradeMissionInfluenceModifier" type="integer" default="0"/>
	<Column name="TradeMissionGoldModifier" type="integer" default="0"/>
	<Column name="GoldenAgeValueFromKills" type="integer" default="0"/>
	<Column name="Sapper" type="boolean" default="false"/>
	<Column name="HeavyCharge" type="boolean" default="false"/>
	<Column name="LayerAnimationPath" type="text" default="NULL"/>
	<Column name="TechPrereq" type="text" reference="Technologies(Type)" default="NULL"/>
	<Column name="Invisible" type="text" reference="InvisibleInfos(Type)" default="NULL"/>
	<Column name="SeeInvisible" type="text" reference="InvisibleInfos(Type)" default="NULL"/>
	<Column name="PromotionPrereq" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr1" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr2" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr3" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr4" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr5" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr6" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr7" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr8" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr9" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<!-- Pedia specific info -->
	<Column name="PediaType" type="text"/>
	<Column name="PediaEntry" type="text" reference="Language_en_US(Tag)"/>
</Table>
<Table name="UnitPromotions_Terrains">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="TerrainType" type="text" reference="Terrains(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_Features">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="FeatureType" type="text" reference="Features(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitClasses">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitClassType" type="text" reference="UnitClasses(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="Attack" type="integer"/>
	<Column name="Defense" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_Domains">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="DomainType" type="text" reference="Domains(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitCombatMods">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitCombatType" type="text" reference="UnitCombatInfos(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitCombats">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitCombatType" type="text" reference="UnitCombatInfos(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_CivilianUnitType">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitType" type="text" reference="Units(Type)"/>
</Table>
<Table name="UnitPromotions_PostCombatRandomPromotion">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="NewPromotion" type="text" reference="UnitPromotions(Type)"/>
</Table>
These are quite literally the definitions of the column-names each game-table uses within the UnitPromotions portion of the game's XML. You cannot have any column-name present within a game-table where that specific column-name is not assigned to be used in that game-table.

So, for table UnitPromotions_Features, the game has this definition:
Code:
<Table name="UnitPromotions_Features">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="FeatureType" type="text" reference="Features(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
There is no column called TerrainType listed in the definition of what is allowed within table UnitPromotions_Features. Hence the error in the Database.log and the rejection by the game of the entire contents of the file where you attempted to use a column called TerrainType within game-table UnitPromotions_Features.

*Your exact file path might be slightly different if you have Windows7, XP, etc.
 
Back
Top Bottom