Sid Meier's Civilization VI

Sid Meier's Civilization VI

34 avaliações
Make Your Own World Builder Map Mods - with Template!
Por Fuzzle
Learn to create a World Builder map mod with fine control over how the map shows up in game! This guide also teaches you how to implement TSL (True Start Location) plots for your map.

Template included so that you can follow along.
   
Premiar
+ favoritos
Nos favoritos
- favoritos
Introduction
There are already tutorials available on Steam that walk you through the process of uploading maps to the Workshop, but ever since I got into modding properly, I realized that they have some problems. Although they are quite beginner-friendly, they lack any amount of depth.

This tutorial and the template provided will show you how to create a mod that is more in line with how Firaxis adds their World Builder maps, such as their official Earth maps. The template also assumes you're making a map exclusively for Gathering Storm. The template can be altered to make the map available in Rise and Fall or the base game.
Getting Started
You will need:
  1. Civilization VI - to create the World Builder map
  2. Civ VI ModBuddy - to create and eventually upload the mod to the Workshop. This is available to you on Steam as long as you own Civ VI. You may need to change some settings so that your Games Library shows Tools instead.
  3. My World Buider Map Template, linked below. The Configuration and Text files in that template are crucial for getting the map mod to work.

Links to the template:
Google Drive: Link[drive.google.com]

Preparing Your World Builder Map
This tutorial will not go into how to design your map; I assume you have already created the map you wish to upload. However, there are a few things you should know.

First, the names and descriptions do not matter. We are going to create our own later in ModBuddy. You can leave them as their default values if you wish.


Second, you should enter Advanced Mode and uncheck the box that says "Package Map as a Mod", then return to Basic Mode. Leave everything else as is. It may sound silly, but returning to Basic Mode is oddly an important part of this process.



Now you can save your map and exit World Builder - and Civ VI as a whole for that matter - unless you are making a True Start Location (TSL) map.
Optional: Planning TSL Positions
In order to plan your TSL positions for each civilization and city-state, you need the plot IDs: a single integer number that refers to a precise position on the map. You can view the X and Y coordinates of any given tile on your map by default (Select the "Plot" tab at the right of the screen and select the tile you want) but you need the plot ID. You can calculate the plot ID with a simple formula:

The coordinates are given in the format (X, Y)
plot ID = X + Width*Y


You can find the width of the map in the Map Editor menu (click the feather in the top left corner of the screen).

You can also get the plot ID directly from hovering over the tile you want if you have Debug Plot Info tooltips enabled. This is a hidden setting that you can enable by locating the file: Documents\My Games\Sid Meier's Civilization VI\AppOptions.txt. Find "EnableDebugPlotInfo" and change the '0' to a '1'. Save the file and restart the game if necessary.

Whichever way you determine the plot ID, make a note of each one and which leader you wish to spawn at that location. We'll implement this later when we edit the Configuration.sql file.

Be careful not to select an invalid starting location for your leader! If you set the starting tile to be the water or on a mountain, the leader's starting units will not appear and you will get a blank map screen.
Creating the Mod
Click on "New Mod..." then select the "Empty Mod" template. Name your mod however you want and fill out the information on the next screen (you can edit this again later). Keep in mind that this is the information that will be displayed in the Mods menu in the game.

**IMPORTANT** Make your mod from scratch; do not just edit the provided template! This will prevent your map from conflicting with others' maps if they use the same template!



On the next window that shows up, let's add some folders to keep organized. I've created three folders: Configuration, Maps, and Text.


Next, add some files to each folder, a new blank SQL file in the Configuration and Text folders, and your already created map file (.Civ6Map file extension) in the Maps folder. Additionally, create a new lua script file in the Maps folder. Name this the same name as your World Builder map file.
Finding Your World Builder Map
Your World Builder map can be found at the following location:

Documents\My Games\Sid Meier's Civilization VI\Saves\WorldBuilder

Go ahead and add that file to your Maps folder.


WARNING:
If you make any changes to your map file in World Builder after importing the map file into the mod, you will need to delete the previously-imported file and complete this step again. This is because the map file in your mod is a copy of the file when it was originally imported and as such it doesn't get updated.
Configuration.sql
This file will define how your map appears in the in-game menus. You should include entries into the tables Maps, MapSizes, and MapDomainOverrides.

Copy the contents of the Configuration.sql in the template and make a few changes: The random letters and numbers (d6eb8dad-1ba0-4fff-962a-fda76432cd6d) should be replaced with your mod's Mod ID. You can find the Mod ID by right-clicking the Project (Bolded near the top of the left window) and going to Properties.


You should also change the name of the map from "World_Builder_Tutorial.Civ6Map" to whatever the name of your map file is.

Replace the two entries that start with 'LOC...' with your own unique entries. You'll need these entries for the Text.sql file later.

Also go ahead and make any other changes you wish to make in this file.
Optional: Implementing TSL Settings
IMPORTANT: In order for your TSL changes to work you must remove the /* and */ signs surrounding the bottom section of the Configuration file. Otherwise, that section will be commented out, meaning the game will ignore that code.

ALSO IMPORTANT: If you are using the Cheat Menu mod (handy for testing gameplay effects), TSL of all kinds will NOT function. Disable this mod before testing or playing any map with TSL.


As indicated in the template, MapLeaders and MapStartPositions requires the LeaderType for all full civs and city-states that will appear on the map. The MapSupportedValues requires the CivilizationType for all city-states that will appear on the map.

