Adding Countries

From Hearts of Iron 3 Wiki
Jump to navigation Jump to search

Firstly you want a folder and .mod file inside of /mod/... , or if you have Their Finest Hour: /tfh/mod/...

After this you should go here [ ] and download the HoI3PosEd, this is a program that reads the country, province and unit files and allows you to look and edit them a bit more easily, as well as basically making editing which country owns what province not insanity-driving.

The mod folder should be something like ExampleMod, inside the .mod file you should at the least be using this setup:

name = "An Example Mod" - This is the text loaded up in the HOI3 Splash screen
path = "tfh/mod/ExampleMod" - The path to the mod folder
extend = "common" - extend basically means replace any files of the same name
extend = "history"
extend = "localisation"
extend = "gfx"

Before getting into the files, in almost all cases keep one of the original game's files next to what you are making, because in most cases typos or not following the format WILL break how the game runs, however luckily they are quick fixes compared to other games' modding, as almost all the files you will be working with are text based.

Now for the files themselves, at minimum a country needs the following:

  • /common/countries.txt - This sets the Tag for the country, and then points to one of the txt files for the country, if you look at the file inside the game's common, you should get the idea of it pretty easily - also do not forget to have rebels included into it, also do not forget to have #'s, these act as comments, and tell the game to ignore text behind it, allowing you to note down things.


# North America

TEX = "countries/New Texas.txt"

Also do not forget to port over:' REB = "countries/Rebels.txt" ' as it makes sure rebels are present

  • /common/country_colors.txt - this sets the colours for the countries units, in standard Red, Green, Blue 0-255 values, in this format:

# New Texas

