Civ 6 CSV to Map Converter

This script converts a specially formatted CSV into the SQL statements required to draw the map for Civ 6. Currently it only supports base terrain, but should allow you to rapidly create base maps for Civ 6.


To learn more about the development of this script, please check out this CivFanatics forum post.

CivFanatics Forum Post

What Does This Do?

This script takes in a CSV file formatted a special way that looks like this:

Outputs some SQL that looks like this:


				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (957,'TERRAIN_COAST','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (958,'TERRAIN_COAST','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (959,'TERRAIN_COAST','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (960,'TERRAIN_COAST','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (961,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (962,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (963,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (964,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (965,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (966,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (967,'TERRAIN_GRASS','','0');
				INSERT INTO PLOTS (ID,TerrainType,ContinentType,IsImpassable) VALUES (968,'TERRAIN_GRASS','','0');
			

Which you can then import it into a Civ6 map file, and it will generate this:

Why Would I Use It?

While you can't do all of your mapping from the spreadsheet, it does allow you to quickly outline a map without having to edit one tile at a time in the Civ 6 World Builder. It also allows you to have a template or base map which you can easily use to regenerate to make further maps.

Great, How Do I Get Started?

There are a few steps to be able to make your own maps, and play them in Civ 6.

Step 1: Enable World Builder

Required if you want to make any additional tweaks to your base map.

  1. Open file Document\My Games\Sid Meier's Civilization VI\AppOptions.txt
  2. Set EnableWorldBuilder to 1
  3. Save the file

Full directions in this thread at CivFanatics.

Step 2: Create CSV File

You need to create a CSV file to be imported by the script. It has a few requirements, so best to use this template.

This template is made using LibreOffice Calc. In includes conditional formatting to make laying out the map a bit simpler, but copy/paste can cause the conditional formatting to balloon the file size. I've included a short tutorial video on making the map on Youtube [Coming Soon]. This may help you get started.

Template notes:

Step 3: Upload Map and Receive SQL Queries

Save the BaseTerrain worksheet as a csv file. Your spreadsheet editor will complain about not including the rest of the data, that is fine. Then upload your CSV file to the box below. You will then be prompted to download a .sql file which will contain all of the commands to draw your map.

Step 4: Import SQL Queries

Now you need to run the SQL queries on your map file in order to generate the map within the game. You can use this any way you want, but below are some directions using the free SQLite browser:

  1. Install Tool
  2. Write rest of instructions....

Step 5: Load Map in World Builder

Open the World Builder from the Additional Content menu from within Civ 6. You can then click Load to load your map.

Step 6: Playing Custom Maps

This part seems to be tricky. I actually haven't tried it yet, thought I would publish this tool first. But there seems to be a few ways to play your custom maps. In no particular order:

Upload Your File

Version History