Help wanted for small city-states mod project

Joined
Apr 11, 2015
Messages
438
BRIEF: Create mod(s) to allow geographically-themed customised selections of city-states

-----------------------------

Hi, I'm a modding noob and I'm looking for help to bring a small project to fruition, relating to the minor city-states.

I tend to pre-select the AI civilizations I play against. For example, I'll use all European civilizations or all Far Eastern civilizations and so on.

I've also recently discovered the culturally-linked starts mod, which can help somewhat to distribute the civilizations a bit more realistically. http://steamcommunity.com//sharedfiles/filedetails/?id=77191664

Anyway, I was thinking that I'd like to try and make some city-state mods for my games to make them feel more authentic. So, for example, if I was going to play a game with European civilizations, the city-states would be European ones only.

I've had a search of the mods but haven't found anything already made that I think does this, although correct me if I'm wrong.

I understand that the Civ5MinorCivilizations.XML file is probably the relevant file to this. I've been reading modding tutorials and working with ModBuddy and have tried doing it myself but I don't think it came out right.

As I say, I'm a modding noob and this is probably the only modding of this game that I'll do, so if anyone can help with the technical aspects of making it work that would be appreciated.

-----------------------

Firstly, is this mod actually possible? I am assuming that it would be, by creating a new mod with only the modified Civ5MinorCivilizations.XML file being needed.

Secondly, does this file have all the city-states in the game? i.e. did the BNW and DLC expansions introduce any new city-states which are in other files in other directories? I'm thinking this might be the case, as some of the city-states in the list, like Stockholm and Vienna, are the capital cities of civilizations that became playable in the later expansions of the game. I've had a search of the folders but can't find another file it could be. Anyone know where the new file(s) is/are located?

Thirdly, if it's possible, what is the process needed to make this work? This is what I have understood as the steps needed, so if I am doing anything wrong or need to take additional steps, please correct me.

1) Install the Civ V SDK pack and Microsoft VSS software needed to open ModBuddy.

2) Open ModBuddy.

3) Create new Project - Empty Mod.

4) Add New Item - Game Rules (XML). What name should I give it - the same as or different to the original unmodified file?

5) Click on mod name, then Properties and Actions, and choose Add Item. There are options for Event and Action - which do I choose?

Event
-OnModActivated
-OnCreateModUserDataPath
-OnGetDLLPath

Action
-UpdateDatabase
-UpdateUserData

File

6) XML coding.

I am assuming that the Civ5MinorCivilizations.XML file (or newer version of) can be edited and used by a mod. Each city-state appears in three separate tables in this file: Minor Civilizations, City Names and Flavors (with multiple entries for each city-state in the Flavors table).

I am also assuming that if one carefully chopped out, say, all the non-European city-states from all three tables and used it in a mod, then the game would work and just the European city-states would be used in play?

I assume one could then also create new city-states by, say, replacing all references in the XML file to 'Vienna' with 'Liechtenstein'?

These assumptions are correct?

7) Debugging

Run the debugger to check for bugs.

--------------------------------------------

So...is what's written above the correct process?

Any help appreciated. If anyone likes the idea and wants to get involved with it more actively then that's cool too.
 
First, perhaps this mod is probably all you need. Note it requires some manual editing between game sessions. It'd perhaps be a nice feature to add an ingame menu for this purpose to the Really Advanced Setup mod.

Regardless, I'll answer some of your questions. There are additional Civ5Minor* files for G+K and BNW in Assets\DLC\Expansion and Assets\DLC\Expansion2, respectively.

Unlike Civ4 modding, you (for the most part) don't do a wholesale replacement of files; you're instead making changes to the database. See this cheat sheet for examples of SQL syntax and the 2 different XML syntaxes.

After you create your SQL or XML file, you'd set it OnModActivated > UpdateDatabase.

As far as adding brand new city states or renaming existing ones, note that you did not mention in your schema that there is a separate database that changes the TXT_KEY entries into in-game text, with entries for all of the various language translations. You'll find the entries in GameText XML files. I find it easier to look at the db files in a SQLite Browser, but you can use Agent Ransack or grepWin or similar to search through your CiV installation folder if you prefer.
 