TEX = {

color1= { 69 200 208 }
color2= { 124 200 162 }
color3= { 137 200 124 }


  • /common/countries/.. - this is the first of the big txt files for a country, and are made up of these 'chunks':

color = {R G B} - The colour values of the country when in political map-mode ingame

graphical_culture = Generic - The culture the game uses when loading unit sprites and other things

last_election = 1935.10.14 duration = 60 - Pretty obvious, the last election in YYYY.MM.DD, then how long an election lasts in days

default_templates = {

TAG_name = {

} - The starting templates available when going into constructing a division, like when playing the USA, one template is the national guard right? this is where it is defined

- typeOf_brigade is the brigade type, e.g. infantry_brigade, if you want to find what they are then look inside /units/... inside the main game's files.

After this are the unit_names, which are all the pregenerated names for brigades, corps, armies and ships and so on that you see ingame, they work in this format:

unit_names = {

typeOf_brigade = {
"Text"[space]"Text"[space]"text"[so on and so on]
anotherTypeOf_brigade = {
"Text"[space]"Text"[space]"text"[so on and so on]


This is where allllll those ministers you use in the politics screen are defined

ministers = {

leaderNumber = {
name = "NameyName"
ideology = market_liberal
loyalty = 1.00
picture = M45001
positionTheyCanOccupy = trait
anotherPositionTheyCanOccupy = trait
start_date = 1936.1.1


leaderNumber - Recommended to save 100 for every nation you make, this is the number used for all leaders ingame, so each minister, and every division, corp, army, etc., airgroup, fleet leader, so its best to have 100 for every minister, then have a large space then work on for military leaders

e.g.: country a has 1 to 100, b has 101 to 199, then so on, and then getting to military leaders starting from a having 10001 to 10099, with lets say 50 countries, leaving 5000 spaces for any more you think up

name = "text" - the name of the person, duh

ideology = ideology_name - the political ideology they follow, look inside common/ideologies, then copy the name of the side you want.

loyalty = 0.00 to 1.00 - don't know exactly, think its to do with event triggers

picture = M0 - M00000 - the picture used, look inside /gfx/pictures/portraits then scroll down a bunch, you have a metric TON of pictures to use, but if you want your own then recreate the folder structure in your mod folder, then make your own - remember extend simply replaces anything with the same name, so you can just make your own M0 and use that.

positionTheyCanOccupy = trait - the position the minister can be selected for, for the position look inside common/government_positions, for traits look inside common/minister_types

start_date = YYYY.MM.DD - the date the minster is available for selection for

  • gfx/flags/...

VERY IMPORTANT, ONE OF THE MOST IMPORTANT THINGS A COUNTRY NEEDS - the flag you place when you conquer a new territory, and the flag your new nation will be known by when it conquers the ground beneath it's glorious Armies!!!

.tga files, saved as the TAG the nation has been assigned in the common/countries.txt

If you need a program to open and edit them, download Paint.NET, it's free and works for what you need it to do

  • history/countries/TAG - CountryName.txt

The rest of the important data for a country, made up of chunks as follows:

capital = provinceNumber - the province the country calls it's capital, this is simplified MASSIVELY by using HoI3PosEd, then looking around, clicking on a province, then noting down the number

government = type - look inside common/governments.txt for the one you want, Paradox has also added in comments explaining some of the bits the government allows inside each type in that file

ideology = type - the ideology the country follows, inside governments.txt are the ones you can choose from

head_of_state = number
head_of_government = number
foreign_minister = number
armament_minister = number
minister_of_security = number
minister_of_intelligence = number
chief_of_staff = number
chief_of_army = number
chief_of_navy = number
chief_of_air = number

- the starting ministers of the country, the ones available defined inside common/countries/... in your country txt file

alignment = { x = value y = value } - the x and y co-ordinates the country starts at in the triangle in the diplomacy tab

neutrality = 0-100 - obvious

national_unity = 0-100 - obvious

money = value - obvious



- if you look into the base game's files, you can find out how these work, they basically assign which tech/how much practical and theory the country has at the start of the game

oob = "TAG_1936.txt" - the OOB the country starts off with, explained later on

popularity = {

national_socialist = 0
fascistic = 0
paternal_autocrat = 0
social_conservative = 39
market_liberal = 0
social_liberal = 61
social_democrat = 0
left_wing_radical = 0
leninist = 0
stalinist = 0


organization = {

national_socialist = 0
fascistic = 0
paternal_autocrat = 0
social_conservative = 80
market_liberal = 0
social_liberal = 85
social_democrat = 0
left_wing_radical = 0
leninist = 0
stalinist = 0


- the popularity and organisation of the political parties in the country, shown in the politics tab ingame

training_laws = advanced_training

press_laws = free_press

industrial_policy_laws = mixed_industry

education_investment_law = big_education_investment

economic_law = full_civilian_economy

conscription_law = volunteer_army

civil_law = open_society

- the different laws the country starts off with

  • history/provinces/...

- every single province ingame with the province number, inside each is at minimum these bits of code: owner = PER

controller = PER

add_core = PER

infra = value

- the owner being who currently owns the province

- controller being who controls it, so e.g. when at war with a country, the other nation controls it, causing those angled lines to cross the province

- add_core being like cores in other Paradox games

- infra is the infrastructure level of the province

now before you even begin to think of editing it one by one, DON'T, JUST. GET. HOI3POSED. IT WILL SAVE YOU SO MUCH TIME I PROMISE

Also do not forget to copy over the REB - Rebels.txt from the game's history/countries/ folder.

  • history/units/...

here are the txt files that hold the starting units of a country, and are worked and tweaked as the game goes, and are connected to a country by the history/countries/country.txt file created above, they work as follows, and work kinda the same for each layer of OOB, for everything else than those listed here, look at the game's OOBs in the same folder setup


division= {

name = "text"
location = provinceNumber
is_reserve = value
regiment = { type = typeOf_brigade experience = value historical_model = value }
regiment = { type = typeOf_brigade experience = value historical_model = value }
regiment = { type = typeOf_brigade experience = value historical_model = value }



navy = {

name = "text"
base = provinceThatHasANavalBaseInIt
location = provinceTheFleetIsIn
ship = { type = heavy_cruiser name = "name" historical_model = value }
ship = { type = heavy_cruiser name = "name" historical_model = value }
ship = { type = light_cruiser name = "name" historical_model = value }
ship = { type = light_cruiser name = "name" historical_model = value }
ship = { type = light_cruiser name = "name" historical_model = value }



air = {

name = "name"
base = provinceThatHasAnAirfieldInIt
location = provinceTheWingIsIn
wing = { type = tactical_bomber name = "name" historical_model = value }
wing = { type = interceptor name = "name" historical_model = value }



military_construction = {

country = TAG
typeOfUnit = {
name = "name"
historical_model = value
cost = value
progress = value
duration = value


type - look inside the game files /units/... for all the unit types

historical_model - this I think is the value of the equipment the unit has


  • localisation/countries.txt

this is the where the names and adjectives for the countries are set, and at minimum should have these:


Now one thing you shouldn't do is have spaces between the names, write the file as follows:


Otherwise you will have some really fun text errors, also make sure to not forget the Rebels, already included in the example above

And that's it, you should have yourself a country now, now here are some other files you can make to provide the rest a country can have in HoI3:

  • /history/leaders/YOURTAG.txt

For leaders.

  • /localisation/Parties.csv

This file is responsible for names of parties in all the countries.

  • /gfx/pictures/portraits

This is the directory for pictures of leaders and ministers. They need to be in 36x50 format, TGA.