Europa Universalis IV

Europa Universalis IV

154 个评价
EU IV How to make a Mod [ENG]
由 KubaGosth 制作
It's a short tutorial about how to make a mod for EU IV
2
2
2
   
奖励
收藏
已收藏
取消收藏
EU IV: Adding Custom Models
This tutorial will go over how to add custom 3D models into Europa Universalis 4.

Big thanks to Joror for creating the JoroDox app. You can access the app through Chrome here.

Tools you need:

Blender/Maya
Photoshop/GIMP
JoroDox
Notepad++
Finding a Model

First off you’ll need to either find or create a model. In this tutorial I will be using WoWModelViewer to find a suitable model. Here is a orc I’ve found that I’d like to add into my mod:

In WoWModelViewer, I clicked on File -> Export -> OBJ. This tutorial only covers models in the .OBJ format, although it is likely applicable to a few other formats that convert to Collada (.DAE).

Exporting this model created these files:
¨










First off open your texture files and re-save them into .DDS. Ensure you leave the .PNG files however, since you’ll need them to load the model in Blender.

I also created the normal files for each of the textures, which you can do in Photoshop with the NVIDIA Texture Tools.

Converting the Model

To prepare the model for JoroDox, you will need to convert the model into the Collada format. I’ve found Blender does this without issue, whereas Maya appears to cause an issue with the UV count.

So in Blender, go to File -> Import -> Wavefront (.obj) and select your models .OBJ file.





























The model should now appear in Blender like so:

Since WoWModelViewer exports the model’s .OBJ file correctly, there is nothing I need to do to export it properly. However this is probably not the case with other formats, so good luck.

In Blender go to File -> Export -> Collada (Default) (.dae). Name the model and select an appropriate directory for it. I recommend somewhere in your mod structure so JoroDox can easily read it.

Converting the Model, again

Now you need to convert the model into Paradox’s .MESH format. This is only possible with the JoroDox app.

Open the JoroDox app and select your mod directory. You should see something like this:

I recommend you store the textures alongside the .DAE file for easy reference. Now click Convert to PdxMesh. This will create a new model file called orc_brown.mesh in this case.
As you can see, the model does not have any textures applied to it. This is the more tedious part of the process, as you now need to assign each texture to each mesh within the model. This process takes a bit of trial and error but shouldn’t be too hard.

I also recommend you copy the nospec.dds from the vanilla game files (under gfx/models somewhere) and copy it next to your model. Then in JoroDox assign nospec.dds for every instance that calls for a specular map. This is obviously not needed if you’ve created your own specular map, but I find that an imported model will look too bright if it lacks a proper specular map.

Another thing to note is that any textures that utilise transparency should use the PdxMeshAlpha shader, not PdxMeshStandard.

Here is what the mesh part should look like after you’ve finished assigning the textures:

Save the mesh changes to the file and copy your .MESH file and the .dds files used by it into your gfx/models folder. I’d recommend creating a custom folder for this, for example in this tutorial I used gfx/models/wow/units/.

Seeing your Model ingame

You’ve now added a custom model to your mod. But you’ll need to setup a few files before it can be seen ingame.

You’ll need to create a file to assign the meshes to a mesh name. This is done in interface/assets/. I named my file wow_units.gfx. Within your file you should have something like this (modified to suit your naming scheme and the name of your files):

objectTypes = {
pdxmesh = {
name = "mesh_brown_orc"
file = "gfx/models/wow/units/brown_orc.mesh"
scale = 2.0
}
}

You’ll also need to create a file to assign the mesh names to a entity name. This is done in gfx/entities. I named my file wow_units.asset. Within your file you should have something like this (modified to suit your naming scheme and the name of your files):

entity = {
name = "brown_orc"
pdxmesh = "mesh_brown_orc"
}

Now you can test your model in game by adding an entry in the ambient_objects.txt to load the model somewhere on the map. Here is what I did:

type={
type="brown_orc"
use_animation=no
time_duration=300.000000
always_visible=yes
visible_in_all_map_modes=yes
object={
name="unit01"
hidden_on_start=no
position={
3932.000 0.000 1188.000
}
rotation={
0.000 180.000 0.000
}
}
}

Ingame I saw this:
Hopefully this helped you import your own models.
EU IV :Create a Country MOTE
Step One – Creating the Mod Structure

Since we know what we are going to change, let us construct the mod structure now. Create these folders within your mod folder:

common
countries
leaders
brigades
gfx
flags
history
provinces
countries
localisation

Step Two – Defining our country

I will be creating the country of Boop. First, we need to define Boop. Copy the countries.txt from the common in your base install into your mod.

Open countries.txt and add this line under the REB = “countries/Rebels.txt” definition:

X01 = "countries/Boop.txt"
This tells the game that the country file for Boop is called Boop.txt, and that the internal tag is X01.

Step Three – Adding our country file

The game is now expecting a country file in common/countries, with the title Boop.txt. I recommend copying one of the original country files (Algeria in this tutorial) and re-naming it Boop. Within this file you can define the country colour, graphical culture and the various names for ships, armies and fleets. We will be changing the colour to a bright pink, so change the RGB values within the color = { } clause to 228 128 216.

I will also change the names to match my new nation’s theme. Simply make sure any entries are within two quotation marks. This is what I ended up with:

#Country Name: Boop

color = { 228 128 216 }

graphical_culture = muslimgfx

ship_names = {
"Boopagedo"
}

army_names = { "The Boop Army" }

fleet_names = { "The Boop Fleet" }

Step Four – Adding a brigade

Now we want to tell the game which units are available for recruitment. Go to common/brigades, and copy Algeria.txt into your mod, matching the structure. Re-name it Boop.txt

Land units use brigade = { }, whilst naval units use squadron = { }. The structure of the clause is as follows:

Name: used by the localisation file to name your unit. i.e. ALG_Janissary_Brigade_1805. Generally you just want to change the pre-fix to match your country tag.

Type: the type of unit. References common/units.

Count: Number of soldiers. Should match the value for the type used in common/units.

Picture: Image used if the unit is walking around. Graphics can be found in gfx/brigades.

This is what I ended up with:

X01 = {
brigade={
name="X01_Janissary_Brigade_1805"
type=infantry_brigade
count=1000
picture="Army_ALG_Janissary"
}
squadron={
name="X01_Troop_Transport_1805"
type=transport_brigade
count=1
picture="Fleet_CMN_Transport"
}
}

Step Five – Adding Leaders

