The Civ4BonusInfos file defines all of the game's resources as well as their effects, like providing extra health and happiness.
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.
|Type||The internal name of this Resource.|
|Description||A reference to the text files, which contain an entry for this resource.|
|Civilopedia||Refers to a tag in the Civ4GameText file which stores the Civilopedia description for the bonus.|
|BonusClassType||Used to specify the category of the bonus. Must be a name coming from the file "Civ4BonusClassInfos" where a frequency for each bonus class can be stated.|
|ArtDefineTag||Refers to a tag in the Civ4ArtDefines Bonus files|
|TechReveal||States which technology enables the resource.|
|TechCityTrade||The technology that enables the trading of this resource.|
|TechObsolete||The technology that obsoletes the resource|
All of these tags have a numerical value. Though it sometimes can be negative, it usually is not.
|iAITradeModifier||The number defines how much the AI values the resource, the higher the number, the more the value.|
|iAIObjective||Unknown, the value is 0 for all resources|
|iHealth||change in healthiness the resource provides|
|iHappiness||change in happyness the resource provides|
|iPlacementOrder||The order in which bonuses are placed, starting at zero and counting up. All of the zero resources will be placed before proceed to those with iPlacementOrder 1 and so on. If after the higher priority bonuses are placed there are no available squares left, then none of the lower priority bonuses will actually appear.|
|iConstAppearance||The chance that the resource will be placed on the map|
|iMinAreaSize||Minimum needed size of island or continent to make appear the resource|
|iMinLatitude||Minimum distance from equator.|
|iMaxLatitude||Maximum distance from equator.|
|iPlayer||Approximate occurances per player, in percent (%), so 150 is about 1.5 per player.|
|iTilesPer||The fixed number of additional occurances per x tiles, so 120 would mean an additional occurance every 120 tiles existing on the map.|
|iMinLandPercent||If a resource can be on land and ocean, this is percantage that will be located on land.|
|iUnique||This is the range in tiles that this resource will be unique, all tiles within this radius are invalid for another resource.|
|iGroupRange||If non-zero, every time this resource is placed, all tiles within iGroupRange radius have a iGroupRand chance to have this resource.|
|iGroupRand||If iGroupRange is non-zero, this is the percentage chance that each tile within iGroupRange radius will contain that resource.|
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".
|bArea||if this is set and the map has more than one continent this resource will only be placed on one continent instead of all possible.|
|bHills||If the resource may appear only on hills.|
|bFlatlands||If the resource may appear only on flat land.|
|bNoRiverSide||If the resource can not appear next to a river|
|bNormalize||means it is used for starting location normalization (extra resources that are added to even out starting locations)|
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).
|YieldChanges||Defines the change in city yield, using iYield. There are three iYield tags: the first is for food per turn change, the second for hammers per turn, and the third for commerce per turn (e.g. the Palace provides 8 free commerce per turn).|
|TerrainBooleans||Defines which terrain types the resource may appear on.|
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.
<BonusInfos> <BonusInfo> <Type>BONUS_HORSE</Type> <Description>TXT_KEY_BONUS_HORSE</Description> <Civilopedia>TXT_KEY_BONUS_HORSE_PEDIA</Civilopedia> <BonusClassType>BONUSCLASS_RUSH</BonusClassType> <ArtDefineTag>ART_DEF_BONUS_HORSE</ArtDefineTag> <TechReveal>TECH_ANIMAL_HUSBANDRY</TechReveal> <TechCityTrade>TECH_ANIMAL_HUSBANDRY</TechCityTrade> <TechObsolete>NONE</TechObsolete> <YieldChanges> <iYieldChange>0</iYieldChange> <iYieldChange>1</iYieldChange> <iYieldChange>0</iYieldChange> </YieldChanges> <iAITradeModifier>0</iAITradeModifier> <iAIObjective>0</iAIObjective> <iHealth>0</iHealth> <iHappiness>0</iHappiness> <iPlacementOrder>1</iPlacementOrder> <iConstAppearance>100</iConstAppearance> <iMinAreaSize>3</iMinAreaSize> <iMinLatitude>0</iMinLatitude> <iMaxLatitude>80</iMaxLatitude> <Rands> <iRandApp1>10</iRandApp1> <iRandApp2>10</iRandApp2> <iRandApp3>0</iRandApp3> <iRandApp4>0</iRandApp4> </Rands> <iPlayer>100</iPlayer> <iTilesPer>256</iTilesPer> <iMinLandPercent>0</iMinLandPercent> <iUnique>6</iUnique> <iGroupRange>0</iGroupRange> <iGroupRand>0</iGroupRand> <bArea>0</bArea> <bHills>0</bHills> <bFlatlands>1</bFlatlands> <bNoRiverSide>1</bNoRiverSide> <bNormalize>0</bNormalize> <TerrainBooleans> <TerrainBoolean> <TerrainType>TERRAIN_GRASS</TerrainType> <bTerrain>1</bTerrain> </TerrainBoolean> <TerrainBoolean> <TerrainType>TERRAIN_PLAINS</TerrainType> <bTerrain>1</bTerrain> </TerrainBoolean> <TerrainBoolean> <TerrainType>TERRAIN_TUNDRA</TerrainType> <bTerrain>1</bTerrain> </TerrainBoolean> </TerrainBooleans> <FeatureBooleans/> <FeatureTerrainBooleans/> </BonusInfo> </BonusInfos>