Civ4FeatureInfos
The Civ4FeatureInfos file defines the various feature on the map (forest, jungle, etc.) that exist in the game.
All tags must be opened and closed; the first is the "open", the second the "close" tag. If nothing goes inside a "list tag", then it should just be the opening tag with a "/" before the closing bracket. The following tables contain all available tags, as well as their purpose and accepted values.
This page is missing information. Do not remove this notice until it is complete.
Tags
Headers
These tags typically bracket other tags, sometimes the entire file, and are generally used to specify more than one piece of data.
Tag Name | Description |
---|---|
FeatureInfos | This tag surrounds the entries in the file |
FeatureInfo | Main bracket for each entry |
Text
Tag Name | Description |
---|---|
Type | How the feature is referred to in other files |
Description | The text for the feature in the game |
Civilopedia | The pedia entry for the feature |
Help | Any additional text displayed for the feature |
OnUnitChangeTo | unknown |
WorldSoundscapeAudioScript | Audio played on close zooms for plots with the feature |
Integers
All of these tags have a numerical value. Though it sometimes can be negative, it usually is not.
Tag Name | Description |
---|---|
iMovement | Movement cost for units entering a plot due to the feature |
iSeeThrough | unknown |
iHealthPercent | Modifier to health of city with feature nearby; ex: iHeathPercent = -25 means that each plot with the feature causes .25 unhealthiness to the city |
iDefense | Defensive bonus (percent) given to unit on a plot with the feature |
iAppearance | unknown; affects amount generated by map at the start of the game |
iDisappearance | unknown |
iGrowth | unknown; affects chance for feature to spread to surrounding tiles with no other features, improvements, or routes |
iTurnDamage | Damage, in hit points, given to each unit on a plot with the feature each turn |
iEffectProbability | Chance for effect listed in EffectType to occur when a unit enters the plot with the feature |
iAdvancedStartRemoveCost | Cost to remove the feature in advanced start |
Boolean
All of these can either be 1 (on, or true) or 0 (off, or false). Be careful, as you can wind up with a double-negative, which the game will interpret as "True".
Tag Name | Description |
---|---|
bNoCoast | Whether the feature is allowed on a tile next to the coast |
bNoRiver | Whether the feature is allowed on a tile next to a river |
bNoAdjacent | Whether the feature is allowed on a tile next to a tile with the same feature |
bRequiresFlatlands | Whether the feature requires a flat tile (as in, not hills or peaks) |
bRequiresRiver | Whether the feature must be next to the river |
bAddsFreshWater | Whether the feature is counted as fresh water |
bImpassible | Whether the feature is impassible or not |
bNoCity | Whether or not the feature removes the ability to found a city on the tile |
bNoImprovement | Whether or not the feature makes it impossible to build an improvement on the tile |
bVisibleAlways | unknown |
bNukeImmune | Whether the feature is immune to destruction by nukes or not |
Lists (Multi-line)
All List tags consist of an opening/closing tag, which is shown here, and then each entry within it is another tag with the same name as the parent tag, minus the "s" (i.e. singular, rather than plural).
Tag Name | Description |
---|---|
YieldChanges | Change to yield of the plot due to feature; first is food, then production, then commerce
<iYieldChange>0</iYieldChange> |
RiverYieldChange | Additional change to yield of the plot due to feature when next to river; first is food, then production, then commerce
<iYieldChange>0</iYieldChange> |
HillsYieldChange | Additional change to yield of the plot due to feature when on a hill; first is food, then production, then commerce
<iYieldChange>0</iYieldChange> |
TerrainBooleans | Terrains the feature can appear on
<TerrainBoolean> <TerrainType>TERRAIN_COAST</TerrainType> <bTerrain>1</bTerrain> </TerrainBoolean> |
FootstepSounds | Sound played when unit enters a plot with the feature for different unit types
<FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_HUMAN</FootstepAudioType> <FootstepAudioScript>AS3D_UN_FOOT_UNIT_SNOW</FootstepAudioScript> </FootstepSound> |
Art
These tags are directly related to the rendering of art for the entry.
Tag Name | Description |
---|---|
ArtDefineTag | The tag for the art define, in Civ4ArtDefines_Feature |
EffectType | Effect that can occur when a unit enters a plot with the feature |
Example
In the following example of code, please note that there is a specific order of all of the tags. You must list the tags in this order for the game to properly interpret your file.
<FeatureInfo> <Type>FEATURE_JUNGLE</Type> <Description>TXT_KEY_FEATURE_JUNGLE</Description> <Civilopedia>TXT_KEY_FEATURE_JUNGLE_PEDIA</Civilopedia> <ArtDefineTag>ART_DEF_FEATURE_JUNGLE</ArtDefineTag> <YieldChanges> <iYieldChange>-1</iYieldChange> <iYieldChange>0</iYieldChange> <iYieldChange>0</iYieldChange> </YieldChanges> <RiverYieldChange/> <HillsYieldChange/> <iMovement>2</iMovement> <iSeeThrough>1</iSeeThrough> <iHealthPercent>-25</iHealthPercent> <iDefense>50</iDefense> <iAppearance>0</iAppearance> <iDisappearance>0</iDisappearance> <iGrowth>16</iGrowth> <iTurnDamage>0</iTurnDamage> <bNoCoast>0</bNoCoast> <bNoRiver>0</bNoRiver> <bNoAdjacent>0</bNoAdjacent> <bRequiresFlatlands>0</bRequiresFlatlands> <bRequiresRiver>0</bRequiresRiver> <bAddsFreshWater>0</bAddsFreshWater> <bImpassable>0</bImpassable> <bNoCity>0</bNoCity> <bNoImprovement>0</bNoImprovement> <bVisibleAlways>0</bVisibleAlways> <bNukeImmune>0</bNukeImmune> <OnUnitChangeTo/> <TerrainBooleans> <TerrainBoolean> <TerrainType>TERRAIN_GRASS</TerrainType> <bTerrain>1</bTerrain> </TerrainBoolean> </TerrainBooleans> <FootstepSounds> <FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_HUMAN</FootstepAudioType> <FootstepAudioScript>AS3D_UN_FOOT_UNIT_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_HUMAN_LOW</FootstepAudioType> <FootstepAudioScript>AS3D_UN_FOOT_UNIT_LOW_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL</FootstepAudioType> <FootstepAudioScript>AS3D_UN_ANIMAL_FOOT_LARGE_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL_LOW</FootstepAudioType> <FootstepAudioScript>AS3D_UN_ANIMAL_FOOT_LARGE_LOW_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>FOOTSTEP_AUDIO_HORSE</FootstepAudioType> <FootstepAudioScript>AS3D_UN_HORSE_RUN_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_WHEELS</FootstepAudioType> <FootstepAudioScript/> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_WHEELS</FootstepAudioType> <FootstepAudioScript/> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_WHEELS_2</FootstepAudioType> <FootstepAudioScript/> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_WHEELS_2</FootstepAudioType> <FootstepAudioScript/> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_TANK</FootstepAudioType> <FootstepAudioScript>AS3D_UN_TANK_LOOP_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_TANK</FootstepAudioType> <FootstepAudioScript>AS3D_UN_TANK_END_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_MOD_ARMOUR</FootstepAudioType> <FootstepAudioScript>AS3D_UN_MOD_ARMOUR_LOOP_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_MOD_ARMOUR</FootstepAudioType> <FootstepAudioScript>AS3D_UN_MOD_ARMOUR_END_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_ARTILLERY</FootstepAudioType> <FootstepAudioScript>AS3D_UN_ARTILL_RUN_LOOP_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_ARTILLERY</FootstepAudioType> <FootstepAudioScript>AS3D_UN_ARTILL_RUN_END_FOREST</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>LOOPSTEP_WHEELS_3</FootstepAudioType> <FootstepAudioScript>AS3D_UN_TREBUCHET_RUN_LEAVES</FootstepAudioScript> </FootstepSound> <FootstepSound> <FootstepAudioType>ENDSTEP_WHEELS_3</FootstepAudioType> <FootstepAudioScript>AS3D_UN_TREBUCHET_STOP_LEAVES</FootstepAudioScript> </FootstepSound> </FootstepSounds> <WorldSoundscapeAudioScript>ASSS_JUNGLE_SELECT_AMB</WorldSoundscapeAudioScript> <EffectType>EFFECT_BIRDSCATTER</EffectType> <iEffectProbability>15</iEffectProbability> <iAdvancedStartRemoveCost>40</iAdvancedStartRemoveCost> </FeatureInfo>