Go to common/leaders and copy the ALG.txt into your mod’s common/leaders. Re-name it X01.txt

The leader = { } clause uses this structure:

ID: Unique number. In this case we will start with 680001.

Name: Name of the leader. Whatever you want.

Type: Either land or sea

Maneuver: Leader’s maneuver skill

Offensive: Leader’s offensive skill

Defensive: Leader’s defensive skill

Picture: Portrait of the leader used by the game. We will use a generic portrait in this case, Unit_TUR_General1

Other generic portraits can be found in gfx/portraits/, and are simply called Unit_TAG_admiral/Unit_TAG_artgeneral/Unit_TAG_cavgeneral/Unit_TAG_general. Obviously, TAG is simply each of the countries in the base game.

I ended up with this:

leader = {
id=680001
name="Boy-o Boop"
type=land
maneuver=4
offensive=4
defensive=4
picture="Unit_TUR_General1"
enable=yes
}

The flag file goes in gfx/flags, in your mod folder, and must be 64×64, saved in the Targa, or .TGA format.

Here is mine:

Step Seven – Adding our country on the map

Now we need to create a country history file. Go to history/countries, and copy over the ALG – Algeria.txt file. Re-name it X01 – Boop.txt

primary_culture = berber # Makes the primary culture of Boop berber. Can be any of the cultures found in common/cultures.txt
add_accepted_culture = maghreb_arabic # Allows our country to accept Maghreb Arabic. Let's use get full value from provinces of this culture, as if it was our primary culture.

capital = 2041 # Sets our capital to province 2041. We will be changing this to make the province we edit.

government = feudal_monarchy # Makes our government Feudal Monarchy. Can be any of the governments found in common/governments.txt

oob = "ALG_1805.txt" # Defines our OOB file. If you want different OOBs, you will need to edit this file.

For now, don’t change anything within this file, apart from the first monarch = { } entry. This is what I ended up with:

#Country Name: Please see filename.

primary_culture = berber

add_accepted_culture = maghreb_arabic

capital = 3 # Belfast

government = feudal_monarchy

oob = "ALG_1805.txt"

1798.6.2 = {

monarch = {
name = "Lord Boop"
adm = "6"
dip = "6"
mil = "6"
monarch_picture = "ALG_Osman_Bey"
}
}

Go to history/provinces, and copy 3 – Belfast.txt into your mod. We will be changing this province, making it the province of Boop rather than of Great Britain. This is what it should look like when done:

#3 - Belfast

owner = X01
controller = X01
add_core = X01

transport3 = yes
development2 = yes

port_income = 8

victory_value = 0

base_tax = 2.0

manpower = 20

# = 1

culture = berber

city = yes

1805.1.1 = {
minorport = yes
}

Step Eight – Adding localisation

Finally, we can add localisation for our country. Go to localisation and create a new .CSV file, called mymod.csv. It should contain this:

CODE;ENGLISH;FRENCH;GERMAN;POLSKI;SPANISH;ITALIAN;SWEDISH;CZECH;HUNGARIAN;DUTCH;PORTUGESE;RUSSIAN;FINNISH;x
#xxxxxxxxxxxx;You have to use '\'n to set manual line breaks in the\n text. And use no more than 110 characters.;;Zeilenumbrüche erfordern ein vorangestelltes '\'n im\n-Text. Verwendet maximal 110 Zeichen.;;;;;;;;;;;x
X01;Boop;;;;;;;;;;;;;x
X01_ADJ;Boopian;;;;;;;;;;;;;x
X01_Infantry_Brigade_1805;Infantry Brigade;;;;;;;;;;;;;x
X01_Galley_1805;Galley;;;;;;;;;;;;;x

Go ingame, and you should now see Boop in the province of Belfast.
EU IV:Creating a Mod MOTE
One of the first things you need to be able to do when modding March of the Eagles is be able to create the .MOD file.

Step 1 – Creating the folder

All mods must be placed or created at this location: C:\Users\Name\Documents\Paradox Interactive\March of the Eagles\mod

If you are creating a new mod, you would create the mod folder here, and place the mod’s .MOD file here.

Step 2 – Creating the .MOD file

Every mod must have a corresponding .MOD file that tells the game what folder should be loaded and which files/folders to override. A basic .MOD file is:

name="My mod"
path="mod/my_mod"

This would be placed in C:\Users\Name\Documents\Paradox Interactive\March of the Eagles\mod and would tell the game to look in C:\Users\Name\Documents\Paradox Interactive\March of the Eagles\mod\my_mod when the mod is enabled.

Additional Information

You can also direct your .MOD file to look for an archive instead of a folder.

archive = "mod/mymod.zip"

If you want to totally override the game reading a folder, and only read your mod’s version of the folder, you need to use replace_path. For example, if I wanted to override the events folder, I would do this:

replace_path = "events"

Likewise, if I wanted to override a folder within another folder, such as the leaders folder in common, I would do this:

replace_path = "common/leaders"

An optional command is to tell the game to create a new user directory for your mod. This would save the settings.txt, map cache and save games in a seperate location away from the original files.

user_dir = "mymod"

Finally, if your mod requires another mod to run, you can specify this within the .MOD with the dependencies clause.

dependencies = { "someothermod" }

Remeber that the mod folder MUST mirror the base game’s structure (although you don’t have to include the files and folders if you are not changing them). For example:

mod
mymod
common
defines.lua
decisions
mydecision.txt
events
myevent.txt
EU IV:Adding a Culture
This tutorial will teach you how to add a new culture to EU4 in a step by step manner.

I recommend that you use Notepad++ for coding, although most text editors will work.

Step 1 – Mod Setup

First, you need to create a mod. To do this, go to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\ and create a folder. I will be calling this mod adding_a_culture, but you can call the folder whatever you want.

Once we have created the adding_a_culture folder, we need to create a adding_a_culture.mod. This is what the game will read to detect your mod.

Below is a basic .mod file for this tutorial:

name="Adding a Culture"
path="mod/adding_a_culture"
supported_version = "1.15.*.*" # This number should match to current game version

Now that we created our adding_a_culture.mod file, we need to place it in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\.

Next, navigate to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\adding_a_culture, and create these folders:

common
cultures
localisation
history
countries
Step 2 – Creating your Culture

In this tutorial I will be adding the Roman culture. Go to your cultures folder and create a new text file called roman_cultures.txt. Within this file add the code below.

culture_group_ancient = {
graphical_culture = westerngfx

culture_roman = {
primary = BYZ

male_names = {
Caesar
}
female_names = {
Abelia
}
dynasty_names = {
"Acidinus"
}
}
}
I will now explain each part of the code above:

