Re. barb cities, maybe it could be checked by waiting till a barb city founds, then reloading to the turn before and looking what units are on the tile. In the code, the IBT sequence spawns barb cities immediately before it spawns barb units, so it couldn't create a unit, then have that unit create a city, on the same turn. Here's a rough reading of the code. Couldn't see anything about existing barb units on the tile. The only thing that seems to look at units was the spawnbusting test. It is complicated though so definitely possible to miss something. Also there might be something in the Python which rejects cities unless there's a barb unit there. Spoiler : Each turn (CvGame::doTurn()) Do all sorts of game admin Including barb city spawning (CvGame::createBarbarianCities()), which goes something like: Do nothing if "getMaxCityElimination" game option is >0 (not sure what that is) No barbs game option Some Python function "createBarbarianCities" ==1 (don't know what that is) The game has entered an era with no barb city creation The game difficulty has barb city density set to 0 Average # cities for non barb players left in the game is < 2 A RNG-based and game-speed-based test on how long since the last barb city was created A RNG-based test against difficulty setting for barb city creation probability Some high level tests on potential tiles: Not water Not currently visible to any non-barb team Barb cities on the landmass should not already be above a difficulty-defined threshold of barb cities per unowned tile (If the barbs have a whole landmass to themselves it seems to loosen that test so it can pack even more in. Not sure about that.) Then for each tile that passes those tests, it assesses the suitability in more detail using a function (CvPlayerAI::AI_foundValue) which is also called by normal AI city founding. First a couple of red lines Can a city even be founded here (peaks, water, closeness to other cities etc). Is there a unit of any other team inside a square around the plot of size MIN_BARBARIAN_CITY_STARTING_DISTANCE (XML parameter: 2). If there is, then no barb city (spawnbusted!) Would the BFC contain less than 14 usable tiles not owned by other civs. If not, then no barb city. Fine-tune suitability based on Number of "bad tiles", and "good tiles" on currently unowned tiles. Resources etc. It *does* take account of whether the AI/barbs have the reveal tech. Looks like it outright rejects sites with no unowned BFC bonuses to claim Tile yields Terrain features like freshwater, coast, hills (very strongly desirable!) Distance other cities (barb: quite undesirable to be near, other player: very undesirable to be near) It somehow takes into account where tiles are shared with other cities of the same team. Don't quite follow that bit. Then it founds a city on the best available site it looked at, if there were any that weren't rejected.