Each unique civilization has a corresponding unique CivilizationType value, as does each leader with LeaderType values. Note that leaders that come in different versions, such as Eleanor of Aquitaine or Kublai Khan, are technically two different leaders. The same applies to the Persona leaders, such as Teddy Roosevelt and Catherine de Medici.

As an example: America's CivilizationType is
CIVILIZATION_AMERICA
while Gilgamesh's LeaderType is
LEADER_GILGAMESH

The Google Sheet located here[drive.google.com] has a full list of all valid CivilizationTypes and LeaderTypes in the game, including expansions and DLC.

Note that certain city-states were removed and replaced entirely in the expansions (Rise and Fall and Gathering Storm). Others that were replaced in DLC packs were simply reskinned; they retain the old internal names even though the text that appears in-game changes. These city-states are marked as such in the sheet.

The Plot column of the MapStartPositions table is the plot ID which you retrieved earlier. Change that to whichever values you want, ensuring that the plot IDs match up with the leaders you wish to spawn in that location.

Don't forget to change the Map columns to match the values you input in the previous section before adding TSL.
Text.sql
This file will define the text that shows up in the game. Replace the 'LOC...' tags with the same entries from the Configuration.sql file. Change the actual text to whatever name and description you want.

If necessary, change the language from English ("en_US") to whatever the proper entry it is for your language.
Map_File.lua
Copy the entire contents of the template's lua file into your mod's lua file. This lets the map place tribal villages and ley lines. For convenience, it is also given below:

include "MapUtilities" -- =========================================================================== function InitializeNewGame() local gridWidth, gridHeight = Map.GetGridSize(); AddGoodies(gridWidth, gridHeight); AddLeyLines(); end LuaEvents.NewGameInitialized.Add(InitializeNewGame);
Mod Info and Properties
Re-open the mod properties by right-clicking the project on the left, and clicking Properties. Here we will assign the files to the correct types of actions to load them into the game.

Under "FrontEnd Actions", click Add Action. Click on the UpdateDatabase action that appears in the window and then open the Files tab that has just appeared on the right. Click Add to add the Configuration.sql file.



Add another new Action and click on it in the window. This time, change the Type drop-down menu from UpdateDatabase to UpdateText. Then add the Text.sql file just like you added the Configuration.sql file before.


Finally, change to the "In-Game Actions" section. Add a new action, change it to UpdateText, and add the Text.sql file, just like you did for the "FrontEnd Actions".


Finishing the Mod
If you want to make any changes to the name or description of the mod itself, then go back to the Mod Info section and change whatever you want.

To finish - or build - your mod, you can either open the "BUILD" tab at the top and click on "Build Solution" or you can press Crtl+Shift+B on your keyboard. Now it is time to test your map mod!

Testing the Mod
Boot up Civ VI and navigate to Additional Content and then Mods. Make sure that your new map mod is enabled and then start up a new game. You should be able to load into a game with no trouble! If the game refuses to load in, then retrace your steps.

Congratulations! You've completed your map mod!
30 comentário(s)
Vanile 4 de mar. às 17:11 
AppOptions.txt is no longer located in the documents folder. firaxis moved it to: C:\Users\<USER>\AppData\Local\Firaxis Games\Sid Meier's Civilization VI
Mr. Uncool 21/abr./2024 às 2:28 
I've had some problems with the TSL part.
Z0eff 15/nov./2022 às 14:04 
From what I can tell the Firaxis 6 Armed Snowflake and similar maps have fixed spawn positions but players are placed in a random order.
Z0eff 15/nov./2022 às 14:04 
I'm wondering same thing as KZFKreation.
Is there is a way to make a map with defined spawn positions but with civs chosen by the players?

Basically I'm trying to make a map with 2 teams of 4 players each and with "Advanced mode" this is doable but in order to make the spawn positions predictable I have to specify each player to go in specific spots. That way I can just tell people using my map that the top 4 players in the lobby should be Team 1 and the bottom 4 players Team 2, since that's how the spawn points are split. However with this method there is no way to allow players to specify a civ. They are forced into Random for their Civ choice.

I was hoping that creating the scripts manually like in this guide would allow me to get pre-defined start positions for a team game and simultaneously allow players to pick their own civs. I tried to set the MapStartPositions as "RANDOM" and as "ANY" but both just spit out an error when trying to load the map into an actual game
Wendigon02 29/set./2022 às 1:04 
Hello, will this garantee that resources and such will be custumisationable when starting the game. (ive made a sick world builder map but when i launch it in game, i cant reroll the resources)
or how do you fix that then?
Fuzzle  [autor(a)] 29/abr./2022 às 10:03 
I think this may be possible, but I'll have to do some testing to be sure. It's not something that Firaxis does in any of their maps, unless 6 Arm Snowflake and 4 Leaf Clover do it.
KZFKreation 28/abr./2022 às 18:29 
Question: Can you create a map mod like this without defining leaders for TSL? I just want to import the spawn locations I have saved, and not require leaders to be used exactly.
Fuzzle  [autor(a)] 2/jan./2022 às 5:37 
This is not for YNAMP maps. It's for World Builder Maps. Not sure but I think TSL is handled differently in YNAMP
josearte777 2/jan./2022 às 5:10 
my question is, if a map created from ynamp can i copy them to modify the leaders in my new mod?
josearte777 2/jan./2022 às 5:03 
is for the ynamp map in which I don't know where to start to add