culture_group_ancient
This is the name of the culture group for the new roman culture. Each culture group can contain as many cultures as you like. This is what the game will look for when you use the culture_group_union command.
graphical_culture = westerngfx
This sets the default graphical culture for any countries using a culture within this culture group. Graphical cultures are used to set the type of models each country has. i.e. Muslim countries use more arabic-style buildings, which are held within the muslimgfx graphical culture. You can find the list of graphical cultures in common\graphicalculturetype.txt. It is possible to add more, but that will be outlined in another tutorial.
culture_roman
The name of the culture. What is used within the country file to define the culture. i.e.primary_culture = culture_roman
male_names
This list is what defines what male names will be given by this culture. These names are used by the country’s leaders, advisors and rulers. You can add as many as you like. If you do not include this part, the culture will default to using Adam for all male names. These will be superseded by the names in the country file.
female_names
This list is what defines what female names will be given by this culture. These names are used by the country’s leaders, advisors and rulers. You can add as many as you like. If you do not include this part, the culture will default to using Eve for all female names. These will be superseded by the names in the country file.
dynasty_names
This list is what defines the surnames within this culture. These names are used by the country’s leaders, advisors and rulers. You can add as many as you like. If you do not include this part, the culture will default to not using surnames. These will be superseded by the names in the country file.
That is basically all there is to do when adding a culture. You can add as many as you like, and as many culture groups as you like.

Types of Names

"Caesar Salad"

Used when a name contains a space

Caesar

Used by default

Caesar_Kaiser

Used when a name changes through time but you want a regnal number to continue. Essentially it associates the two names together, although it will only show Caesar when the name entry is picked.

Step 3 – Localisation

Of course, you will need to localise your culture/culture group names.

To do this, go to localisation and create a localisation file called adding_a_culture_l_english.yml.

Within this folder, add the localisation keys. Below is what I added for this mod:

l_english:
culture_group_ancient: "Ancient"
culture_roman: "Roman"

It is important you follow the formatting above exactly. If you do not have a space before each key, or you are missing a double quote or colon, then the localisation file will not be read at all.

Step 4 – Testing your Culture

To test my new Roman culture, I will be making Byzantium Roman cultured, rather than Greek.

To do this, go to history/countries. Copy in the BYZ – ByzantineEmpire.txt file from the base game and edit it like so:

government = feudal_monarchy
government_rank = 3
primary_culture = culture_roman # Country's culture
culture_group_union = culture_group_ancient
religion = orthodox
technology_group = eastern
historical_rival = TUR
capital = 151 # Constantinople
fixed_capital = 151 # Cannot move capital away from this province & no power cost to move to it
# History was also included, but omitted in this snippet due to it's large size.

Go ingame and you should see this:
EU IV:Area/Regions/Superregions
In patch 1.14, Paradox introduced a new method to define regions within the game.

The province to region mapping is now controlled in area.txt, which mostly mirrors the original regions.txt, albeit with _area appended to each name rather than _region.

So, let’s say you wanted to add a new area called the North, to a new continent called Westeros, which is part of the World. To do this, you’d first need to add the North as an area in area.txt.

the_north_area = {
9001 9002 # Example IDs
}

This tells the game that the_north_area contains the provinces 9001 and 9002.

Now, this area needs to belong to a region to work properly. To create our region of Westeros, you’ll need to open the region.txt. In this file to create the region of Westeros, you’ll need to do this:

westeros_region = {
the_north_area
}

This tells the game that the area, the_north_area belongs to the Westeros region.

Likewise with the superregion file, open superregion.txt and add Earth as a superregion.

the_earth = {
westeros_region
}

This covers the basics of using the new area/region/superregion system.

Exploration

Paradox have changed the way the El Dorado mission-based exploration works. Before the missions were based on tradenodes, now they’re controlled within the region.txt.

Land-based exploration uses the regular regions which should be setup already, so they’re is nothing suprising about that. However, sea-based exploration now requires it’s own areas and regions.

For example, in area.txt you can see the North Pacific area defined like so:

north_pacific_area = {
1683 1684 1685 1686 1687 1688 1689 1690 1693 1694 1695 1696 1699
1714 1715
}

This is then added to the North-west Pacific region in region.txt:

north_west_pacific_region = {
north_pacific_area
north_pacific_coast_area
berring_sea_area
gulf_of_alaska_area
}
This is read by the game to create the sea exploration missions, for example this region would be explored by using the Explore the waters of the North-West Pacific option ingame.
EU IV:Creating a Mod
One of the first things you need to be able to do when modding EU4 is be able to create the .MOD file.

Step 1 – Creating the folder

All mods must be placed or created at this location: C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod

If you are creating a new mod, you would create the mod folder here, and place the mod’s .MOD file here.

Step 2 – Creating the .MOD file

Every mod must have a corresponding .MOD file that tells the game what folder should be loaded and which files/folders to override. A basic .MOD file is:
name="My mod"
path="mod/my_mod"
supported_version "1.15.*.*"
This would be placed in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod and would tell the game to look in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\my_mod when the mod is enabled. The supported_version line must match the current version of the game, otherwise the mod will not be selected able through the launcher.

Additional Information

If you want to include a picture when you upload the mod to Steam, then you will need to add this line to the .MOD file:

picture="my_image.jpg"
my_image.jpg would be placed in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\my_mod. This image would then appear as the picture for the mod on the Steam Workshop.

You can also add tags for Steam Workshop, like so:

tags=
{
"Balance"
}
The available tags are:

Alternative History
Balance
Events
Expansion
Fixes
Gameplay
Graphics
Guide
Historical
Loading Screen
Map
Military
Missions And Decisions
National Ideas
New Nations
Religion
Sound
Technologies
Trade
Translation
Utilities
Any combination is allowed.

Finally, if you are doing a major overhaul to the base game, then it is very useful to use the replace_path command, like so:

replace_path = "missions"
This would override the missions folder of the base game with your folder, which means if your missions folder was empty, then no missions would be available at all. This is very useful when you want to do a total conversion. You can also include sub-folders, like common/buildings.
EU IV:Map
Modding the map in Europa Universalis can be very difficult, especially when you run into errors. Hopefully the information contained here will help.

Opening the map files

Several files, such as colourmap_autumn.dds and such use the dds format. To open and save these images, you need to use NVIDIA Texture Tools.