As to #4, any file whose text contents start with and end with <GameData> </GameData> can be named pretty much anything you want since within the structure of a mod you are not replacing the game's core XML or SQL files, you are adding more game-rule-info to them. You can call the filename "HenryBob" if you want to, but as a general rule it is better to name them in some way that is related to their contents, such as "Building_Smithery.xml" if I were putting all of the XML code needed to add a new building called a "Smithery" into the game. For files that are 'OnModActivated', 'UpDateDatabase' the game cares only for their contents, and cares not a whit what they are named.

All of the foregoing is true for the vast majority of files contained within mods that also contain some form of executable code.

Note that if you start using files that require Import Into VFS, then file names become a 'thing' to watch out for, as these will/can replace the game's standard file of the same name. You should take a look at this whoward69's what ModBuddy setting for what file types tutorial and at least bookmnark it to refer to later.
 
Thanks for the replies.

That City State Selection mod looks just what I'm looking for in terms of selecting and de-selecting which city-states are included in play.

I was thinking that the ideal would be to have something similar to the option to select which civilizations are included or omitted from play as used in the Really Advanced Setup mod. There could be group selections also, so if you were playing with European civilizations only, it would just be one click to tick the box for the European city-states group.

So, although I haven't tried it out yet, it looks as though the first part of my desired mod - to be able to customise which sity-states are in play - is already catered for, which is good.

The second part would be to create some more city-states and so expand the city-state resource pool. I think there are currently only two or three city-states for the Americas, for example.

I'm currently thinking of four city-state groups:

1) Modern(-ish) Europe for European-only civilization games.
2) Ancient Mediterranean/Near East.
3) East Asia.
4) Pre-conquest Americas.

Possibly another for North Africa/Middle East.

I presume these are the additional relevant GameText XML files you mentioned above (in the English language folder):

CIV5GameTextInfos_CityStates_Expansion2
CIV5GameTextInfos_CityStates_Inherited_Expansion2

Well, I've got some stuff to work with now so thanks again.
 
Here are the city-states of BNW roughly broken down into categories.

Europe

ANTWERP - City in Belgium
BELGRADE - Capital city of Serbia
BRATISLAVA - Capital city of Slovakia
BRUSSELS - Capital city of Belgium
BUCHAREST - Capital city of Romania
BUDAPEST - Capital city of Hungary
FLORENCE - City in Italy
GENEVA - City in Switzerland
GENOA - City in Italy
KIEV - Capital city of Ukraine
MILAN - City in Italy
MONACO - City-state bordering France
PRAGUE - Capital city of the Czech Republic
RAGUSA - Either: a city in Sicily; or capital of Republic of Ragusa (now Dubrovnik, Croatia)
RIGA - Capital city of Latvia
SOFIA - Capital city of Bulgaria
VALLETTA - Capital city of Malta
VATICAN_CITY - Enclave in the city of Rome
VILNIUS - Capital city of Lithuania
WITTENBERG - City in Germany
ZURICH - City in Switzerland

East Asia

HANOI - Capital city of Vietnam
HONG_KONG - City in China
LHASA - Capital city of Tibet
KYZYL - Capital city of the Tuva Republic, Russia
KATHMANDU - Capital city of Nepal
KUALA_LUMPUR - Capital city of Malaysia
MALACCA - State (and city) in Malaysia
MANILA - Capital city of the Philippines
SINGAPORE - City-state in Southeast Asia

Notes: Depending on what one's game requirements are, Kathmandu, Lhasa and Kyzyl could be omitted (being Central Asian) or Colombo (South Asian) added

COLOMBO - City in Sri Lanka

Middle East/Western Asia

ALMATY - City in Kazakhstan
BYBLOS - City in Lebanon
JERUSALEM - Capital city of Israel
KABUL - Capital city of Afghanistan
ORMUS - Former city in Persian Gulf
SAMARKAND - City in Uzbekistan
SIDON - City in Lebanon
TYRE - City in Lebanon
YEREVAN - Capital city of Armenia

Notes: Of these, Byblos, Jerusalem, Sidon and Tyre could also be used for ancient Mediterranean/Near East games


Ancient Near East

UR - Former Sumerian city-state in Iraq

Africa

ANTANANARIVO - Capital city of Madagascar
CAPE_TOWN - City in South Africa
IFE - City in Nigeria
MBANZA_KONGO - City in Angola
MOGADISHU - Capital city of Somalia
MOMBASA - City in Kenya
ZANZIBAR - City/area in Tanzania, East Africa

The Americas

BOGOTA - Capital city of Colombia
BUENOS_AIRES - Capital city of Argentina
CAHOKIA - Former Native American city
LA_VENTA - Former Olmec city
PANAMA_CITY - Capital city of Panama
QUEBEC_CITY - City in Canada
VANCOUVER - City in Canada

