Modding the map

From Europa Universalis 3 Wiki
Revision as of 18:31, 30 March 2015 by Meneth (talk | contribs) (→‎Programs/Utilities Needed: Fixing forum links)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Modifying the map is a complex process and is detailed below.

Programs/Utilities Needed

  • Paint.net, Photoshop or another advanced graphic program, such as Gimp (freeware)
  • Notepad (or another text editor)
  • Materialiser (or another screenshot aid)forum:283024
  • nVidia's DDS plugin for Photoshop [1]

Preparation

First, figure out what exactly it is that you are going to do: what provinces are going to be added, which are to be removed, etc. (it might also benefit you to look over some of the other mod guides here, if you haven't yet) Create a rough image to base your map on like this one:

An example plan

Next, create text files in History\provinces folder for the new provinces that you've created, and copy over all other province files that are likely to be altered by your map. The content of your new province files doesn't particularly matter at this point. I just copied another Japanese province. Renumber all the province files to take into account your new provinces. Because EU3 requires that all land provinces come before all sea provinces, you can't just place your new provinces at the end of the list. I named my new provinces 1250 and 1251 (the numbers of the first 2 sea provinces) and then moved the previous 1250 and 1251 to the end, renaming them 1742 and 1743.

With that done, open Localisation folder. Each province has a line in this file that determines what its name will be on the map that begins with PROV and its province number (so London's line begins PROV236;, for example). Insert new lines and change province numbers as necessary to reflect your new map's situation.

The Map Files

When changing the map make sure you delete you cache folder before you test it. With all that preparation out of the way, it's time to move on to the real map files.

default.map - The 2 variables here that you will want to alter are max_provinces and sea_starts. Max_provinces should be set to the number of total land and sea provinces + 1 (for PTI). Sea_starts is the province number of the first sea province.

definition.csv - Each province is defined by a unique RGB color value that is defined in this file. Either create one yourself, or use one of the numerous extras provided by Paradox at the end of the file. This is also the final file that contains province numbers, so alter them as you did in text.csv and the history/provinces files.

adjacencies.csv - This file determines which straits can be crossed over without ships. If you plan to alter or create any such straits, alter this file accordingly.

climate.txt - This file determines what kind of winter each province has and whether it is tropical. You do not have to alter this file to get your file to run.

continent.txt - This file associates provinces with continents, which determines such things as which advisors you have access to. Enter any new provinces appropriately.

provinces.bmp - Each province in the game is shown on this map in its unique RGB color as listed in definitions.csv. Since the map is upside down and flipped, you'll probably want to correct that from the Image menu before you start remember to put things back the way they were when you finish!) Make your changes to the map, coloring your new provinces according to the appropriate RGB value, and doing your best not to unknowingly alter any existing provinces that you didn't intend to change. It's worth noting that some sea zones have RGB values so close together that they can not be distinguished by eye. The game scans this file and attempts to create a province for each color it encounters, so even a subtle error here can make your map refuse to load, since it will think a stray pixel is a new province. I've heard that you can check that things are okay by finding the total number of unique colors in the file (which should be total provinces + 1), but have not done this myself. If you are trying to find a stray pixel, my recommendation to you is to use the paint bucket tool set to tolerance 0, anti-alias off and contiguous on and start filling in black around the area that you have been working. Obviously you should save before you start doing this.

rivers.bmp - This file determines where the rivers are, where they start, how large they are, and where they merge. To determine the size it depends on RGB values more specifically the Green and Blue ones, The blue value should always be 255. Wile the less Green value the bigger the river. To determine a river junction you use a 255-Red pixel where the 2nd river intersects not _>|<_ that (central) river. To determine where a river starts you put down a 255-Green pixel, also it can't be in the water. Lastly the magneta red is the water and the white is land. Make sure you change land or water where you made changes on other .bmp files, the easiest way to accomplish this is to copy and paste your changes from one .bmp file to this one and fill it in with white(for land) or magneta(for water).

terrain.bmp - This file determines what terrain each province has, and presumably is used in determining what type of terrain battles fought in that province have. The terrain of each color is defined/explained in terrain.txt, so take a look at that if need be. This files does little to determine how your map appears in game, so you could just make everything grassland and come back to it later if you wish.

topology.bmp - This file can be a little intimidating at first. It determines topology based on how light and dark each pixel is. I recommend that you just fill in all new territory with a fairly dark color like 30,30,30 (not black, as that will make your land appear undewater) and come back to this file later, as it makes working with positions.txt easier. When you do come to work on this file, I recommend you copy it into another file in psd format first. Why? Because the brush tool cannot be put into normal mode while working on a bitmap. Now take the rush tool, turn its opacity down to 30% or so, and select a light grey color. This should you allow to make subtle changes to the topology fairly easily. Going back over the same area twice should make it lighter, etc. Experiment. I don't consider myself to be artistic at all, but I feel I got fairly good results. Obviously, if you working on a real area looking at topographic maps will help greatly here.

colormap.dds - This map determines what your map actually looks like in game (how green, etc.) When opening it with Photoshop, use the default options. Like with topology.bmp, you can just fill in all your changes with a basic green and move on for now if you wish. My approach to editing this file was similar to topology.bmp: a small brush with low opacity. I started with a light green, went over the map, then grabbed a few more shades. I included grey for the mountains last. I found that creating a psd file with topology.bmp as a layer superimposed over colormap.dds that could be hidden and shown at will made this much easier. When saving you have to be very careful as to what settings you use. I've uploaded a preset file here that can be used when saving. Oh, and if you need to play around with PTI, you can find it in the alpha channel of this file.

colormap_water.dds - I actually just erased Japan off of this map. It obviously determines what color water appears as, but it doesn't seem as important as the other files, so I didn't really bother with it.

minimap.dds - This file (along with minimap_bg.dds which should be edited by just copying information over from this file) can be found in gfx\interface, and determines what is displayed on the minimap that shows up in the lower right part of the display. Its fairly abstract so I did not edit it myself, but I see no reason why you couldn't treat it like either of the other .dds files.

positions.txt - This annoying file will, depending on how much of a perfectionist you are (and how small your provinces are), take a long time to get straight. It determines where cities, ports, units, etc., show up on the game map. You can get a rough idea as to what values to use by opening provinces.bmp and clicking on the info tab next on top of the navigator window in the upper right of Photoshop. Click on the left of the X Y Coordinates box that appears and choose points as a measurement unit. That box will now display the coordinates currently being pointed at by the mouse. In theory, that works fine. In practice, you'll have to load up EU3, take screenshots of the map in-game to see how it looks, then alter positions.txt appropriately. The reason I suggested skipping topology.bmp earlier is because it can be easier to place things when everything is flat. Oh, and you can't flip and rotate provinces.bmp while you're doing this because it screws with the coordinates. And everytime you make a change EU3 will recalculate all the paths when loading. So all this can be very time consuming.

One last note on positions.txt. The port_rotation and text_rotation entries in the file determine the direction of ports and province names in game. The value these entries take is the angle as measured in radians from due west. No problem, right? Using the ruler tool in Photoshop we can just determine what angle we want to use, right? Not quite. From what I've been able to determine on-line, there's no way to make Photoshop report angles in radians. Also, Photoshop measures angles from due east (not due west like EU3) and has a maximum value of 180 degrees before switching to negative numbers, whereas radians work on the full 360.

So here's the formula you'll want to use to convert the degrees Photoshop gives you to the value you put into positions.txt:

radians = (-1 * (degrees - 180)) * 0.0174533

The radians used for text_rotation are flipped along the x axis (so a line of text running from NW to SE on the map uses the value you'd expect for one running SW to NE), so take that into account.

Or as a shortcut just use these values:

port_rotation=0.000000 = W
port_rotation=0.785398 = NW
port_rotation=1.570796 = N
port_rotation=2.356194 = NE
port_rotation=3.141593 = E
port_rotation=3.926991 = SE
port_rotation=4.712389 = S
port_rotation=5.497787 = SW
text_rotation=0.785398 = from SW
text_rotation=0.392699 = from WSW
text_rotation=0.000000 = from W
text_rotation=5.890486 = from WNW
text_rotation=5.497787 = from NW

Example

Original map
New map

External links