The tools are easy to install if you have Photoshop. If you are using GIMP or PaintNET, I am unsure whether or not they have an equivilant plugin.

Map Size

The smallest possible map is 256 by 256. However, using widths smaller than 2048 causes the game to look very buggy, since the map will tile multiple times.

The largest possible map generally is 5632 by 2048, or the vanilla map size. You can go slightly above these values, but any drastic increase tends to not work.

I recommend you make the map width 2048 no matter what. Having a map smaller than that width will cause tiling.

Whilst a square map is possible, due to the lack of borders (ala CK2) the map tends to look bad. If you managed to import your own border models, then I surpose that using a square map could look good.

Common Crash Causes

The most annoying thing with modding the map is the complete lack of error messages.

Although you can logically work out why parts may be crashing, the game will almost never output any useful information about the map when it crashes. Hopefully these list below will help you debug any crashes:

Crash: Clicking on a province
Cause: Missing province ID in the continent.txt
Crash: CTD at Startup
Cause 1: Bad reference to a province ID that no longer exists.
Cause 2: default.map province limit is not higher than the highest used province ID
Cause 3: terrain.bmp is missing or has a bad colortable
Cause 4: rivers.bmp is missing or has a bad colortable
Cause 5: trees.bmp is missing or has a bad colourtable
Cause 6: Map dimensions are not divisible by 256
Cause 7: provinces.bmp is larger than 50MB (the exact value might be smaller/bigger)

Crash: Calculating Neighbour paths (found in the exceptions.log)
Cause 1: provinces.bmp contains provinces that are too big
Cause 2: A lake is referenced in default.map that does not exist
Cause 3: A sea is referenced in default.map that does not exist (untested)

Common Issues

Whilst not as serious as crashes, these issues can alter the graphical look/usability of the map.

Issue: The world has a neon glow effect
Cause 1: world_normal.bmp is not exactly half the resolution of the resolution defined in default.map
Cause 2: colormap_autumn.bmp (or any of the others) are not exactly half the resolution of the resolution defined in default.map
Issue: Provinces have an alias effect around them
Cause: You resized the image with the incorrect method, you must use Nearest Neighbour to maintain pixel-perfect accuracy.

Issue: Heightmap is not working correctly
Cause: You have an gradient that is too extreme. Don’t go from 100 to 200 without steps in between.

Tips

When using the Magic Wand or any other tool, make sure Anti-Alias is turned off.

When using the Magic Wand or the Fill Bucket, make sure the Tolerance is set to 0.

To edit the positions of models within provinces, use the Nudge tool. Add -nudge to the launch arguments for Europa Universalis 4 and ingame click on the Nudge! button to use the tool.

Overview

Text
adjacencies.csv: controls the strait crossings ingame.
ambient_object.txt: controls the ambient models, like the seagulls and the map frame.
area.txt: controls the areas provinces belong to.
climate.txt: controls the climate of a province, level of winter experienced in a province and whether or not a province is a wasteland
continent.txt: controls which provinces belong to which continent.
definition.csv: maps the province IDs and RGB values used in the provinces.bmp together.
default.map: controls the maximum province limit, which provinces are seas or lakes, and which other map files to load.
positions.txt: controls the location of the unit models, the city/port models, the tradenode models and the name of a province.
provincegroup.txt: similar to area.txt, these groups are for code-reference only, and will not appear ingame.
region.txt: controls which areas belong to which region.
seasons.txt: controls the dates on which season changes and the colour variance used in each season.
superregion.txt: controls which regions belong to which superregion.
terrain.txt: forces the terrain type of provinces, controls what each terrain type does, maps the colortable in terrain.bmp to each terrain type.
trade_winds.txt: controls which provinces have tradewinds and the strength of the wind.

Image
heightmap.bmp: greyscale, controls the height of the world. Used with the world_normal.bmp to give the map a 3D look.
minimap_base.bmp: the base image used for the minimap. The provinces are superimposed on this image ingame.
provinces.bmp: rgb, controls the shape and location of provinces used ingame.
rivers.bmp: indexed, controls the the location of rivers ingame.
terrain.bmp: indexed, controls the usage of the terrain textures and used to automatically assign terrain types if a province is not set within terrain.txt
trees.bmp: indexed, controls the location of trees ingame. The resolution of this file is (map resolution / 7)
world_normal.bmp: rgb, controls the bump mapping for the world.
colormap_spring.dds, rgb, this image is superimposed on the terrain map textures during spring.
colormap_summer.dds, rgb, same as above during summer.
colormap_autumn.dds, rgb, same as above during autumn.
colormap_winter.dds, rgb, same as above during winter.
colormap_water.dds, rgb, this image is superimposed on the terrain map on all parts underwater.
EU IV:positions.txt
This document will describe the meaning of each number block found within the positions.txt. This is mainly for reference, and should be useful if you need to manually change the co-ordinates without using the Nudge tool.

Example:
#Prince's Shore
407=
{
position=
{
2777.000 1287.000 2783.000 1287.000 2777.000 1287.000 2764.000 1288.000 2777.000 1287.000 2783.000 1285.000 2777.000 1287.000
}
rotation=
{
0.000 0.000 0.000 0.785 0.000 0.000 0.000
}
height=
{
0.000 0.000 1.000 0.000 0.000 0.000 0.000
}
}

Dissected:
#Prince's Shore - Name of the province found within prov_names_l_english.yml
407= - Province ID
{
position= - Dictates the position of the various graphical element a province can have.
{
2777.000 1287.000 - The x and y co-ordinates for the City model
2783.000 1287.000 - The x and y co-ordinates for the standing Unit model
2777.000 1287.000 - The x and y co-ordinates for the province name Text
2764.000 1288.000 - The x and y co-ordinates for the province's Port (If the port model is not touching a sea province, the model will not appear)
2777.000 1287.000 - The x and y co-ordinates for the province's Trade route model (will not appear if the province is the main location of a trade node, as defined in 00_tradenodes.txt)
2783.000 1285.000 - The x and y co-ordinates for the fighting Unit models
2777.000 1287.000 - The x and y co-ordinates for the Trade Wind icon (not used if the province is not defined in the tradewinds.txt)
}
rotation= - Dictates the rotation of each element. The value here is rotations (rot). 1 rot = 360 degrees
{
0.000 - City Rotation
0.000 - Standing Unit Rotation
0.000 - Text Rotation
0.785 - Port Rotation
0.000 - Trade Route Model Rotation
0.000 - Fighting Unit Rotation
0.000 - Trade Wind Model Rotation
}
height= - Dictates the height of each element. The value here is is roughly equal to 1 step in the greyscale used for the heightmap.bmp. So -1.00 results in a model one step below the base level (96), whilst 1.00 results in a model one step above.
{
0.000 - City Height. Unfortunately, this only affects the central city model, and none of the additional ones that appear in high base tax provinces.
0.000 - Unit Height.
1.000 - Text Height. Does not actually change the height of the text is a sensical way. Never change this.
0.000 - Port Height.
0.000 - Trade Route Model Height.
0.000 - Fighting Unit Height.
0.000 - Trade Wind Model Height.
}
}
Note: For converting between degrees and rotation, here is a simple calculator to do so.
http://convert-to.com/conversion/angle/convert-rotation-rot-to-degree.html