Notes: I think Bogota, Cahokia, Panama and Quebec are derived from native pre-conquest names. Vancouver is named after an English naval officer, while I believe La Venta is Spanish (for "the sale"???). Buenos Aires also Spanish


Australasia

MELBOURNE - City in Australia
WELLINGTON - Capital city of New Zealand
SYDNEY - City in Australia
 
There may be enough European city-states but, if more were to be added, these would be likely candidates:

ANDORRA - Microstate between Spain and France
LIECHTENSTEIN - Microstate between Switzerland and Austria
LUXEMBOURG - Country and city bordering Belgium, Germany and France
SAN MARINO - Microstate surrounded by Italy
REYKJAVIK - Capital city of Iceland

ZAGREB - Capital city of Croatia
PODGORICA - Capital city of Montenegro
LJUBLJANA - Capital city of Slovenia
SKOPJE - Capital city of Macedonia
TIRANA - Capital city of Albania
SARAJEVO - Capital city of Bosnia and Herzegovina
 
Andorra would be Andorra La Vella and Liechtenstein would be Vaduz, though.
They're both microstates so they put the states in city-states! They have populations of 85,458 (Andorra) and 37,132 (Liechtenstein), so they are relying on their statehood status rather than their city status to get into the Civ city-state club!

Could be, I guess - Andorra and Liechtenstein have better name recognition, though, and since they are both classed as microstates there would be a technical logic behind going with whatever people are more familiar with.
 
They do have better name recognition, but so does Sri Lanka over Colombo.
The metropolitan area of Colombo has a population of 5,648,000 and is the capital city of a country with a population of over 20 million people, so I don't see it as being comparable to the microstates of Andorra and Liechtenstein, neither of whom's total population even makes the technical criteria of a city (100,000 people).
 
Here are some potential East Asian city-states.

ANGKOR - Former capital city of the Khmer Empire in Cambodia
BRUNEI - Mini country on the north coast of the island of Borneo in Southeast Asia
DILI - Capital city of East Timor
MANDALAY - City in Myanmar/Burma
RANGOON or YANGON - Capital city of Myanmar/Burma
SAIGON - city in Vietnam, now known as Ho Chi Minh City
THIMPHU (or BHUTAN) - Capital city of Bhutan

Notes: Brunei is a small sovereign state of 415,717 people, so I think it's better as the city-state of Brunei rather than as it's technical capital of Bandar Seri Begawan, for familiarity reasons.

Bhutan is a very small country with a population of 742,737. While it's still small, it's also over seven times bigger than Brunei. Here's getting closer to the balance between city and state for me! I had initially been thinking of Thimphu as the city-state name, but I'm beginning to wonder if it would be better to go for Bhutan. Most people would hopefully have some recognition of the name Bhutan, but Thimphu is a bit obscure.

Another possibile city-state would be:

