This section describes to the Civ4 engine the game setup parameters. Specifically they refer to the options you choose when starting a new game from the menu. Below is a list of ALL possible variables, and the values they can have.
Tutorial= the setting to turn on the tutorial. By default this setting is 0 which mean do not turn the tutorial on. Setting this value to 1 will turn on the Civ4 tutorial.
Era= the era that the game is to start in. This value can be any of the Civ4 eras as defined in CIV4EraInfos.xml. Default is NONE.
Speed= the speed of the game. This is where you can set if the game is NORMAL speed or EPIC as defined in CIV4GameSpeedInfo.xml. Default is NONE.
Calendar= the calendar used in the scenario. This is what determines the date as displayed on the main screen and the time jump between turns. This is defined in CIV4BasicInfos.xml. Default is CALENDAR_DEFAULT.
Option= the selected game options (not player options) in the scenario. These options are defined in CIV4GameOptionInfos.xml and you can have any number of these options set in the scenario. EG: You can have Option=GAMEOPTION_NO_CITY_RAZING and on the next line Option=GAMEOPTION_NO_CITY_FLIPPING. Default is no options specified.
MPOption= the selected multi-player options in the scenario. These options are defined in CIV4MPOptionInfos.xml and as per Options= you can have any number in your scenario. Default is no options specified.
ForceControl= the specified options that cannot be changed in the scenario. By setting these options they appear greyed out in the scenario setup menu so the player cannot change them. Default is no forced options specified. These values are defined in CIV4ForceControlInfos.xml.
Victory= the different victory types in the scenario. These are defined in CIV4VictoryInfo.xml and you may specify any/all of them. Each victory must be specified on it's own line like the last few settings. By defining a victory type it means the player/AI has the possibility of winning the game that way. Default is no victory types set (and no defined victory types mean all are possible). But if you define any (even just one) then all others are locked out.
GameTurn= the game turn that the scenario begins on. Every scenario starts turn 0 (the first turn is defined as zero) but you can start the scenario on a different turn number by defining this variable. EG: WW2 started September 1939. You define the calendar as CALENDAR_MONTHS. The first turn is always the first calendar segment (in this case January). To specify September you would set GameTurn=8.
MaxTurns= the maximum number of turns in the scenario. This must be set higher than GameTurn (obviously can't start after the end). EG: You have a scenario that you want to run for 300 years, and your calendar is set to CALENDAR_YEARS. Setting MaxTurns=300 will end the game with score victory after turn 299 (remember 0 is the first turn).
MaxCityElimination= the number of cities a multi-player player can lose before losing the game. EG: MaxCityElimination=3 means that each player will lose the game if they lose 3 cities.
TargetScore= the score a player must achieve to win the game. For an example the Desert War scenario uses TargetScore=6 as there are 6 objective cities in the game. If one team holds all 6 cities then they win the game. By itself you can define the actual score a player must achieve (in the score list on the right of the interface) but coupled with python can be an extremely powerful scoring utility. You must have Victory=VICTORY_SCORE for this method to work.
StartYear= the physical date that the game begins in. EG: WW2 starts in 1939 so you would set StartYear=1939. To specify a BC date use a negative number. Default is -4000 (4000BC).
Description= the text displayed in the scenario menu when the scenario is selected. It displays under the map window.
ModPath= the path to the folder containing your modified files. Only set this if you have also modified xml or python files. Otherwise save you WBS file to PublicMaps and leave this line blank. If set it will force the scenario to use the settings in the mod folder defined rather than the default settings of Civ4. EG: ModPath=Mods\MyMod\.
This ends the description of ALL settings possible in the BeginGame section of the WBS file.
This section of the WBS file describes each team (not player) in the scenario. In SP games you can even create teams. Please note: every player MUST be part of a team, even if there is only one player in the team. Below is a list of ALL possible variables, and the values they can have.
Tech= the list of technologies that the team begins with. By defining a list of techs here you control how much prior knowledge each team will begin with. EG: Tech=TECH_MYSTICISM will give the tech mysticism to the team. These are defined in CIV4TechInfos.xml.
ContactWithTeam= the amount of diplomatic contacts the team has. Each diplomatic contact is defined seperately. EG: ContactWithTeam=0 and on the next line ContactWithTeam=1 will enable diplomacy between the two teams.
AtWar= the list of teams that this team begins at war with. EG: AtWar=1 means this team will be at war with team 1 at the onset of the scenario.
PermanentWarPeace= the list of teams that the status of war/peace cannot be changed for. EG: Team 0 has AtWar=1 and PermanentWarPeace=1 and PermanentWarPeace=2. This means team 0 cannot sue for peace with team 1 and cannot declare war on team 2.
OpenBordersWithTeam= the list of teams that an open border agreement exists with at the start of the game. This can be cancelled later.
DefensivePactWithTeam= the list of teams that a defensive pact exists at the start of the game. This can be cancelled later unless permanent war peace is defined.
ProjectType= the projects existing in the team. This way you can define if a team project exists in a team at the start of the game. These values are defined in CIV4ProjectInfo.xml.
RevealMap= the state of the team knowing the whole map at the start of the game. Valid options are 0 (don't know map) and 1 (knows map). If left out then default is 0.
VassalOfTeam=TTT is the team this team is a vassal of
VassalPower=VVV is the strength vassal in the relationship
MasterPower=MMM is the strength of the master in the Relationship
This gives you all the options available to teams. You need to make sure if you add an entry to one team that the corresponding entry is in the other team too. EG: Team 0 has ContactWithTeam=1 and team 1 has ContactWithTeam=0.
This section defines all the player settings for the game. These settings will allow you to change all behaviour for the players.
CivDesc= the descriptive name to give the civ. This is the name that civ takes on in the game. EG: CivDesc=Kingdom of Ghent.
CivShortDesc= the short descriptive name to give the civ. This is the short name that civ is known as. EG: CivShortDesc=Ghent.
LeaderName= the name of the leader of that civ. This name is what the king or emporer or whoever is called. EG: LeaderName=Chief Two-Dogs.
CivAdjective= the descriptive name of the civ. This can be determined by completing this sentance: "I am <LeaderName> who leads the <CivDesc> which is populated by the <CivAdjective> people." EG: I am Chief Tow-Dogs who leads the Kingdom of Ghent which is populated by the Ghentese people.
FlagDecal= the DDS file of the civ's flag. These are defined in the folder ../Art/Interface/TeamColor/. EG: FlagDecal=Art/Interface/TeamColor/FlagDECAL_UK.dds
WhiteFlag= the setting which gives the civ's flag (what the units hold) a white background or the background of the colour of the civ. Valid settings are 1 (use white) or 0 (use civ's default colour).
LeaderType= the leader settings to use for this civ. These values are defined in CIV4LeaderHeadInfos.xml. EG: LeaderType=LEADER_ELIZABETH.
CivType= the civilization to use for this player. These values are defined in CIV4CivilizationInfos.xml. EG: CivType=CIVILIZATION_ENGLAND.
Team= the team number that this civ is part of. The team settings are defined in BeginTeam above in the WBS file. More than one civ can be part of a team, and every civ must be part of a team (even by itself). EG: Team=1
Handicap= the default handicap that the AI takes if no human takes this civ. These values are defined in CIV4HandicapInfo.xml. EG: Handicap=HANDICAP_NOBLE
Color= the default colour of the civ. The colour defines the civ's border colour, the colour of the name, etc. These values are defined in CIV4PlayerColorInfos.xml. EG: Color=PLAYERCOLOR_CYAN
ArtStyle= the style of art that the civ uses. This values defines building graphics and tile improvements. These values are defined in GlobalTypes.xml.
PlayableCiv= the setting to turn on whether this civ can be played by a human or not. Valid values are 0 (AI only) or 1 (playable by human).
MinorNationStatus= the setting to determine if a civ is a minor nation in relation to diplomacy. Valid values are 0 (full power civ) or 1 (minor nation civ that won't do diplomacy with anyone).
StartingGold= the amount of gold that civ starts with in the scenario.
StartingX= the X-axis location of the starting plot of this civ. Only valid if there are no cities on the map for this civ.
StartingY= the Y-axis location of the starting plot of this civ. Only valid if there are no cities on the map for this civ.
StateReligion= the State Religion that the civ starts the game with. These values are defined in CIV4ReligionInfo.xml.
StartingEra= the era that the civ begins the game in in regards to graphics. These values are defined in CIV4EraInfos.xml.
CivicOption=XXXX, Civic=YYYY where XXXX is the civic category and YYYY is the actual civic. This setting forces the civ to that civic at the start of the game. Civic options are defined in CIV4CivicOptionInfos.xml and civics are defined in CIV4CivicInfos.xml. EG: CivicOption=CIVICOPTION_GOVERNMENT, Civic=CIVIC_UNIVERSAL_SUFFRAGE
AttitudePlayer=XXX, AttitudeExtra=YYY where XXX is the player number affected and YYY is the amount to change diplomatic attitude towards that player. EG: AttitudePlayer=1, AttitudeExtra=-15 will change this civ's attitude towards player 1 by -15.
CityList= the name of cities that the civ has available when founding new cities. EG: CityList=Shanghai will cause this civ to use Shanghai as a city name. You can have as many pre-defined city names using CityList as you wish, each one on a seperate line. If these are left out the default city names are used.
This covers all the settings possible in the BeginPlayer section of the WBS file. Each seperate player must be defined. Remember, every player must be part of a team, even if by themselves.
This section describes the map settings to the Civ4 engine. Here you can define all about the map and how it plays. Below is a list of ALL possible variables, and the values they can have.
grid width= the width of the map in number of plots. NOTE: The grid width begins at zero so the first column of plots will be 0 NOT 1. However you still define grid width in real terms. EG: Map is 20 tiles wide grid width=20.
grid height= the height of the map in number of plots. NOTE: The grid height begins at zero so the first row of plots will be 0 NOT 1. However you still define grid height in real terms. EG: Map is 20 tiles high grid height=20.
top latitude= the latitude value of the top row of plots. By default this value is 90 (the north pole) which means the polar ice caps will be placed on the map by the engine in zoomed out globe view. If you specify less (EG: top latitude=45) then the polar ice caps will not be displayed.
bottom latitude= the latitude value of the bottom row of plots. By default this value is 90 (the south pole) and works exactly like top latitude does.
wrap X= the wrapping setting on the x-axis (horizontal). By default this is 1 (map wraps at the left-right edges). If you set this value to 0 then the x-axis does not wrap. Combined with the y wrap setting you can create flat maps, doughnut maps or maps that wrap left-right or top-bottom.
wrap Y= the wrapping setting on the y-axis (vertical). By default this is 0 (no wrapping at the top-bottom edges). This setting works the same as wrap X.
world size= the map size setting of the scenario. This is usually set when you setup the map in the WBS in-game. However you may want to change it. These values are defined in CIV4WorldInfo.xml.
climate= the climate setting of the game. These are the same as setting in a new game setup from the main menu. These values are defined in CIV4ClimateInfo.xml.
sealevel= the sea level setting of the game. These are the same as setting in a new game setup from the main menu. These values are defined in CIV4SeaLevelInfo.xml.
num plots written= the total number of plots in the game. This value is derived by multiplying the values from grid width and grid height above. EG: grid width=50 and grid height=50 then num plots written=2500 (50 * 50).
This is all the settings available to setup a map within the WBS file. As you can see the map engine is very flexible.
This section will fill in the last section of the WBS file: the Plots section. Each plot on the map will have its own BeginPlot...EndPlot section. This is going to be a big one, with lots of nested explanations. So strap yourself in for the ride....
x=XXX,y=YYY where XXX = the column (vertical) that the plot resides in on the map and YYY = the row (horizontal) that the plot resides in on the map. Columns begin at 0 (zero) on the left edge of the map and increase by 1 to the right. Rows begin at 0 (zero) on the bottom edge of the map and increase by 1 upwards. Bottom right plot is 0,0 and top right plot is (mapwidth - 1),(mapheight - 1).
Landmark= the setting to point to a sign or landmark on the map. The value is the text to be displayed by the landmark. EG: Landmark=This is a landmark!
ScriptData= the pointer to a plot script. In the WBS it is possible to assign a script to a city. This reference does not go into these scripts.
isNOfRiver and isWOfRiver are the two settings to place a river through this plot. They do not require a value being flags to the graphics engine. isNOfRiver (is north of river) defines the river as being on the bottom edge of the plot and isWOfRiver (is west of river) defines the river as being on the right edge of the plot. These settings MUST be used in conjunction with RiverNSDirection or RiverWEDirection.
RiverNSDirection= and RiverWEDirection= the direction that the water flows along the river. Valid values are 0=north, 1=east, 2=south, 3=west. These settings MUST be used in conjunction with isNOfRiver or isWOfRiver. EG:
# This will create a river on the bottom edge of the tile flowing from right to left.
# This will create a river on the right edge of the tile flowing from bottom to top.
StartingPlot is the flag used by the Civ4 engine to define a civilizations starting location. This will assign a random civ from the scenario at this location. If you wish to specify that a civ gets the same starting location each game then define it through that civ's BeginPlayer section.
BonusType= the setting to place a bonus at this plot. Resources are classed as bonuses (but bonuses are not just resources). These values are defined in CIV4BonusInfos.xml. EG: BonusType=BONUS_WHEAT
ImprovementType= the setting to place an improvement at this plot. These are defined in CIV4ImprovementInfos.xml. EG: ImprovementType=IMPROVEMENT_MINE
FeatureType=XXX, FeatureVariety=YYY where XXX is the terrain feature to place on this plot and YYY is which variety of the valid terrain feature to place. Forests is an example of a terrain feature, while the FeatureVariety will determine which version of the forest is placed (pines, hardwood, etc). These are defined in CIV4FeatureInfos.xml. EG: FeatureType=FEATURE_FOREST, FeatureVariety=1
RouteType= the setting to place a particular transportation type in the plot. Routes are also important as they define trade routes too. These settings are defined in CIV4RouteInfos.xml. EG: RouteType=ROUTE_RAILROAD
TerrainType= the base terrain type of the plot. These values are defined in CIV4TerrainInfos.xml. EVERY plot will have a TerrainType setting. EG: TerrainType=TERRAIN_GRASS
PlotType= the setting which determines the height of the plot. This basically determines if the plot is below sea level, a hill, a mountain, or flat terrain. Valid values are 0=mountain, 1=hilly, 2=flat, 3=below sea level.
BeginUnit is the subsection that defines a unit at this plot. A unit is defined in the following way:
AAAA = <Type>??????</Type> in Civ4UnitInfos file OOOO = Team number from scenario NNNN = Unique Name, e.g. 21st Army Group GGGG = Usually UNIT_GREAT_GENERAL XXXX = Any starting damage LLLL = Promotion Level, EEEE = Experience (recommended to set this higher than 0 to avoid disbanding by the AI) PPPP = <Type>??????</Type> in Civ4PromotionInfos file. This line can be repeated for multiple initial promotions.
Sleep = Unit not activated at start of scenario or on intercept
UNITAI = <Type>??????</Type> in Civ4UnitAIInfos file.
Thanks to Kiwitt for the update .
Old version, pre-BtS:
BeginUnit is the subsection that defines a unit at this plot. A unit is defined in the following way:
Where: AAAA = the unit type that is at the plot. These values are defined in CIV4UnitInfos.xml. BBBB = the unit owner (the player number who owns this unit). The first player is player 0 with the last possible player being player 17 (equals 18 players). CCCC = the experience level of the unit. Each level means one more promotion is possible. EG: Level=0 means no promotions, Level=2 means 2 promotions. DDDD = the actual experience of the unit. This reflects how many points it has gained towards the next promotion level. EEEE = the promotions this unit has. You assign as many PromotionType lines as Levels given to the unit above. These values are defined in CIV4PromotionInfos.xml. FFFF = the usage of the unit for the AI. Assigning the correct UnitAIType for a unit is important as it tells the AI what the unit is used for. EG: Settler units should get UnitAIType=UNITAI_SETTLE
BeginCity is the subsection that defines a city at this plot. A city is defined in the following way:
Where: AAAA = the city owner. Similar to unit owner it is the value between 0 and 17 of the player who owns this city. BBBB = the name of the city. This can be any value. EG: CityName=My City CCCC = the starting population in the city. This is how many population points the city starts with. DDDD = the unit that the city is building at game start. Only one Production type is used (the first one in the city definition). These values are defined in CIV4UnitInfos.xml EEEE = the building that the city is building at game start. Only one Production type is used (the first one in the city definition). These values are defined in CIV4BuildingInfos.xml FFFF = the project that the city is building at game start. Only one Production type is used (the first one in the city definition). These values are defined in CIV4ProjectInfo.xml GGGG = the process (science/wealth/culture) that the city is building at game start. Only one Production type is used (the first one in the city definition). These values are defined in CIV4ProcessInfo.xml HHHH = the buildings that the city already has at game start. Any number of BuildingTypes can be defined on seperate lines. These values are defined in CIV4BuildingInfos.xml IIII = the religions that the city has at game start. Any number of religions can be defined on seperate lines. These values are defined in CIV4RelgionInfos.xml JJJJ = the Holy City of the defined religions. Any number of these can be defined on seperate lines. These values are defined in CIV4ReligionInfos.xml KKKK = any scripts assigned to the city. This analysis does not go into these scripts. SSSS = the specialist the city has at game start. Any number of FreeSpecialistType can be added on separate lines These values are defined in CIV4SpecialistInfos.xml. e.g. a city may have strong artistic tendencies so you add multiple lines of "FreeSpecialistType=SPECIALIST_GREAT_ARTIST". Other cities may be more scientific, engineering, or other specialization. This can give more flavour to your cities. LLLL & MMMM = the starting culture that the city has. LLLL is the player number and MMMM is the amount of culture. EG: Player3Culture=100 means this city begins with 100 points of player 3's culture. You can define a culture level for any number of players.
Edit: Thanks to kiwitt for the update about specialists.
TeamReveal= the list of teams that this plot is revealed to at the start of the game. The teams in this list will be able to view the plot, but fog of war may still be over the plot. The list is simply a list of the team numbers seperated by a comma. The list MUST end with a comma. EG: TeamReveal=TeamReveal=0,1,2,3,
Thus ends the large section that is BeginPlot. Each plot on the map requires its own BeginPlot, and the sequence of BeginPlot section is in sorted by column then row. EG: plot sequence is (0,0), (0,1), (0,2), (1,0), (1,2), etc.
This is exactly the sort of information Firaxis needs to start including with their releases. Part of my work has been the implimentation of a radiology protocol called DICOM and if we don't document the hell out of everything our users can't do anything with our product. So thanks for posting this.