If you are manually adding positions, then the mappings for each co-ordinate on the provinces.bmp (or any of the standard sized images) are as follows:

X – Maps 1:1. i.e. In CS4 the X co-ordinate will match the co-ordinate you put in the positions.tt
Y – From the width of your map, take the position within your image editor and subtract it from the width (i.e. 2048 – 755). This will give you the value you need to add to the positions.txt (1293). Essentially the y co-ordinate is flipped.
EU IV:Adding Provinces
This tutorial will teach you how to add a new province to the EU4 map in a step by step manner.

I recommend that you use Notepad++ for coding, and Photoshop CS4 or above for editing the image files. GIMP and PaintNET will work with the files used in this tutorial, but I will not be including specific instructions for them.

Step 1 – Mod Setup
First, you need to create a mod. To do this on Windows, go to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\ and create a folder.
I will be calling this mod new_provinces, but you can call the folder whatever you want.
Once we have created the new_provinces folder, we need to create a new_provinces.mod. This is what the game reads to detect your mod.
Below is a basic .mod file for this tutorial:

name="Tutorial - Adding a new province"

path="mod/new_provinces"
supported_version = "1.14.*.*"
The supported_version line should match the version of the game you are modding for. So in the future, you’d change the line to 1.15.*.* . The asterisks are wildcards used so your mod will work with any of the hotfixes pushed out for the version specified.

Now that we created our new_provinces.mod file, we need to place it in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\.

Navigate to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces, and create these folders:
map
localisation
Now go to your game installation, which for me is J:\SteamLibrary\SteamApps\common\Europa Universalis IV\. Copy the files specified below into C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\map:
provinces.bmp
default.map
positions.txt
definition.csv
continent.txt
area.txt
Only the first four are vital, but you will probably want to assign any new provinces to a continent (otherwise clicking on the province will cause a crash to desktop) and area.txt is used to add provinces to specific areas within the game (i.e. the Scottish Highlands)

Go to J:\SteamLibrary\SteamApps\common\Europa Universalis IV\localisation and copy these files into C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\localisation

prov_names_l_english.yml
Go to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\history and create a provinces folder. We will return to this folder once we have added the new province to the map files.

Step 2 – Editing the map

Now open default.map and change max_provinces to 4021 or higher. This number must be higher than the highest province id you are using, otherwise the game will not load any new province id definitions.

Open definitions.csv. Scroll to the bottom and you should see this:
4010;100;14;110;RNW
4011;100;14;111;RNW
4012;100;14;112;RNW
4013;100;14;113;RNW
4014;100;14;114;RNW
4015;100;14;115;RNW
4016;100;14;116;RNW
4017;100;14;117;RNW
4018;100;14;118;RNW
4019;100;14;119;RNW
The format following this pattern: province_id, red, green, blue, reference name. So, if I wanted to add a new province, I would do this:

4020;255;20;33;My province;x
I have added a new province definition for the province id of 4020, telling the game to look for the province with the colour (255, 20, 33) in provinces.bmp and to assign it the id of 4020.

We have now told the game to accept province IDs up to 4021 and added a province definition to for the province 4020.

Now open provinces.bmp in Photoshop. You should see a image very similar to this:
Now, I want to add this new province to Iceland, so I will zoom in on the area containing the Icelandic provinces:

Now, remember the colour code I set earlier for province ID 2026? It was 255, 20, 33.

So click on the Palette Picker and enter these values:
Now to add this new province, use the Pencil Tool set to 1 pixel and draw it in, as below. If you use the Paint Bucket tool, ensure that Anti-alias is disabled and Contiguous is enabled. Otherwise you will get feathering which will break the provinces.bmp.

Save provinces.bmp. You have now added the province ID 4020 to the province map, and will appear ingame like so:

This is obviously not we want, so what we need to do now is add the actual province information.

Step 3 – Adding province information

Navigate to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\history\provinces.

Copy this file into that folder: J:\SteamLibrary\SteamApps\common\Europa Universalis IV\history\provinces\370 – Reykjavik.txt.

Now copy it and rename it 4020 – Province Name. You can name the province anything you want after the hyphen.

Now open this new file and edit it so it looks like this:
#4020- Cold Place
owner = NOR
controller = NOR
add_core = NOR
is_city = yes
base_tax = 1
manpower = 1
culture = norwegian
religion = catholic
trade_goods = fish
hre = no
capital = "Chilly Capital"
discovered_by = western
This will give the new province to Norway and give it the Norwegian culture and the Catholic religion. Now launch your game with the mod enabled and you should see:
Almost there! We will now add the province to continent.txt and region.txt.