PHNOM PENH - Capital city of Cambodia (although, it's not that far from where Angkor was)

Getting into clutching at straws territory now...

VIANGCHAN - Capital of Laos (This city actually appears under the French name-origin "Vientiane" as the 8th city name on the Siamese civilization's city list - "Viangchan" is closer to the Lao)

BANGKOK - Capital city of Thailand, so in Siamese Civilization territory, although it's a later city and not in their city list.

Macau and Taipei would have been useful but they're included in the Chinese city list. At the risk of hyper-extension, there's Papua - it's not a city but a region and not historically significant.

Going a bit further West towards South Asia one could (like Colombo) include

DHAKA - Capital city of Bangladesh

Any other East Asia city-state ideas?

For system requirement reasons on my laptop (and brevity reasons, to some extent) I tend to use only six city-states in my standard setup games. So having so many city-states is a bit hypothetical for me, but it would be good for variety reasons, I suppose. (My standard setup is Small world, 9 civs, 6 city-states, Quick Game Speed, Emperor difficulty, Timer and Diplomacy victories off).

I think each city-state has their own theme tune also, so there's that to think about...
 
I found a Native American city-state/minor civilization mod: https://steamcommunity.com/sharedfiles/filedetails/?id=163866211&searchtext=native+american

It includes these city-states:

-Huron
-Shawnee
-Lenape
-Algonquin
-Pawnee
-Choctaw
-Shoshone
-Arapaho
-Navajo
-Pueblo
-Powhatan
-Crow
-Blackfoot
-Chickasaw
-Chippewa
-Tohono O'odham

I had a good game using it with some pre-conquest Americas civilizations. I used the City State Selection mod to remove all city-states except the American ones and also enabled the Native American Minor Civilizations mod and it all worked perfectly using both city lists.

It's definitely the way forward, for me at least.

I also played a Middle East/North African game which included some modded civilizations. I noticed there was the city-state of Sana'a, so I presume this must have been included with one of the modded civs.

-------------------------

Here are three files from the main Civ V directory that I believe are the relevant files for city-states in the vanilla BNW game. The city-states also have unique music files. I'm not sure if the modded city-state files, like the Native American Minor Civilizations mod, are linked to them but they seemed to work as normal.

LOCATION:

C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization V\Assets\DLC\Expansion2\Gameplay\XML\Civilizations

FILE:

CIV5MinorCivilizations.xml

LOCATION:

C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization V\Assets\DLC\Expansion2\Gameplay\XML\Text\en_US

FILES:

CIV5GameTextInfos_CityStates_Expansion2
CIV5GameTextInfos_CityStates_Inherited_Expansion2

------------------------------------

There are a number of city-states included in the scenarios, which also appear in CIV5GameTextInfos files.

MinorCivSounds_DLC01

Uighur
Georgia
Hungary
Dai Viet
Dali
Abbasids
Crusaders
Western Xia
Korea

MinorCivSounds_DLC02

Inuit
Seminole
Lakota
Carib
Cherokee
Algonquin
Huron

MinorCivSounds_DLC03

Fiji
Vanuatu
Kiribati
Nauru
Nendo
Guadalcanal
Pohnpei
Majuro

MinorCivSounds_DLC04

Powys
Gwynedd
Northumbria
Galloway
Scotland
Munster
Meath
Connacht

MinorCivSounds_DLC06

Troy
Knossos
Byblos
Ugarit
Kyrene
Stobi
Seuthopolis
Enkomi
Elam
Nakhchivan
Washukanni
Sharuhen

MinorCivSounds_Expansion2

Bornu
Bunkeya
Segou
Sokoto
Ouagadougou

MinorCivsAudioDefines_Expansion2

Luba
(also includes following from previous file:
Bornu
Bunkeya
Segou
Sokoto
Ouagadougou)


MinorCivSounds_DLC07

Muscogee
Wabanaki
Mapuche
Arawak
Maya
Yanomami
Muisca
Hopi
Anasazi
(also includes following from previous file:
Inuit
Seminole
Lakota
Carib
Cherokee
Algonquin
Huron)

CIV5GameTextInfos_CityStates_NewWorldDeluxeScenario

Calusa
Kambeba
Karankawa
Mixtec
Tairona
Tzintzuntzan
Wendat

----------------------------

Here are a couple of other relevant forum links:

http://forums.civfanatics.com/archive/index.php/t-337899.html
http://forums.civfanatics.com/archive/index.php/t-545088.html

----------------

When searching for city-state files I find the following search terms useful: minorciv, citystate
 
There's also these lists from the New Civilisations Index...

City-States

Recommendations

Recommendations for City-State replacements that do not conflict with Civilisation or City-State Capitals listed or in-game (some may be on Major City-Lists, though). Thanks to idvl for expanding the list!

Africa
  • Accra (Ghana)
  • Bujumbura (Burundi)
  • Djibouti (Djibouti)
  • Freetown (Sierra Leone)
  • Khartoum (Sudan)
  • Juba (South Sudan)
  • Lobamba (Swaziland)
  • Tangier (Morocco)
  • Yaoundé (Cameroon)
America
  • Belmopan (Belize)
  • Jisk’a Iru Muqu (Aymara)
  • Monte Alban (Mexico)
  • San José (Costa Rica)
  • Teyuna (Sierra Nevada)
Ancient
  • Aksum (Aksum)
  • Alashiya (Cyprus)
  • Atlit Yam (Israel)
  • Barbar (Bahrain)
  • Biskupin (Poland)
  • Burgstallkogel (Austria)
  • Conistorgis (Cynetes)
  • El Argar (Spain)
  • Epidamnos (Illyria)
  • Kerma (Kerma)
  • Knossos (Crete)
  • Hermopolis (Egypt)
  • Izapa (Mexico)
  • Jericho (Canaan)
  • Lagash (Iraq)
  • Megiddo (Israel)
  • Mehrgarh (Pakistan)
  • Mysia Horka (Serbia)
  • Ophir (Africa)
  • Palma (Italy)
  • Pelusium (Egypt)
  • Setidava (Dacia)
  • Sinope (Hittites)
  • Solnitsata (Bulgaria)
  • Tartessos (Iberia)
  • Troy (Troy)
  • Ulug Depe (Turkmenistan)
  • Ubbumu (Armenia)
Asia
  • Aykudi (India)
  • Bishkek (Kyrgyzstan)
  • Dhaka (Bangladesh)
  • Mahabalipuram (India)
  • Vientiane (Laos)
Europe
  • Bremen (Germany)
  • Chi&#537;in&#259;u (Moldova)
  • Danzig (Poland)
  • Fiume (Croatia)
  • Frankfurt (Germany)
  • Hamburg (Germany)
  • Ljublijana (Slovenia)
  • Memel (Germany)
  • Podgorica (Montenegro)
  • Pskov (Russia)
  • Saar (Germany)
  • Saint Peter Port (Channel Islands)
  • Santiage de Rubias (Gallacia)
  • Tallinn (Estonia)
  • Trieste (Italy)
  • Whaler’s Bay (Svaldbard)
Middle-East
  • Amman (Jordan)
  • Beirut (Lebanon)
  • Doha (Qatar)
  • Manama (Bahrain)
Oceania
  • Alofi (Niue)
  • Avarua (Cook Islands)
  • Palikir (Micronesia)
  • Port Vila (Vanuatu)
  • Yaren (Nauru)
 
The Native American Minor Civilizations mod appears to be combining the relevant info into one file, including the TXT_KEY entries (that were in a separate xml file in the vanilla BNW game).

I'm still not sure how the music files fit into the equation. The list above shows that many city-states have already been created by players. Anyone know what they have they done about the music issue?

I am thinking the Native American Minor Civilizations mod would serve as a useful template for future progress.
 
Here are some candidates for North American city-states to go with Cahokia from the vanilla list. I am trying to follow the system in use with the rest of the game by using settlement names, rather than the name of the tribe/people/civilization.

COWETA - Coweta is one of the four mother towns of the Muscogee people. Located in modern-day Georgia, USA.

ETOWAH - The Muscogee people regard the site of Etowah to be their most important ancestral town. Located in modern-day Georgia, USA.

HAWIKUH - Hawikuh was one of the largest settlements of the Zuni people and is associated with the Seven Cities of Gold myth. Located in modern-day New Mexico, USA.

KAY-NAH-CHI-WAH-NUNG - Kay-Nah-Chi-Wah-Nung was a significant settlement and burial mound site in Canada. Located in modern-day Ontario, Canada.

KOLOMOKI - Kolomoki is one of the largest and earliest Woodland period mound complexes in the Southeastern United States. Located in modern-day Georgia, USA.

OCMULGEE - Ocmulgee is a site with evidence of over ten millenia of Southeastern Native American culture. Located in modern-day Georgia, USA.

ORAIBI - Oraibi, of the Hopi tribe, is one of the oldest continuously inhabited settlements within the United States. Located in modern-day Arizona, USA.

TAOS - Taos is an ancient settlement of the Puebloan people and still in existence today, making it one of the oldest continuously inhabited communities in the United States. Located in modern-day New Mexico, USA.

A couple of more tentative possiblities: Chucalissa, Nodena

I'll see if I can find some more but it ain't easy, since the destruction wrought by European conquest and colonization means a lot of the historical record has been lost. Might be some more post-Columbus Native American settlements to find.

Central and South American city-states to follow in due course.
 
More North American candidates...

KITUWA - Kituwa is an ancient site, which the Cherokee tribe believe to be their original settlement. Located in modern-day North Carolina, USA.

JOARA - Joara was a large Native American settlement of the Mississippian culture. Located in modern-day North Carolina, USA.

NANIH WAIYA - Nanih Waiya is an ancient earthwork mound site which the later Choctaw people viewed as their ancestral home and sacred ground. Located in modern-day Mississippi, USA.

There are a few other Cherokee settlements - like Nikwasi, Cowee, Chota, Mialoquo, Tellico, Tugaloo - but there's probably enough North American city-states now.

Some city-states may appear as important cities in some modded civs' city lists (for example, the Cherokee) and so it would be best to disinclude any city-states that would create clashes at set-up.
 
Top Bottom