You'd need to hook the GameEvents.TeamSetEra(teamId, eEra) event and build an array of arrays (by player, by era) to store the turn the player enters the era and then use that to work out which era the city was founded ... or you could detect the founding of cities and store era (by player by city). Either way you'll need to persist the data across save games (eg TableSaverLoader or SaveUtils)