Open up continent.txt and under europe = { add 4020, telling the game that province id is on the European continent.

Then open area.txt and under subarctic_islands_area = { and add 4020 to the list there.

Which area a province belongs to is dependent on where you are adding new provinces, and if you have created a new area, in which case you might want to make a new area. To do so, you’d add this to the bottom of area.txt:

my_new_area = {
4021 4022 4023 # Provinces within this area
}

Step 4 – Adding localisation

We have now added a new province to Iceland, but the province name is PROV4020. This means that province does not have an entry in prov_names_l_english.

Therefore we need to add one. Go to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\localisation\prov_names_l_english and open it with Notepad++.

Now scroll to the bottom and add a new entry:

PROV4020: "Cold Place"
Make sure you have a space in front of this new entry to maintain the correct format.

Save this file and in game you should see:
Step 5 – Adding new positions

We will now add the new province to positions.txt. Launch EU4 and once in game, use the nudge command in the console to open up the positions editor. Below is an example of me using the positions editor.

Have an experiment with the various modes to ensure the province matches your desires.
Once you have modified the information, click Save.

The game will generate a new file in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\map\ called positions.txt.

Copy it to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\new_provinces\map and overwrite the current positions.txt within your mod.
Return to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\map\ and delete the positions.txt, otherwise the game will load this version over the version within your mod.
EU IV:Adding Provinces Conclusion
Conclusion

You have now added a new province to the Europa Universalis 4 map. In addition to the steps above, you may need to add new province IDs to these files found in the common folder:

00_colonial_regions.txt – Assigns the province id to a specific colonial region for use with colonial nations.
00_tradenodes.txt – Assigns the province to a trade region. Without adding a new province here the province will belong to no region.
00_trade_companies.txt – Assigns the province id to a specific trade company region.
00_natives.txt – Controls which natives, if any appear in a province. If your province is not found in this file and is colonisable, then the Kill Natives button with Armies will fail to work.
EU IV:Adding a Country Part 1
This tutorial will teach you how to add a new country to EU4 in a step by step manner.

I recommend that you use Notepad++ for coding, although most text editors will work.

Step 1 – Mod Setup

First, you need to create a mod. To do this, go to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\ and create a folder. I will be calling this mod my_new_country, but you can call the folder whatever you want.

Once we have created the my_new_country folder, we need to create a my_new_country.mod. This is what the game will read to detect your mod.

Below is a basic .mod file for this tutorial:
name="My New Country"
path="mod/my_new_country"
supported_version "1.15.*.*" # This number should match to current game version
Now that we created our my_new_country.mod file, we need to place it in C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\.

Navigate to C:\Users\Name\Documents\Paradox Interactive\Europa Universalis IV\mod\my_new_country, and create these folders:

common
countries
country_tags
gfx
flags
localisation
history
countries
provinces
Step 2 – Creating your Country

First, you want to think up a name for your country. In this tutorial, I will be making Rome. So, copy the 00_countries.txt from country_tags into your mod. Open it.

Inside this file, you will see the definitions of each country. Since we are only adding a country, we should create a uniquely named 00_countries.txt so we don’t conflict with the base game. Rename the 00_countries.txt to mymod_countries.txt

Now we have a unique country definitions file, we can remove all the old definitions. You should end up with this:

X01 = "countries/Rome.txt"
This tells the game that this tag, X01 is assigned to the country file of Rome.txt. This file is found in common/countries, which we will now create.

Since we are making Rome, we will want to copy the contents of the ByzantineEmpire.txt country file to save time. Copy the ByzantineEmpire.txt country file from common/countries and rename it Rome.txt. Open it.

Within the file, you will see various different clauses. This is what each are for and how you can add/edit them.
graphical_culture # Used to define which graphics the country will get. The graphical cultures are found in common/graphicalculturetype.txt. This entry is required.

color = { 0 0 0 } # This is used to define the color of the country. It uses RGB. This entry is required.

historical_idea_groups = { } # This is used by the AI of the country to decide which idea groups it will take. The AI will follow this order. ADM/DIP/MIL, so adding multiple ideagroups of the same type does not work, the AI will skip over them. This entry is not required.

historical_units = { } # This is used to define which unit models the country's units will use. The country will only use one set for each sprite level. This entry is not required, the country will default to the models of the unit types it is given.

monarch_names = { } # This is used to define which first names the country's monarchs/advisors/generals will use. The #NUM is used to represent regnal numbers. The = NUM is the chance the name will be picked. The sign, either + (nothing) or - is used to denote gender, so all female names are negative, whilst male names are positive.

leader_names = { } # This is used to define which surnames the country's monarchs/advisors/generals will use. Names do not have to have quotation marks around them, although you do need them if the name has any spaces. e.g. "Double Name".

ship_names = { } # Defines what names the country's ships will use. The names will be used in the order they appear, and once they run out the game will just use roman numerals.

army_names = { } # Defines what names the country's armies will use. The names will be used in the order they appear, and once they run out the game will just use province names.

fleet_names = { } # Defines what names the country's fleets will use. The names will be used in the order they appear, and once they run out the game will just use province names.
EU IV:Adding a Country Part 2
You should end up with this:
#Country Name: Please see filename.

graphical_culture = easterngfx

color = { 236 222 184 }

historical_idea_groups = {
maritime_ideas
religious_ideas
defensive_ideas
administrative_ideas
trade_ideas
quality_ideas
innovativeness_ideas
diplomatic_ideas
}

historical_units = {
eastern_medieval_infantry
eastern_knights
slavic_stradioti
eastern_militia
ottoman_spahi
ottoman_sekban
ottoman_reformed_spahi
ottoman_reformed_janissary
ottoman_toprakli_hit_and_run
ottoman_nizami_cedid
ottoman_toprakli_dragoon
eastern_skirmisher
eastern_uhlan
eastern_carabinier
ottoman_new_model
ottoman_lancer
}

monarch_names = {
"Ioannes #7" = 40
"Alexios #5" = 30
"Konstantinos #10" = 20
"Andronikos #4" = 20
"Manuel #1" = 20
"Romanos #4" = 20
"Demetrios #0" = 15
"Theodoros #2" = 15
"Michael #9" = 10
"Andreas #0" = 10
"Helene #0" = -10
"Thomas #0" = 10
"Isaakios #2" = 10
"Basileios #2" = 10
"Leon #6" = 10
"Adrianos #1" = 5
"Anastasios #2" = 5
"Herakleios #1" = 5
"Ioulianos #3" = 5
"Ioustinianos #2"= 5
"Ioustinos #2" = 5
"Konstantios #3" = 5
"Markos #1" = 5
"Nikephoros #3" = 5
"Theophilos #1" = 5
"Theodosios #3" = 5
"Tiberios #3" = 5
"Traianos #1" = 5
"Alexandros #1" = 5
"Philippos #1" = 5
"Herakleios #1" = 5
"Athanasios #0" = 0
"Antonios #0" = 0
"Bartholomaios #0" = 0
"Christophoros #0" = 0
"Diogenes #0" = 0
"Dionysios #0" = 0
"Eirenaios #0" = 0
"Elpidios #0" = 0
"Georgios #0" = 0
"Gregorios #0" = 0
"Hektorios #0" = 0
"Iason #0" = 0
"Kyrillos #0" = 0
"Matthaios #0" = 0
"Niketas #0" = 0
"Nikolaos #0" = 0
"Nikodemos #0" = 0
"Sergios #0" = 0
"Porphyrios #0" = 0
"Pavlos #0" = 0
"Panagiotis #0" = 0
"Petros #0" = 0
"Philemon #0" = 0
"Prokopios #0" = 0
"Stephanos #0" = 0

"Eirene #1" = -20
"Theodora #1" = -20
"Zoe #1" = -10
}

leader_names = {
Akropolites Angelos Aoinos Apokaukos Argyros
Basileous Batatzes Botaneiates Boumbalis
Choniates Choumnos
Diasorenos Diogenes Doukas
Gabras
Iagaris
Kantakuzenos Kaukadenos Komnenos
Laskaris
Melissinos Melisurgos Mikrulakes Monomakos Mouzalon
Nestongos
Palaiologos Paraspondylos Phocas Phouskarnaki Phrangopoulos Psellos
Rhadinos Rhangabe Rhodocanakis Romanos
Syropoulos
Tornikes
Zarides Zimisces
}

ship_names = {
Achilleus Adrianoupolis Aetos "Aghia Eirene" "Aghia Helene" "Aghia Magdalene" "Aghia Sophia"
"Aghia Thekla" "Aghion Oros" "Aghios Athanasios" "Aghios Eusebios" "Aghios Ioannes"
"Aghios Markos" "Aghios Maximos" "Aghios Menas" "Aghios Nikolaos" "Aghios Philippos"
"Aghios Sergios" "Aghios Stephanos" "Aghios Theodoros" Aigaion Aigyptos Amphitrion
Angeliophoros Aniketos Apokalipsis "Apostolos Andreas" "Apostolos Pavlos" "Apostolos Petros"
"Archangelos Michael" "Archangelos Gabriel" Athenai Atrotos "Autokrator Rhomaion" Axiomachos
"Basileus Alexios" "Basileus Andronikos" "Basileus Basileios" "Basileus Basileon"
"Basileus Herakleios" "Basileus Ioannes" "Basileus Ioustinianos" "Basileus Isaakios"
"Basileus Konstantinos" "Basileus Leon" "Basileus Manuel" "Basileus Michael"
"Basileus Nikephoros" "Basileus Rhomaion" "Basileus Romanos" "Basileus Theodoros"
Basilevousa "Basilissa Eirene" "Basilissa Theodora" "Basilissa Zoe" Belisarios Bosporos Byzantion
Chios "Christos Soter" Christophoros Chronos
Demetra Despotes "Despotes Moreos" "Dikephalos Aetos" "Doxa Theou" Drakon
Endoxos Eperos Epos "Euxinos Pontos"
Galaxias Gorgona Gorgopleustos
Hades Hektor Hellas Hellespontos Hephaistos Herakles Hermes Heroas Hydra Hygeia
Iason Ikaria Imvros Indikopleustes Ionia Ionion
Kaisar Kentavros Keravnos Keratios Kerkyra Kyriarchos "Konstantinou Polis" Korinthos Krete Kypros
"Leon Skleros" Lemnos Lesbos Lykia "Lykos Thalasses"
Makedonia Megaleion "Megas Alexandros" "Megas Konstantinos" "Mikra Asia" Morpheas
Naxos Nike Nikephoros
Odysseus Okeanos Orestes "Orge Theou" Orthodoxia "Osios Loukas" Ouranos
Panaghia Panther Pantokrator Panteleimon Pantodynamos Paphlagonia Pegasos Pelagos
Peloponnesos Pegasos Perseus Polydynamos Pontos Poseidon Propontis
Rhodos Rhomaios Romanos
Samos Samothrake Sebastokrator Sikelia Soter Stratelates
Taxiarchis Theophilos Theophylaktos Thessalia Thessalonike Thalassokrator Thrake Thrylos Triton
Xiphias Xiphomachos
Zakynthos Zoodotis
}

army_names = {
"Thema Thrakes" "Thema Makedonikon" "Thema Thessalonikes" "Thema Helladikon" "Thema Opsikion" "Thema Optimaton"
"Thema Paphlagonia" "Thema $PROVINCE$"
}

fleet_names = {
"Thema Cibyrraeoton" "Thema Cypriakon" "Thema Aigaeou Pelagous" "Thema Sicelias"
}
Step 3 – Rounding out your Country

You now need to define the ingame state of your country. This is handled by the country file in history/countries. The game checks for the country’s tag here, so create a file called X01 – Rome.txt

Within this file you define ingame variables for your country, e.g. government, culture, religion, etc. This is a list of valid entries and how you can add/edit them:
government = imperial_government # Used to define the country's government. Must be a valid government found within common/governments/00_governments.txt

mercantilism = 0.1 # Defines how much mercantilism the country starts with. 0.1 = 10%. Most countries start with 0.1, whereas merchant republics start with 0.2.

primary_culture = greek # Defines the country's primary culture. Must be a valid culture found within common/cultures/00_cultures.txt

add_accepted_culture = greek # Adds an accepted culture for the country. Must be a valid culture found within common/cultures/00_cultures.txt

culture_group_union = byzantine # Adds a cultural union for the country. Must be a valid culture group found within common/cultures/00_cultures.txt

religion = orthodox # Defines which religion the country has. Must be a valid religion found within common/religions/00_religion.txt

technology_group = eastern # Defines which technology group the country uses. Must be a valid technology group found within common/technology.txt

historical_rival = TUR # Adds a historical rival for the country. This cannot be removed whilst ingame, so only use it for long-term rivalries.

historical_friend = ATH # Adds a historical friend for the country. This cannot be removed whilst ingame, so only use it for long-term friendships.

capital = 151 # Defines which province ID is the country's capital. If the province isn't owned by the country at game start, the game will log an error, although there is no gameplay effect.

fixed_capital = 151 # Means the country cannot move their capital away from this province, and has no power cost to move it's capital to it. This will not affect the player in 1.10

These are the main variables you can define for your country. However, you may have noticed that there are various monarchs and heirs defined below these variables. These require you to define the year before using either clause.

EU IV:Adding a Country Part 3
1000.1.1 = { } # This is a standard year clause. You need this to use the monarch or heir clause.

monarch = {
name = "Manuel II" # This defines the name of the ruler
dynasty = "Palaiologos" # This defines the dynasty of the ruler. This isn't required however.
birth_date = "1350.6.27" # Defines the birth date of the ruler. Used by the game to work out the age of the monarch.
death_date = "1392.12.18" # Defines the death date of the ruler. Used by the game when displaying the ruler history. Not actually required to change the ruler, simply adding a more recent monarch clause will do that.
adm = 1 # Defines the ADM skill of the ruler
dip = 1 # Defines the DIP skill of the ruler
mil = 1 # Defines the MIL skill of the ruler
}

heir = {
name = "Ioannes" # Defines the name of the heir.
monarch_name = "Ioannes VIII" # Defines the name of the heir on ascension to the throne.
dynasty = "Palaiologos" # Defines the dynasty of the heir.
birth_date = 1392.12.18 # Defines the birth date of the heir. Must match the year clause the heir clause is within.
death_date = 1448.10.31 # Defines the death date of the heir.
claim = 95 # Defines the claim of the heir. 100 is strong, whilst adm = 2 # Defines the ADM skill of the heir
dip = 2 # Defines the DIP skill of the heir
mil = 2 # Defines the MIL skill of the heir
}
I ended up with this for X01 – Rome.txt
government = absolute_monarchy
mercantilism = 0.1
primary_culture = greek
culture_group_union = byzantine
religion = orthodox
technology_group = western
capital = 151

1444.1.1 = {
monarch = {
name = "Caesar"
birth_date = 1350.6.27
adm = 6
dip = 6
mil = 6
}
}
You will want your country to appear on the map most of the time. Here, I will add X01 to the province of Constantinople. This is 151 – Constantinople in history/provinces. Copy it to your mod and edit it to look like this:
#151 - Thrace
owner = X01
controller = X01
add_core = X01
is_city = yes

culture = greek
religion = orthodox
capital = "Constantinople"
trade_goods = grain
hre = no
base_tax = 9
manpower = 5
temple = yes
fort1 = yes
fort2 = yes
discovered_by = western
discovered_by = eastern
discovered_by = muslim
discovered_by = ottoman
discovered_by = nomad_group

1000.1.1 = {
add_permanent_province_modifier = {
name = center_of_trade_modifier
duration = -1
}

add_permanent_province_modifier = {
name = bosphorous_sound_toll
duration = -1
}
}
Step 4 – Creating a Flag

Now we need to create the country’s flag. I recommend Photoshop, although any image editor with the ability to save Targa, or .TGA files will do. I ended up with this as my flag:







Name the flag file X01.tga, and place it in gfx/flags

Step 5 – Adding Localisation

If you want a country’s name to show up, you will need to add a localisation statement to tell the game to display the tag, in this case X01 as Rome.

In localisation, copy the achievements_l_english.yml into the mod’s localisation folder. Rename it mymod_l_english.yml. You can create this file manually, but I find it faster to copy over a previous file and edit it.

Open mymod_l_english.yml and remove all the content below l_english. We now want to add the X01 statement, and X01_ADJ statement. You should end up with this:

l_english:
X01: "Rome"
X01_ADJ: "Roman"

Ensure you have the formatting exactly the same, otherwise the YML file will not work correctly. The X01_ADJ is used to define the adjective for the country, whereas X01 is used to define the name.

Step 6 – Test

Everything should now be in order for a new country to appear, in this case for Rome to appear in Constantinople.

------------------UPDATED--------------------------------------------------------------------------
EU IV: Creating a Mod File
When you start the EU IV launcher go to the mods tab.


Then press on the Mod tools button


Then press on Create a mod button


Chose a name for your mod for me it's just guide for presentation purposes.

Version is just a version of your mod I just chose 1.0, not the game itself.

Directory mod/[Name of your mod folder]

Chose Tags for your mod.
Tags are used to describe what the mod adds/changes in the game. useful for steam workshop searching.

When you finished press create mod button


Now we have created a mod file


You should be able to see your mod in the mod tools list

Uploading your mod and adding it on the workshop will be in the next sections


EU IV: Adding a thumbnail
Go to your mod folder and put the image into the folder
It has to be named thumbnail and be in png format.

thumbnail.png
C:\Users\kubag\Documents\Paradox Interactive\Europa Universalis IV\mod\Guide
EU IV: Uploading to Workshop
When you ready to upload your mod to the Steam workshop.

In the launcher go to Mods tab and press on the Mod Tools button and chose the mod you want to upload from the list.

If the Suggested game version isn't the newest just press on the refresh button in the text box on the right. and it should update the version to the current version.

Chose Steam workshop, and you will see your mod ID is nonexisting.
It's because the mod is not on the workshop yet.
After you publish the mod you will get a mod ID for next time when you will want to update your mod.

Remember to keep the mod files, the mod folder, and the .mod file from.
In my case it's
C:\Users\kubag\Documents\Paradox Interactive\Europa Universalis IV\mod
after you upload the mod. You will need them to update your mod in the future.

You need also to add a description, the field is required.
it can be anything, for now, you can always update it later on the steam workshop page.


Scroll all the way down and you will find a green Upload mod button press it,
it will take a few second, you should get a window that your mod has been uploaded.

Then you can go to your steam profile and go to Workshop items and you will be able to see your mod there.
FAQ
I'm planning to update the guide and also add more
- religion
- UI / Interface
- custom government
- custom map
- culture

Is there a way to modify the text shown in the loading screen?
you can edit the text showing up in the loading screen by going to
EU4s localisation files, "loading_tips_l_english" I will add it soon to the tutorial with more explanation.

Can you help me ?
Feel free to add me and ask about it.
36 条留言
BGB 2024 年 8 月 18 日 上午 1:17 
Thanks for this:steamthumbsup:
BluEmber 2024 年 4 月 22 日 下午 6:33 
Favoriting this for later. ;-)
Tanavanagor 2023 年 1 月 27 日 上午 7:46 
Hey dude, i am trying to make a formable nation mod to play with my friends but i am having problems with creating the decision to form the nation. Can you help me?
Last Vandal 2022 年 4 月 28 日 上午 5:49 
how do I add custom graphical culture type?
Archivist77 2020 年 9 月 24 日 下午 1:18 
How would I make a formable nation compatible with A mod Like Extended Timeline?
ChampNotChicken 2020 年 7 月 24 日 下午 1:36 
I would also like to see adding terrain types
ChampNotChicken 2020 年 7 月 24 日 下午 1:35 
Please keep updating guide. This is the best guide I have ever read
R.Nava 2019 年 12 月 3 日 下午 3:39 
I tried adding in the line for the thumbnail but it doesnt work.
Khorne Flakes 2019 年 11 月 13 日 上午 2:35 
Is this method outdated? I've done all of this but my new cultures are still in their culture_name format in-game.
The Inspector 2019 年 3 月 14 日 上午 6:02 
Can you tll me how to change interface elements? For example, I want to make flag shields round and I want to replace religion icons. How do I replace them and what .dds saving profile in Photoshop is needed?