• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Ober

Sir Anjin
20 Badges
Sep 15, 2009
650
384
  • Darkest Hour
  • Europa Universalis IV: Res Publica
  • Heir to the Throne
  • For The Glory
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Art of War
  • Europa Universalis IV
  • Divine Wind
  • Europa Universalis III Complete
  • Deus Vult
  • Crusader Kings II
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Victoria 2
  • War of the Roses
  • 500k Club
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Common Sense
  • Cities: Skylines
Extended Countrymaking Guide

Table of Contents said:
1. Le Introduction

*Start
*Basic rules
*Software

2. Preparing to launch...

*Notepad ++
*Darkest Hour's folder structure
*Making a Country - Introduction

3. Making a Country - Basic

*Config/world_names.csv
*Db/country.csv
*Db/revolt.txt
*Db/leaders/COUNTRY_NAME.csv
*Db/ministers/ministers_TAG.csv
*Db/tech/teams/teams_TAG.csv
*Gfx/map/shields/shield_U99.bmp
*Gfx/map/flags/flag_U99.bmp
*Gfx/palette/counter_U99.bmp
*Gfx/interface/pics/picname.bmp
*Scenarios/1914.eug
*Scenarios/1914/COUNTY_NAME.inc
*Scenarios/1914/Bases.inc

4. Conclusion
*A few words to wrap it up!
*Reference Material




1. Le Introduction

Bonjour! I am le Ober and today I'm here to show and explain how to make your very own country in Darkest Hour - either existing from the start or showing up during game. It is not really hard thing to achieve - just a matter of practice and patience. And obviously patience is much more important ;) Personally I learned how to mod things a few years ago, and that's hella easy - unless you're going to make some really crazy contraptions, like good old Mod34's techtree, which is one of the craziest thing ever made for Paradox game. But nonetheless we are here to achieve things, or in other words gain some knowledge. Long time ago I made some tutorials, so well, I know what I'm talking about (cocky mode off). I'm kind of surprised that we have no quick tutorial on how to make countries here. Well, here it goes But before we start I want you guys to know basic rules. Please follow them to make your modding time both enjoyable and useful. We don't want it to be yet another pointless keyboard massacre, right?

For a purpose of tutorial, I will use Darkest Hour Full module. During that tutorial we will create purely fictional Qara-Tangra Khanate. First we'll place it in 1914 Scenario since beginning. Next time we'll try to make it revolt against Russian Empire shortly after campaign's start. I don't want it to be too long tutorial - for now we'll just learn about country basics.

*Basic Rules


*Try to not just copy code from tutorial, but also to write something by yourself! Copying patterns isn't bad, but for the first time it's better to learn what is what.

*Read carefully! Some things might seem to be unclear at first, second and third time. Beginning might be kinda troublesome, I know it by myself. But raging around won't help you, so putting it straight, you need to FOCUS!

*Mod carefully! Always make back-ups not only of files already existing and edited, by also created by you. And what can save lots of your time - don't rush things. It happens often to me when I'm going crazy - I forget one bracket or letter and things are messing up and I'm spending much more time fixing little errors. Raging included. "You gotta check yourself, before you wreck yourself!".

*Never surrender! I mean...really, at start you'll surely fail at some points, but there's nothing bad in it. Everyone begins from somewhere and yeah, you need to be aware of that.

*Modding is not a duty, but fun! So when you are editing things - chillax bro! Get yourself some tea, or snacks, or whatever you like, listen to some music and enjoy your time. It's not your duty, it's FUN!

*Software:

As we know, Darkest Hour (and all Paradox Games) consists on lots and lots and lots of various text files. If you want to edit them with basic Windows' Notepad - well, I don't know either you are wrong or crazy. Basic Notepad won't do, but there are lots of nice and free (mostly free) text editors, way better to edit Darkest Hour. For now I will show you only one, probably used by vast majority of modders - Notepad ++. It's really easy to use and also extremely helpful to find and fix errors, like missing brackets. Simply accept fact that Notepad++ is the best and download it now! Some of Darkest Hour's files (.csv) might be also opened by Microsoft Excel, but I wouldn't recommend that - back in HoI2 it was messing files after all IIRC. You can easily edit them with Notepad++ as well.

But we also might want to edit some graphics. Well, I'm not Graphic Man and I'm pretty bad at it :D Yet with combined forces of IrfanView and Paint you can create pictures of leaders/ministers and techteams. As I'm using IrfanView as well, you can find download link to it below. If you want to experiment with some advanced graphic things, you might want to check out GIMP - free graphic editor, somewhat similar to Photoshop. Please take a note however, I'm not a graphicman. I won't tell you how to make shield, counter or unit icon. Luckily there are lots of people able to do that around - ask them about help, if you are nice enough they'll help you, I'm sure.

Notepad++ - Download Link
IrfanView - Download Link
GIMP - Download Link

By the way if there are some other useful programs around, just send me link via PM - I'll add them to list. For now you need only Notepad++ to start our epic journey into World of Modding!

2. Preparing to launch...

So, after brief Le introduction I hope you know what modding is about and you are ready to go. Make yourself cup of tea and turn on some good music. And well...we are not starting yet. Our workshop needs to be prepared! Notepad++ can be customized in various ways. Picture below will explain everything.

*Notepad++

Here I want to show to two useful (yet not necessary) options - language and style configuration. So, you can set N++ to use one of programming languages in text files. Just click Language and pick one of these. And how can it help you with editing? Well, every language uses various colours for various words and symbols. For example if you'll pick C++ language, every bracket will be orange, and everything in quotation marks will be green. And speaking of brackets in C++ - if you'll click on bracket it'll turn yellow when it's closed and turn red it it's missing one at the end. Useful, isn't it? A few days ago I've seen Darkest Hour language made for Notepad++, yet it's kinda outdated I guess. Sad face :( I am always using C++ language when modding, just for these colours, it helps me a lot.

Style configuration might be even more important. Just go to Settings -> Style Configuration and here you can define colours for background and font, choose one of pre-made styles and much more. Well, there's not much to explain - just to show you guys how to make your modding life easier. Personally I am using Black board style and C++ language. It looks like so:

O7PZl.png


It looks way nicer, at least in my opinion. It is matter of preferences - it you are fine with generic style, you can keep it. It's perfectly fine.

*Darkest Hour's folder structure

Okay, your Notepad is ready. We are ready to do some modding! First of all, we have to know which files are corresponding to what and where we can find'em. That paragraph might be silly, but I'm always trying to explain everything I can. Some people might not be familiar with DH's folders after all. It's good to know where you are, and where you can things important for you. Right now I want you to go to your Darkest Hour directory, for me it would be D:\Games\DH. We will be working on Darkest Hour Full module, but here we'll find out how folders works. Okay then, there we go:

Code:
[B]*AI[/B] - all files referring to AI with .ai extension. That's quite self-explanatory - these files are defining how countries controlled by AI are acting, which countries are their targets, what are they building, etc. If we want our country to do specified things, here we can do it - but not today.
[B]*AVI[/B] - Intro, yay! Long time ago I somehow made one, it's a little bit of work, but it's not our concern today.
[B]*Config[/B] - here you can find all .csv files (but don't use Excel!) with names of everything. Like, really everything. In-game text, quotes during loading screens, names of countries, everything connected to WORDS! 
[B]*DB[/B] - Database, all modifiers, characters, technologies, events stored in .txt and .csv files. Simply it's game core. It will be our playground today. 
[B]*Gfx[/B] - All the Graphic .bmp files. Here we'll likely put our flag, shield and counter, but also additional unit icons or skins. 
[B]*Map[/B] - Everything connected to map. Go ask Mumia if you are curious about these files!
[B]*Modding Documentation[/B] - lots of useful informations. Be sure to be often here! Really, lots of good reference materials about all kinds of commands, modifiers, etc. from game devs.
[B]*Mods[/B] - all Mods can be found (and should be put) here. Here we can find Darkest Hour Full, or Kaiserreich if we've downloaded it. As we'll be creating our country in DH Full we'll go there after that paragraph.
[B]*Music[/B] - music. Nowadays it's quite fine, but back in Europa Universalis 2 except music you could also find Falalalalan here.
[B]*Scenarios[/B] - every scenario files with .eug (main file) and .inc (additional files) extension. Also graphics like scenario panels or propaganda pictures.
[B]*Sfx[/B] - all sounds played in game, like guns during battles.
[B]*Tutorial[/B] - files which makes tutorials works. But we are so good at this game that we don't need'em.

*Note - Please remember that sometimes you won't find some folders, or even specific files in modules (mods) like Darkest Hour Full. For example, DH Full doesn't have its own randomleaders.csv file, which contains all generic leaders (these without picture, skill etc.). If so, it means that mod uses core DH's file, located in main folder (Darkest Hour/db).

*Making a Country - Introduction

Well, now we are almost ready to go. We know where we can find specified type of files, that's good. But which files will we be editing? Again, a short list with explanation. After that we'll go through all files and we'll edit'em like a boss. Yet another list.

Important Notes:
*Think about country that you want to make. It needs a name and specific TAG. What is TAG? It's explained below, along with little scheme of naming files.
*COUNTRY_NAME -> name of you country. For me, it will be f.e leaders_QaraTangra.csv
*TAG - > tag used by country. Every country has tag. QaraTangra will replace Togo and so it will have U99 tag.
*Tags can be found in Config/world_names.csv. Simply all countries are listed here so you can replace one of these by yours. For sake of your own good, use unused tags! Don't replace f.e Reichkomissariats, because these might be liberated eventually. The best choice is to pick TAGs from the end - only a few of them are actually used in game. U99 seems like a good start.
*If you are doing country for someone's mod, ask him about tag. And if you are doing mod by yourself...well, it's up to you ;)

*Basic Files (necessary for make things working):

*Config/world_names.csv - country's name
*Db/country.csv - country's colour in a map, generic leader's group and type of sprite
*Db/revolt.txt - to make our country able to appear in game during campaign, within specified time limit and in specified provinces.
*Db/leaders/COUNTRY_NAME.csv - land, naval and air commanders (leaders_QaraTangra.csv)
*Db/ministers/ministers_TAG.csv - ministers (ministers_U99.csv)
*Db/tech/teams/teams_TAG.csv - tech teams (teams_U99.csv)
*Gfx/map/shields/shield_U99.bmp - shield of our country
*Gfx/map/flags/flag_U99.bmp - flag of our country
*Gfx/palette/counter_U99.bmp - counter of our country
*Gfx/interface/pics/picname_bmp - all pictures for you leaders, ministers and techteams
*Scenarios/1914.eug - making our country available to play for us and also "linking" our country .inc file
*Scenarios/1914/QaraTangra.inc - Our .inc file a.k.a Country Definition File
*Scenarios/1914/Bases.inc - Buildings and installations

*Additional Files (we will probably deal with'em next time)

*Config/scenario_text.csv - description for our country in scenario menu
*Config/models.csv - names for our tanks, planes, ships models like T-34, Messerschmit Bf-109, Akagi-Class, etc.
*Db/armynames.csv - names for our land corps like I. Armeekorps, II. Armeekorps, etc.
*Db/airnames.csv - names for our air corps
*Db/navynames.csv - names for our fleets
*Db/unitnames.csv - names for our units: divisions, ships, etc.
*Db/randoleaders.csv - generic leader's groups
*Gfx/events_pics - pictures for our events
*Gfx/interface/models - unit icons and pictures
*Gfx/Skins/TAG - skin


If there are any more files about which I forgot, my PM-box is your place to be.
Uff...it seems to be really, really much things. But believe me, some of these requires minor changes. But nonetheles...shall we begin our modding at earnest?

3. Making a Country - Basic

*Config/world_names.csv

So, here we go. My goal is to change U99 - Togo, to U99 - Qara-Tangra Khanate. But...where is U99? You should know that trick from Notepad: Ctrl+F -> Search Menu. Just type U99 and, there it is, almost at the end!

Code:
U99;Togo;Togo;Togo;Togo;Togo;Togo;;Ňîăî;;;X

Q: Why so Togo? Like Togo Togo Togo Togo, couldn't there be just one Togo?
A: No, it's for specific language versions. I believe it goes like English;French;Italian;Spanish;German;Polish;?;Russian?. If you are playing with English language only, you can change only first Togo like so:

Code:
U99;Qara-Tangra Khanate;Togo;Togo;Togo;Togo;Togo;;Ňîăî;;;X

And there we go, our country has its brand new own name! Yaaaay!

*Db/country.csv

Fine, we can leave Config for now and move onto Db. Serious work needs to be done here. At first country.csv. And again, Ctrl-F -> U99...

Code:
U99;Yellow;ENG;ENG;X

Yellow? No! English! Noooo! English sprites?...I don't mind, I'm using counters...
Speaking of colour, you can just turn on game, find country with colour which suits you and then just copy its name to its TAG in that file to your TAG. Sometimes colour names are...strange.
So, China's orange colour is named...LightBrown. Well, that's okay. Also I want to have Turkish generic leaders, just for flavour. Go to randomleaders.csv (main DH folder) to see which randomnames can you use. Copy its tag to third column.


Code:
U99;LightBrown;TUR;ENG;X

Now our country will have it's very own colour. Fancy! What about next file?

*Db/revolt.txt

Khanate will never fall, nonetheless we want to liberate it in next part of tutorial via event. If you feel the same, adding your country to revolt.txt seems like good idea. Countries which are not included here cannot be liberated - keep that in mind. When you open revolt.txt, you can see nice little guide on all commands available to use. These might be useful for all breakaway states, for now however I won't be going deep into it. All tags are added to file I guess - just find TAG of your country and edit it.

Code:
 U99 = { # Togo 
 date = { day = 1 month = january year = 1914 } 
 expirydate = { day = 30 month = december year = 1999 } 
 minimum = { 950 948 } 
 extra = { } 
 capital = 950 
 }

TAG = { - country's tag
date = {...} - since that day in game country can be liberated
expirydate = {...} - after that day in game country canno be liberated
minimum = {...} - provinces needed to liberate country
extra = {...} - optional provinces, don't needed to liberate country. But if liberator has these provinces and they're not his cores or claims, liberated country will probably get them.
capital = x - province which should be country's capital


*Note: Everything after # (comment) is not read by game. You can use it to have additional info for yourself or other modders. Here it tells us that U99 is Togo - good to know. You don't have to make comments, but it's not necessary. I prefer to have much of them, sometimes too much...

*Pro Tip - the best way to get ID of all provinces: launch Darkest Hour and any scenario, then when game started, open console (F12) and type showid. Now, when you are pointing cursor at any province its ID will be shown in down right corner. It saves MUCH TIME and I WOULD HIGHLY ADVISE you guys to use it, if you never heard about it.
Now I'm just going to get IDs of Khanate's provinces and edit U99's entry. And new entry looks like so:

Code:
 U99 = { # Qara-Tangra Khanate  
 date = { day = 1 month = january year = 1914 } 
 expirydate = { day = 30 month = december year = 1999 } 
 minimum = { 1097 1098 1099 1100 1101 1102 1103 1104 1105 } 
 extra = { 1106 1107 1112 1118 } 
 capital = 1099 # Samarkand 
 }

Basic revolt.txt entry is done. You can experiment with additional commands on your own, or maybe we can talk about that next time. And now to our Army Headquarter!

*Db/leaders/QaraTangra.csv

We start with creation of our very own file. To begin with...open any of leader's file from that folder and copy only first line. Or you can copy it from code:

Code:
Name;ID;Country;Rank 3 Year;Rank 2 Year;Rank 1 Year;Rank 0 Year;Ideal Rank;Max Skill;Traits;Skill;Experience;Loyalty;Type;Picture;Start Year;End Year;Retirement Year;x

It is header of every leaderfile. Paste it to your new file and save it as YOUR_COUNTRY_NAME.csv. Remmember about .csv! And now, now we can proceed to creation of a commander. It is really, really time-consuming - lots of columns! I already have my leader prepared. We will explain every column, one after another. Okay, move on!

Code:
Mirsaid Khan;999000;U99;1900;1900;1900;1922;0;9;5;3;0;5;0;M999000;1900;1926;1999;x

Mirsaid Khan - leader's name
999000 - leader's ID. It's good to have leaders, ministers and tech-teams starting from the same ID. Also be sure that it's high enough to not collide with already existing ministers/leaders/TTs, but also not too high, as DH's not good with really high numbers. So your people cannot have IDs like 93053201653106246246267, but 10000 would be bad too. 999000 should work for me fine.
U99 - your country's tag. Every leader entry needs tag.
Rank 3-0 Year - years when commander reaches another ranks...erm, look. Khan's Rank 1 Year is 1900 , but Rank 0 Year is set to 1922. It means that in 1914 Scenario he will be General, but in 1933 Scenario he will be Marshall. If you would set four dates to 1900 (or any other date before 1914) Khan will be Marshall. It works kinda strange, but...well, what can I do?
Ideal Rank (0) - Rank at which commander gets more expierence than on other ranks, I think. It makes sense. Khan is set to 0, so his experience will be growing faster when he'd be Marshall.
Max Skill (9) - self-explanatory. 9 is maximum I guess.
Traits (5) - traits are sorta tricky. To give your leader certain traits you need to go to your Modding Documentation folder and open Leader Traits.txt files. Every trait has its bitvalue. If you want leader to have more than one trait, you have to add bitvalues. As you can see, Khan has 5. It means Logistics Wizard (1) + Offensive Doctrine (4) = 5.
Skill (3) - simply, skill :)
Experience (0) - yeah, simply experience. But I have never seen leader with any bonus experience at start, so well...but you can try if you want.
Loyalty (5) - I guess it is remnant from HoI1. Loyalty is ability of leader/minister...to be killed. That's what I've heard. Do you know that in HoI1 Chiang-Kai Shek has loyalty "undead" (or something along that lines) as minister? Undead or undying. Dunno, but it was fun :D Speaking of loyalty, from 1 to 5. 1 = very low, 5 = very high. From what I've seen most of DH leaders has 5.
Type (0) - leader's type. 0 is land commander, 1 is naval commander, 2 is air commander.
Picture (M999000) - name of leader's picture. We'll get to pictures later, just remmember that you have to put picture's name here.
Start Year (1900) - year from which commander is available
End Year (1926) - year after which commander is unavailable
Retirement Year (1999) - new value added by DH's developers. Every leader has it set to 1999, so you should do the same. Maybe it's not ready yet.
X - X ends everything. It has to be here.

So now that you've spent hours and hours adding countless commanders for your great empire you are probably extremely tired. Yeah, I never liked leaders in fact...I mean, way of creating them. But whatchagonnado mate? I'll add some leaders on my own in meantime, just a few.
NOTE: After last leader added to file hit ENTER once to make last line empty. Why? Because if you don't game likely won't read last entries and most likely last leader won't be in the game. Same applies to techteams and ministers. After you are done with last entry, just hit ENTER once and you are done.

NOTE2: It doesn't seem to be necessary for ministers and techteams, yet for leaders you probably have to do one more thing. And that is - go to your Db/leaders.txt file. Here you have list of all leader-files loaded by game. Just add your file at the end!

Code:
xibeisanma.csv
yemen.csv
yugoslavia.csv
yunnan.csv
uch.csv
QaraTangra.csv # I am new file here, hey! Also remmember about ENTER after me!

*Db/ministers/ministers_U99.csv

If you are adding your own country to Darkest Hour Full, you might be surprised. Every TAG has its own ministerfile already, even Togo! So in case you are editing Darkest Hour Full, no need to copy anything. Otherwise you are doing exactly the same thing as with leaders - except you have to change TAG in copied line to your. Luckily these time we have our file ready, shall we look at it's content? Very well then:

Code:
[B]U99[/B];Ruling Cabinet - Start;Name;Start Year;End Year;Retirement Year;Ideology;Personality;Loyalty;Picturename;X
;Replacements;;;;;;;;;X
1310001;Head of State;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310002;Head of Government;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310003;Foreign Minister;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310004;Minister of Armament;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310005;Minister of Security;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310006;Head of Military Intelligence;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310007;Chief of Staff;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310008;Chief of Army;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310009;Chief of Navy;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
1310010;Chief of Air Force;Blue Shadow;1933;1964;1999;ML;Undistinguished Suit;Very High;unknownminister;X
(...)

Except of Blue Shadows we can find another set of Black and Red Shadows. Three sets then, but for now we need only one. Editing ministers is way much easier than leaders. Remember about correct tag at the beginning of first line and...well, you are ready to go! I won't leave you without any reference material however - here, take a look how my Head of State looks:

Code:
1310001;Head of State;Khan Mirsaid II Qara-Tengra;1913;1926;1999;PA;Resigned Generalissimo;Very High;M999000;X

1310001 - Minister's ID.
Head of State - Minister's position.
Khan Mirsaid II Qara-Tengra - Minister's name.
1913 - Year since which minister is available.
1926 - Year from which minister in no longer available.
1999 - Retirement Year (same case as with leaders).
PA- Minister's ideology. I'll make little list at the end of that section.
Resigned Generalissimo - Minister's trait. You can find all available traits in Mods/DH Full (or any other mod you are editing)/Db/ministers/minister_personalities.txt.
Very High - Loyalty, same as with leaders.
M999000 - picture's link
X - X ends everything. It has to be here.

Usually game makes governments from first ten ministers available in minister file, but you can also decide who is in government in Country Definition File. We'll learn about it later.

And now ideologies:

Code:
[B]ST[/B] - Stalinist, [B]LE[/B] - Leninist, LWR - Left-Wing Radical
SC - Social Conservative, SL - Social Liberal, ML - Market Liberal, SD - Social Democrat
PA - Paternal Autocracy, FA - Fascist, NS - National Socialist

And ending is similar to leaders - ENTER after last minister added. Hit it hard!
That what she saidWHAT?

*Db/tech/teams/teams_U99.csv

And now for tech teams, who doesn't like them? Lots of people are complaining about TTs and HoI2/DH technology system. Dunno, but I love both TT and technologies. TTs are so fun <3 Again, creators were kind enough and created teams_U99.csv file for us! Again some typical content:

Code:
[B]U99[/B];Name;Pic Name;Skill;Start Year;End Year;Speciality1;Speciality2;Speciality3;Speciality4;Speciality5;Speciality6;Speciality7;Speciality8;Speciality9;Speciality10;Speciality11;Speciality12;Speciality13;Speciality14;Speciality15;Speciality16;Speciality17;Speciality18;Speciality19;Speciality20;Speciality21;Speciality22;Speciality23;Speciality24;Speciality25;Speciality26;Speciality27;Speciality28;Speciality29;Speciality30;Speciality31;Speciality32;x
1310001;Togolese Armed Forces;T99900;2;1900;1970;small_unit_tactics;centralized_execution;infantry_focus;piloting;seamanship;;;;;;;;;;;;;;;;;;;;;;;;;;;;x
1310002;Ministry of Agriculture, Animal Husbandry and Fishing;T99901;1;1900;1970;mechanics;chemistry;management;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;x

Yet another time start is similar - copy first line and change TAG for new file; for already existing like that one go straight to editing. Togo, also known as [W.I.P] Qara-Tangra has...wow...damn, look at that power! Togolese Armed Forces with skill 2 and Ministry of Husbands with skill 1? Dawg, that's not the way to awesomeness! Serious editing needs to be done, those techteams are not cool! But wait a minute...I shall transform these...Togolese Armed Forces...into something....WAAAAAAAAAAAAAAAAAAAAAH:

Code:
1310001;United Turkic Military Council;T1310001;8;1900;1970;combined_arms_focus;small_unit_tactics;decentralized_execution;MANEUVER_TACTICS;training;;;;;;;;;;;;;;;;;;;;;;;;;;;;x

Technological awesomeness has been achieved! And now let me introduce you to the code:

1310001- TT's ID
United Turkic Military Council - TT's name
T1310001 - picture's link
8 - TT's skill, max is 9 I guess.
1900- TT's startyear
1970- TT's endyear


And from here until the end you just put TT's specialities all the way to the end...I mean, you won't be making any TT with 32 specialities, don't be crazy! Back in HoI2 there was probably impossible to add more than five. In DH's Kaiserreich Russia has some guys with six specialities, so maybe there are no limit by now. When giving more than six however you are doing at your own responsibility!
Meh, one crash and that's all what can happen I guess.

Now you might ask where you can find all these specialities? Well, you should go to Config/tech_names.csv. File begins with their list. How to add these values to files? Well, look:

Code:
RT_NUCLEAR_PHYSICS;Nuclear Physics;Physique nucléaire;Fisica nucleare;Física nuclear;Nuklearphysik;Fizyka jądrowa;;ßäĺđíŕ˙ ôčçčęŕ;;;X

To make techteam know how to make a-bombs you have to write NUCLEAR_PHYSICS (or nuclear_physics). No spaces! _ (underline?) works as a space. So combined_arms_bonus, small_unit_tactics, etc. etc.

After you are done with your techteams, hit your ENTER with PASSION! Damn yeah, that was good!

*Gfx Folder - basic info about graphics

As I told you when we were starting our journey to Modding Land, I am not a man of graphics. Yet for a basic country you need to get a shield, flag and counter. And how are you going to do that? Well, I guess that every (or most of) Darkest Hour's countries have their own set (in core DH's gfx folder I found all three things for Togo), so it's not like you won't be able to test your country in game. New countries needs new stuff however - Khanate with Togolese flag, mehehe...if you are not versed in graphic arts or if you don't have friends versed in them (I luckily have two Graphic Men available to do things for me everyday :D) you can always go and check that thread:

Here you can request a flag. Just send a picture of it or describe how it should look - sometimes Graphic People can do wonders with just ideas ;) I guess you can also ask about counter.

Where should all shields and flags go? Well:

*Gfx/map/shields -> Shield (name as hield_TAG)
*Gfx/map/flags -> Flags (name as flag_TAG

I cannot find any good tutorial on how to make flags now and to be honest I'm tired enough by writing huge amount of English words to look for them now. Check old HoI2 forums, you can always find something there. Of if anyone has any links - my PMbox is ready (I mean, it's empty right now).

There is also one more thing concerning Gfx folder - pictures. For all three groups - leaders, ministers and techteams. Prepare your Paint and IrfanView...I mean, it's not hard, I have been doing pictures several times, so yeah. For a purpose of tutorial I made only that one picture of Great Khan. Other ones are copied from other files - we have no time to toying with some bitmaps. Although I know one person, really crazy about pictures. Can anyone guess who I am thinking about? ;)

For now, especially for you a quick guide on how to make really inferior pictures:
1. Find a good picture! When you are making historical character it's not really hard - just type his/her name in Google Images and pick first image that you consider suitable. For my fictional Khan I will use that Mongol. Awesome enough!

2. Open your image with IrfanView and simply select area that interests you (well, face), create new file and paste it there. Our goal is 36x50, so you know. Rectangular shape!

3. Resize (Ctrl+R) your cut part to 36x50. It takes a few tries to cut it right from orginal picture and then nicely resize. If picture is in colour and you want B&W, just press Ctrl+G - Grayscale. It kinda works. Save (S) your resized picture as .bmp, with name specified in minister/leader file. This way Mirsaid Khan's picture will be named M999000.bmp

4. Now that you have 36x50 picture there is one more thing to make it look like average Darkest Hour's picture - white stroke. Every HoI2/DH picture has 1px white stroke outside of picture. Just open your image with Paint and do it! You know how to make four straight lines around a rectangle, right? Then save, as 24-bytes .bmp file! It is really important - 24-bytes ugh!!! Otherwise it won't work.

5. Is your picture done? Place it in your Gfx/interface/pics folder and you are done!

For TT's pictures everything is the same except that its size is 96x96. So 36x50 for ministers and leaders, but 96x96 for techteams. Remember that!
And with Gfx folder we are off to last one folder before we'll be ready to see our country in game. Scenarios!

*Scenarios/1914.eug

We know that Qara-Tangra is Turkic breakaway state which opposes Russian Tzar, so we are editing 1914 scenario (USSR wasn't Tsardom - FACT) . If we will meet next time will make we'll take another way - Qara-Tangra's rebellion will be launched by event, which fires under certain conditions. If someone wants to ask about how to make scenario - there is tutorial about it somewhere, I'm sure. But now off to making our country playable since start! In 1914.eug, which is 1914 Scenario's main file we have to add only two things:

*in selectable = { } section add tag of our country, so we can choose it and start game with it. Just put your TAG at the end of list. By now you can pick your country in scenario same as you pick minors - RBM on one of presented countries, then simply scroll down and pick your country. Easy.

Code:
  selectable = { AFG ALB ARG AST U09 BEL BHU BOL BRA BUL CAN UCH CHL CGX COL COS CUB CXB CYN DEN DOM ECU ENG ETH FRA U08 GRE GUA HAI HOL HON ITA 
		 JAP LIB LUX MEX MON MTN NEP NIC NOR NZL OMN OTT PAN PAR PER POR PRU ROM RUS SWE SAF SAL SAU SCH SIA SIK SPA TIB URU USA VEN YEM 
		 SER U02 U03 U05 U50 U51 U52 U53 U57 U58 U59 U91 LBY U60 [B]U99[/B]
               }
		}

Also we need to add "link" for Country Definition File for our TAG. Simply scroll down to the end of file and you will see lots and lots of include = "...". Add yours, it would be the best to add it at the end:

Code:
include = "scenarios\1914\china xibei.inc"
include = "scenarios\1914\china sinkiang.inc"
include = "scenarios\1914\bases.inc"
include = "scenarios\1914\depots.inc"
include ="scenarios\1914\QaraTengra.inc" # I am new here, hello! ^^

Written as so it tells game, that in scenarios folder, then in 1914 folder there is file called QaraTengra.inc, that game needs to load when starting that scenario. Here all informations about that country are stored and basically that is how things are so why am I even bothering to explain it?...uff, that was tough. Pardon-moi. Just remmember to always link everything properly, never mess up files, maintain order in them and just don't go crazy. That's it. Having covered both selectable and include, now our very own Country Definition File!


*Scenarios/1914/QaraTangra.inc


You can name it however you want as long as link is right. It might be even RoastyChicken.inc, but just to make things clear name these after countries. But speaking of .inc files, how does they look? Well, you can copy any of .inc files and just change values. That's okay. But a few months ago, tired of doing it everytime I prepared myself a little .inc file template. It includes all primary informations, but also placeholders for secondary ones. All you have to do is...fill it.

Notes:
*If you are tempting to create more countries and more .inc files - save that template from below somewhere and use it as base. It's way much comfortable than copying and changing data everytime.
*I am using lots of comments (#) to make my files nice and clean. However it's up to you how you wanna your files to look like. Have another idea for a pattern? Go on, because why not? ;)
*Really, all you have to do is change brackets to values. There's not much to explain. So at first you can look at clean template, and then at finished QaraTangra.inc file.

Template's link (I had to do it due to characters limit) - > Click!



QaraTangra.inc:

Code:
# Qara-Tangra Khanate
# By Anjin Miura (Ober)

# Main Country Section

 country = {  
    tag  = U99
    capital = 1099 # Samarkand
	   
# Resources & Convoys	   
       
    energy                 = 1000
    metal                  = 1000
    rare_materials         = 1000
    oil                    = 500
    supplies               = 1000
    money                  = 100
    manpower               =  250
    transports             = 0
    escorts                = 0
 
 # Government
 
   headofstate            = {  type = 9 id = 1310001 }  # Khan Mirsaid II Qara-Tangra
   headofgovernment       = {  type = 9 id = 1310002 } # Lotarancay Ak-Tangra
   foreignminister        = {  type = 9 id =  1310003 }  # Ambrosio O'Higgins Jr.
   armamentminister       = {  type = 9 id =  1310004 } # Lotarancay Ak-Tangra 
   ministerofsecurity     = {  type = 9 id = 1310005 } # Piri Aga
   ministerofintelligence = {  type = 9 id = 1310006 } # Kanarissay Bey
   chiefofstaff           = {  type = 9 id = 1310007 }  # Khan Mirsaid II Qara-Tangra
   chiefofarmy            = {  type = 9 id =  1310008 } # Ahmat Qara-Tangra
   chiefofnavy            = {  type = 9 id = 1310009  } # Under Army Command
   chiefofair             = {  type = 9 id = 1310010 }  # Under Army Command
 
 # Domestic Policy
 
 policy = {
    date  = {  year = 0 month = january day = 0  }
        democratic = 3
        political_left = 3
        free_market = 5
        freedom = 5
        professional_army = 7
        defense_lobby = 9
        interventionism = 6
    }
	
# Foreign Policy

diplomacy = {
relation = { tag = CHI value = -50 }
relation = { tag = GER value = 50 }
relation = { tag = PER value = -50 }
relation = { tag = RUS value = -200 }
relation = { tag = TUR value = 170 }
relation = { tag = USA value = 5 }
}

# Intelligence

# Technology

   techapps = { #Copied from Russia
	#Early Infantry Division  
	1010  1020 1030 
	#Early Mountain Division 
	1160  1170 1180 
	#CAVALRY 
	13060 13070 13080
   	#Naval Infantry
	#Engineers
	1830
	# Mobilization
	1910 1920
	
	#Early Tank 
	#Armoured Car  
	2860
	#Early Field Artillery 
	2290  
	#Early Static Anti-Air Artillery 
	#Early Anti-Tank Artillery 

	#Destroyer 
	3010 3020 3030
	#Light Cruiser 
	3110 3120
	#Heavy Cruiser 
	3210 3220 3230
	#Battlecruiser  
	3310 3320 3330
	#Battleship 
	3410 3420 3430 3440
	#Submarine 
	3610 3620
	#Troopships
	3810
	#ASW
	#TORPEDOES
	3720
	
	#Interceptors  
	4500
	#Exp.  Bomber 
	4600
	#Multirole fighter
	#ww1 strategic bomber
	4800
	#navalbomber
	
	#Census Tabulating Machine 
	#Medicine
	5600
	#Agriculture 
	5700
	#Construction Engineering 
	5800 5080
	#MANUFACTURING 
	#Basic Oil Refining 
	#Basic Decimetric Radar Warning Sites
	#Faculty of Atomic Research   

	#Great War Hospital System 

	#Landdoctrine ww1 - exp entente eng fra ita USA bel HOL jap 
	6500 6510 6530 # 6580
	#Naval Doctrines 
	8010 8020 8040 8050 8060 8070 8080 8100 8110 8150 8500 8510 
	8900 8910
	#Air Doctrines - ww1 techs
	27480 27490 27500 27510
} 
 
 # Territory
 
 nationalprovinces = { 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1112 1118 } 
 ownedprovinces = { 1097 1098 1099 1100 1101 1102 1103 1104 1105 }
 controlledprovinces = { 1097 1098 1099 1100 1101 1102 1103 1104 1105 }
 claimedprovinces = { }
	
# Order Of Battle	
	
   landunit = { 
   name = "Qara-Tangra Horde" 
   id  = {  type = 32500 id = 1 } 
   location = 1099 #Samarkand  
   division = {
       id       = {  type = 32500 id = 2  } 
       name     = "Khan's Guards" 
       type     = cavalry 
       model    = 7
	   strength = 100 
       extra    = artillery
       brigade_model = 1
      }
   division = {
       id       = {  type = 32500 id = 3  } 
       name     = "Uzbek Raiders" 
       type     = cavalry 
       model    = 6
	   strength = 100 
      }	  
	  }		
}

You can add much more things, like modifiers, offmap IC and resources, AI's file location for country, everything connected to intelligence, etc. etc. It is not our task today, today we are learning basics. Most of additional things you can find just by looking at other .inc files in other scenarios. Most of things in .inc files are really, really easy. Only two things remains before wrapping up that tutorial and showing you some of the screens:

1. Territory! I am adding Qara-Tangra in provinces owned and controlled by Russians. And when you are doing that ALWAYS remmember to ERASE these provinces from - in that case - Russian .inc file from ownedprovinces and controlledprovinces. It is logical, isn't it? Two countries cannot own/control one province at the same time. Also when moving provinces from one country to another, some units might stay on new country's territory. I have that problem - two divisions in Ashkabad and five in Tashkent. You can simply find these units in Russian .inc file and change their location, or (if it's not problem for you) wait for one day in game and both corps will be redeployed back to their country.

2. Units! As you can see, I made myself a little army, just to show how it looks like and how to make it. Let's bring that part of code here once again:

Code:
   landunit = { 
   name = "Qara-Tangra Horde" 
   id  = {  type = 32500 id = 1 } 
   location = 1099 #Samarkand  
   leader = 999000 #Mirsaid Khan
   division = {
       id       = {  type = 32500 id = 2  } 
       name     = "Khan's Guards" 
       type     = cavalry 
       model    = 7
	   max_strength = 75
	   strength = 75 
       extra    = artillery
       brigade_model = 1
      }
   division = {
       id       = {  type = 32500 id = 3  } 
       name     = "Uzbek Raiders" 
       type     = cavalry 
       model    = 6
	   strength = 100 
      }	 #I am closing division's entry
	  } # But I am closing whole landunit!

*Landunit = { } represents unit, which consists on divisions (division = { } ). Always remmember to close it after last division! See that it has two brackets at the end? First is for Uzbek Raiders, and second for whole Qara-Tangra Horde. Remmember that! Landunit needs its name, location (simply province's ID), commander (leader's ID) and ID. ID is tricky. Every country needs its own type - I picked 32500 and it works. Sometimes game has issues with types, so you might spent a few minutes more aiming at correct one. Type is explained, now IDs. Both units and divisions are sharing the same IDs pool. So, in that case:

Qara-Tangra Horde (corps) - id = 1,
Khan's Guards (division) - id = 2,
Uzbek Raiders (division) - id = 3.

And now say that I wan Ak-Tangra Horde to be next. It would be like:

Ak-Tangra Horde (corps) - id = 4,
Kyrgyz Raiders (division) - id = 5,
Tajik Raiders (division) - id = 6. Etc. etc.

And how to make division? Let's take a look:

Code:
   division = {
       id       = {  type = 32500 id = 2  } 
       name     = "Khan's Guards" 
       type     = cavalry 
       model    = 7
	   max_strength = 75
	   strength = 75 
       extra    = artillery
       brigade_model = 1
      }

Type - Well, it's natural. To check units types, just go to db\units\divisions and check files names. For example to make mountaineers division you would have to write type = bergsjaeger...yeah.
Model - in that case 7th model of cavalry. Open unit's file (here - cavalry.txt) to find out which number is which model. Here, model 7 is Early Cavalry Division (1924).
Max_strength - maximum amount of strength for unit. That brown bar, you know.
Strength- strength with which unit starts game.
Extra - brigade, same deal as with type. Go to db\units\brigades
Brigade_model - same as model for division.

3. Fleets and air groups - you have to make them as navalunit = { } and airunit = { }. Here, except of location = x you might want to set base = x. Basically where naval or air unit is based.

One day we can talk about scenario files in-depth. For today I want you to know basics. Say that you want to setup three new countries in five minutes just to see how it looks - that's what I want you to learn today. And well, it looks like we are slowly going to an end...nope! One more file, because...

*Scenarios/1914/Bases.inc

...because for now my Khanate has only 2 IC! What is that?! Noo! I refuse to play such game. Where my IC at? Well, at bases.inc. You can also add these things to your .inc file ABOVE country = { } as well. But since creators of scenario created special file only for coding all bases, forts, radars, IC, etc. in it, you should write these things here. Now, I'm not a greedy person, I just want five additional IC both in Samarkand (1099) and Bukhara (1100). Both provinces might have already been specified here, so at first I will try to find'em. Ctrl-F and id =1099 to find my capital here and...

Code:
 province = { id = 1099   #  Samarkand - Uzbekistan - Central Asia
   ic = -1 } 
 province = { id = 1100   #  Bukhara - Uzbekistan - Central Asia
   ic = -1 }

Dayomn, they've stolen my IC! Youuu Fernando, or Martin, or anyone responsible for stealing my Turkic Factories, damn yooouuuu! I need to do something! I want my IC back! Guess what? I'll just change values!

Code:
 province = { id = 1099   #  Samarkand - Uzbekistan - Central Asia
   ic = 4 } #-1
 province = { id = 1100   #  Bukhara - Uzbekistan - Central Asia
   ic = 4 } #-1

And there we go! But wait, I wanted to have five IC in both provinces, not four! Well, important thing to remmember: every province has its basic setup (resources + installations) already written in province.csv file. If you are looking for it, look for DH Full's Map folder. Here it goes: DH\map\Map_1\ - here you can find all files including province.csv. All values specified in bases.inc are ADDED to these from province.csv. So if Anti-Turkic Steppe-Haters (or DH Devs) written here that Samarkand has IC = -1, it means that base IC value for Samarkand is 1. In 1914 Scenario Samarkand has 0IC. If I'd change that -1 to 5, then Samarkand will have 6 IC. You see how it's working, right? Good. I'll be returning first values soon, so that's why I put -1 in comment - next time I'll be here, I'll know which values should be restored. Nice!

But you might ask now "Hey, I want to add more things than IC!" Well, here you go:

Code:
naval_base = x
air_base = x
landfort = x
coastalfort = x
anti_air = x
ic = x
infra =	x (0.1 for 10%, 1.0 for 100%)
rocket_test = x
radar_station = x
nuclear_reactor = x
energy = x
metal = x
oil = x
rare_materials = x
manpower = x (never tried that one, just guessing)

4. Conclusion

Well, that was tough...I spent whole day writing that thing. At first please accept my apologies because of English-fails - English is (obviously) not my native language and I tend to fail mucho-mucho at it. I hope everything is clear to all of you. If someone wants, we can move on with more tutorials, although most of things (for example these in Additional Files list) are soooo easy to guess that it makes little to no sense to explain it. If anyone needs it - just ask me and I'll try my best.

To all modders around (and there are lots of them) - if you see any mistakes, let me know immediately. I'm only a human being, which tends to fail somewhat often, so if anyone sees any mistake - my PMBox is always opened (except when it's full). I'm kinda around characters limit once again now. Next post will be *reserved* for now - I'll add quick guides about Additional Files, breakaway states and Q&A (or FAQ) section. After that, we can think about something new...if you'd like to see any tutorial, just ask - if we don't have it around I'll do my best again!

I did so much English words yesterday and some BBCode today...I'm done.

To finally wrap this up, some reference material for you Paradox-people to see how it was DONE!

*Qara-Tangra's Album on imgur.com
*Reference Materials - all files modified and created by me during tutorial, but also .inc file template and all screenshots from imgur. And Khan's picture.
 
Last edited:
  • 1Love
  • 1
Reactions:
3b. Additional Files

And here goes little addon - additional files, which can improve your country greatly. These are not necessary although, as I said, it's good to have your own planes and specific unit names. Yeah, tatsu pureti machu itsu. That stuff is extremely easy, you won't have any problems with evil brackets or anything like that. Speaking of graphic files, I'll just tell you how they look like and where you can find help or ask about them.

If there are any other things which we can classify as "Additional Files", let me know as usual and I'll likely add them here. For now our list looks like so:

*Config/scenario_text.csv - description for our country in scenario menu
*Config/models.csv - names for our tanks, planes, ships models like T-34, Messerschmit Bf-109, Akagi-Class, etc.
*Db/armynames.csv - names for our land corps like I. Armeekorps, II. Armeekorps, etc.
*Db/airnames.csv - names for our air corps
*Db/navynames.csv - names for our fleets
*Db/unitnames.csv - names for our units: divisions, ships, etc.
*Db/randoleaders.csv - generic leader's groups
*Gfx/events_pics - pictures for our events
*Gfx/interface/models - unit icons and pictures
*Gfx/Skins/TAG - skin

*Config/scenario_text.csv

Here we can edit all string names connected to Scenarios - both scenario's name and descriptions for countries - both generic and specific. What's the difference? Well, generic description will be used when country doesn't have specific one for scenario. It would be strange to see Germany with all that talks about Hitler and lost war in...1914 scenario. That's how it works - you can have basic description shown everytime, but also specific ones for other scenarios. Before we will start making our own description, important note. Look at the first line of scenario_text.csv:

Code:
#  STRING NAME (do not change!);English;French;Italian;Spanish;German;Polish;Portugese;Russian;;Extra2;X

Languages used in config files. If you are using English version only, you can add description just here BUT you have to remember about semi-colons! It might be confusing at first because there are lots of them. That's why I prepared a little template for scenario_text entries:

Code:
TAG_DESC;English_description;French_description;Italian_description;Spanish_description;German_description;Polish_description;Portuguese_description;Russian_description;Extra2_description;X

You know the drill - change tag to yours (for me it's U99_DESC). And then simply replace _description of language you are using in game (for me - English) to one desired by you! You can leave rest of entries as they are. When you are done with your entry, paste it to scenario_text.csv. The best choice would be to past it in the end, to not mess up original order. You have to do it like so:

Code:
FW_SLO;The newly independent Slovakian state has much to thank Hitler for, and has willingly committed its small forces to the campaign in Poland. (...).;;;X
U99_DESC;Qara-Tangra Khanate is awesome, fictional Turkic breakaway state which opposes Tzar and is so awesome like you don't even know dawg!;French_description.;Italian_description;Spanish_description;German_description;Polish_description;Portuguese_description;Russian_description;Extra2_description;X
#EOF;;;;;;;;;;;X
#EOF;;;;;;;;;;;X

Just before that EOF-things, which are marking end of the file I guess. And how to make specific description you might ask? I guess that it works only if scenario has its own string name. Look how that file starts:

Code:
1914_SCENARIO;The Great War (1914);La Grande Guerre (1914);La Grande Guerra (1914);La Gran Guerra (1914);Der Weltkrieg (1914);Wielka Wojna (1914);;Âĺëčęŕ˙ Âîéíŕ (1914);;;X
1933_SCENARIO;Day of Decision (1933);L'Heure des Choix (1933);L'ora delle decisioni (1933);Dia de la Decision (1933);Tag der Entscheidung (1933);Dzień decyzji (1933);;Ńóäüáîíîńíűé äĺíü (1933);;;X
1936_SCENARIO;The Road to Another War (1936);Vers une Nouvelle Guerre (1936);Verso la guerra (1936);El camino hacia la guerra (1936);Der Weg in den Krieg (1936);Droga ku wojnie (1936);;Äîđîăŕ ę âîéíĺ (1936);;;X

Looking at other specific entries we can see how it works. U99_1914_DESC will be shown in 1914 Scenario. U99_1933_DESC (or maybe U99_33_DESC) will be shown in 1933 Scenario. I am not really sure in fact, it's kinda messy, although I think that it will work with year.

There is one more option - you can put specific description directly into .eug file. Also, and I forgot to mention it last time (it's too obvious) this is how you make your country selectable from a start (without doing RMB->searching on the list). Just swap last country on the list with yours and add description like in example. However, adding desc in .eug file isn't good idea if its longer than 250 letters I guess - errors will probably crash game.

Code:
  ENG        = { }
  FRA        = { picture = "scenarios\data\propaganda_FRA_WW1.bmp" }
  RUS        = { picture = "scenarios\data\propaganda_RUS_WW1.bmp" }
  ITA        = { picture = "scenarios\data\propaganda_ITA_WW1.bmp" }
  U08        = { }
  U09        = { }
  OTT 	     = { picture = "scenarios\data\propaganda_OTT_WW1.bmp" }
  USA        = { picture = "scenarios\data\propaganda_USA_WW1.bmp" }
  JAP        = { picture = "scenarios\data\propaganda_JAP_WW1.bmp" }
  CYN        = { }
  CAN        = { picture = "scenarios\data\propaganda_CAN_WW1.bmp" }
  BEL 	     = { picture = "scenarios\data\propaganda_BEL_WW1.bmp" }
  SAF        = { picture = "scenarios\data\propaganda_SAF_WW1.bmp" }
  GRE 	     = { picture = "scenarios\data\propaganda_GRE_WW1.bmp" }
  SER 	     = { picture = "scenarios\data\propaganda_SER_WW1.bmp" }
  ROM 	     = { picture = "scenarios\data\propaganda_ROM_WW1.bmp" }
  AST 	     = { picture = "scenarios\data\propaganda_AST_WW1.bmp" }
  BUL 	     = { }
  U02	     = { }
  #SPA	     = { picture = "scenarios\data\propaganda_SPA_WW1.bmp" } #Comment, because I'll change it soon
  U99 = {
  desc = "Qara-Tangra Khanate is awesome, fictional Turkic breakaway state which opposes Tzar and is so awesome like you don't even know dawg!"
}

And one more trick - if you will put # before any line, game won't read it, right? You can "disable" some of the entries without deleting them that way. If you'd scroll down a little bit in 1914.eug, you'll see that war in Libya is disabled by #. Here I disabled Spain, because I'll be deleting U99 after that tutorial - I'll want my Spain back here then, and I'll have only to delete that one #. Useful, isn't it?

*Config/models.csv

Remember about language's rule from other file! And to not mess up semicolons! Okay, models...it's kind of easy, although we'll need to refer to one more file here. For now look how typical models.csv entry looks. Eine Polikarpov!

Code:
MODEL_RUS_13_7;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;Polikarpov I-16 Ishak;;;X

You know why we have that name pasted here so many times, good. But what's with that numbers? 13_7, what is that? That's how you create every model entry: MODEL_TAG_X_Y, where:

TAG- your country's tag
X - unit's number
Y - model's number

Fine, but where can I get that numbers? Now I want you to open unit_names.csv from config folder. After that, Ctrl+F and find "UNIT MODELS"...oh, look! Les nombres!

Code:
#########################################;;;;;;;;;;;X
######## UNIT MODELS              #######;;;;;;;;;;;X
#########################################;;;;;;;;;;;X
MODEL_0_0;Infantry 1870;Infanterie '70;Fanteria 1870;Infantería del 70;Infanterie 1870;Piechota '70;;Ďĺőîňŕ 1870-ăî;;;X
MODEL_0_1;Infantry 1897;Infanterie '97;Fanteria 1897;Infantería del 97;Infanterie 1897;Piechota '97;;Ďĺőîňŕ 1897-ăî;;;X
MODEL_0_2;Infantry 1907;Infanterie '07;Fanteria '07;Infantería del 07;Infanterie 1907;Piechota '07;;Ďĺőîňŕ 1907-ăî;;;X
MODEL_0_3;Infantry 1914;Infanterie '14;Fanteria '14;Infantería del 14;Infanterie 1914;Piechota '14;;Ďĺőîňŕ 1914-ăî;;;X
MODEL_0_4;Infantry 1916;Infanterie '16;Fanteria '16;Infantería del 16;Infanterie 1916;Piechota '16;;Ďĺőîňŕ 1916-ăî;;;X
MODEL_0_5;Infantry 1918;Infanterie '18;Fanteria '18;Infantería del 18;Infanterie 1918;Piechota '18;;Ďĺőîňŕ 1918-ăî;;;X
MODEL_0_6;Infantry 1921;Infanterie '21;Fanteria '21;Infantería del 21;Infanterie 1921;Piechota '21;;Ďĺőîňŕ 1921-ăî;;;X
MODEL_0_7;Infantry 1926;Infanterie '26;Fanteria '26;Infantería del 26;Infanterie 1926;Piechota '26;;Ďĺőîňŕ 1926-ăî;;;X
MODEL_0_8;Infantry 1931;Infanterie '31;Fanteria '31;Infantería del 31;Infanterie 1931;Piechota '31;;Ďĺőîňŕ 1931-ăî;;;X
(...)

Here you can find all generic names for every model in all languages. Well, you can't expect Siam to have it's own models, right? If so, game takes them from that file. It is base list of models, while models_csv has just specific models for some countries. Here we can easily find needed numbers for our own models. Polikarpov was 13_7, so we can simply look for MODEL_13_7:

Code:
MODEL_13_7;Early Interceptor;Premier chasseur;Intercettore rudimentale;Caza temprano;Früher Jäger;Wczesny myśliwiec;;Ďĺđĺőâŕň÷čę 1930-ăî;;;X

EDIT: You can also find list of unit's numbers in Modding Documentation folder in "Models list.txt".

So, as we can see it's Early Interceptor. Or Früher Jäger <3 Or Ďĺđĺőâŕň÷čę 1930-ăî, whatever does that means...nonetheless, that's it. And now let's say that we want to have our own model for Early Interceptor. How do we do that? With knowledge about entry's scheme and numbers you should know that already! But let me show you how my very own Turkic planes will be named:

Code:
MODEL_U99_13_5;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;;;X
MODEL_U99_13_6;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;;;X
MODEL_U99_13_7;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;;;X
MODEL_U99_13_8;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;;;X

And hey, I almost forgot...you can have your own specific brigades too. Generic list of brigades is located below generic units in unit_names.csv. And all you have to do is simply add BRIG_ to the start:

Code:
BRIG_MODEL_U99_1_0;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;;;X

And how to insert it to models.csv? It's the best to put it in the end, as usual, and before the EOF-things. We have some Yugoslavian and probably Indian models at the end. With our entry, it looks like so:

Code:
#;;;;;;;;;;;X;
MODEL_YUG_22_1;Prvic-class CL;;;;;;;;;;x;
MODEL_YUG_22_2;Dalmacija-class CL;;;;;;;;;;x;
MODEL_YUG_25_0;T1-class TB;;;;;;;;;;x;
MODEL_YUG_25_3;Beograd-class DD;;;;;;;;;;x;
MODEL_YUG_25_5;Dubrovnik-class DD;;;;;;;;;;x;
MODEL_YUG_28_2;Osvetnik-class SS;;;;;;;;;;x;
#;;;;;;;;;;;X;
MODEL_U02_25_1;Lawrence-class Sloop;;;;;;;;;;x;
MODEL_U02_25_2;Indus-class Sloop;;;;;;;;;;x;
#;;;;;;;;;;;X;
BRIG_MODEL_U99_1_0;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;Turkic Medieval Rocket Launcher;;;X
MODEL_U99_13_5;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;Tengri VI;;;X
MODEL_U99_13_6;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;Tengri VII;;;X
MODEL_U99_13_7;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;Tengri VIIb-Manas;;;X
MODEL_U99_13_8;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;Genghis Khan 9000;;;X
#EOF;;;;;;;;;;;X
#EOF;;;;;;;;;;;X

I think that we can use "#;;;;;;;;;;;X;" to separate countries and to make our file clean. Good to know. Always keep your files clean! Okay, Vorvarts!


*Db/armynames.csv and Db/airnames.csv and Db/navynames.csv

As these three files are working the same it's of no use to make three paragraphs. In case of DH Full, you won't find airnames and navynames in DH Full folder. You have to edit main files from Darkest Hour/Db. Armynames however is waiting for you in module's folder. Dunno why I keep calling mods modules, it somehow suits better IMHO. I think. But nonetheless, let's have a look how these three files looks like. It's criminal how easy modding can be.

Code:
(...)
GEO;LXIX. korpusi sak'art'veloshi
GEO;LXX. korpusi sak'art'veloshi
GER;I. Armeekorps
GER;II. Armeekorps
GER;III. Armeekorps
GER;IV. Armeekorps
GER;V. Armeekorps
GER;VI. Armeekorps
GER;VII. Armeekorps
GER;VIII. Armeekorps
GER;IX. Armeekorps
GER;X. Armeekorps
(...)

All (or most of) TAGs with names for armies. When you are forming new corps, it has one of these names. You know how it works. All we have to do is simply make a list of names like TAG;Name and put it at the end of file. You have to leave last line empty (ENTER!). airnames and navynames works exactly the same, except names there are for your air corpses(?) and fleets. Remember to not make your names too long (same applies for unitnames.csv) - it might cause some problems.

Code:
(...)
U48;CCVI. Armeekorps
U48;CCVII. Armeekorps
U48;CCVIII. Armeekorps
U48;CCIX. Armeekorps
U48;CCX. Armeekorps
U48;CCXI. Armeekorps
U99;First Horde
U99;Second Horde
U99;Third Horde

Now to names of our units!

*Db/unitnames.csv

Unitnames is a little bit more complex than our last three files. Why? Because it...it has...one more column! Oh noes!

Code:
FRA;HQ;Groupe d'Armées 2
FRA;HQ;Groupe d'Armées 3
FRA;HQ;Groupe d'Armées 4
FRA;Inf;2č Division d'Infanterie
FRA;Inf;2e Div. d'Inf. Nord-Africaine
FRA;Inf;3e Div. d'Inf. Nord-Africaine
FRA;Inf;1čre Div. d'Inf. Coloniale

Scheme is really easy. TAG;UNIT_TYPE;UNIT_NAME. Really. In the past that file was using numbers from unit_names.csv in Config. Now I can see only two used: 27 and 31, it seems that both are for Light Carriers. Except that, every unit has it's own, short abbreviation which you have to insert here. As you can guess, HQ is HQ Division and Inf is Infantry. I'm not sure if I have too make a list of these abbreviations, In fact these can be found in unit_names.csv as well. Open that file and find "SNAME_INFANTRY" via Ctrl+F. A little list of abbreviations here, first (English) are used in unitnames.csv:

Code:
SNAME_INFANTRY;Inf;Inf.;Fan;Inf;Inf.;Piech.;;Ďĺő.;;;X
SNAME_CAVALRY;Cav;Cav.;Cav;Cab;Kav.;Kaw.;;Ęŕâ.;;;X
SNAME_MOTORIZED;Mot;Mot.;Mot;Mot;Mot.;Zmot.;;Ěîň.;;;X
SNAME_MECHANIZED;Mec;Méca.;Mec;Mec;Mech.;Zmech.;;Ěĺő.;;;X
SNAME_LIGHT_ARMOR;L Arm;Bl.Lég.;Cor L;Bli L;le.Pz.;L. cz.;;Ëĺăę.ňŕíę.;;;X
SNAME_ARMOR;Arm;Bl.;Cor;Bli;Pz.;Cz.;;Ńđĺäí.ňŕíę.;;;X
SNAME_PARATROOPER;Par;Paras;Par;Par;FJ;Spad.;;ÂÄÂ;;;X
SNAME_MARINE;Mar;Amph.;Mar;Mar;Mar.;Mor.;;Ěîđ.ďĺő.;;;X
SNAME_BERGSJAEGER;Mtn;Alp.;Alp;Mon;Geb.;Gór.;;Ăîđí.;;;X
SNAME_GARRISON;Gar;Gar.;Pres;Gua;Garn.;Gar.;;Ăŕđí.;;;X
SNAME_HQ;HQ;QG;QG;EM;HQ;HQ;;Řňŕá;;;X
SNAME_INTERCEPTOR;Int F;Ch.Int.;C Int;Ca Int;AJ;Myśl. przechw.;;Ďĺđĺőâ.;;;X
SNAME_MULTI_ROLE;Ftr;Cha.;Fig;Ca;MZJ;Myśl.;;Čńňđ.;;;X
(...)

EDIT: Again, another list is waiting for you in Modding Documentation in "Unittypes used in Unitnames.txt"

I guess you are ready to make your own list of names, aren't you? You surely are, dawg. Just usual rules - not too long names (around 32 characters are maximum I've heard, but I'm not sure), paste your list at the end of file and remember to ENTER!

Code:
U44;Mil;6. Reserve Polen
U44;Mil;7. Reserve Polen
U44;Mil;8. Reserve Polen
U44;Mil;9. Reserve Polen
U44;Mil;10. Reserve Polen
U99;HQ;Turkic War Council
U99;HQ;Qara-Tangra Horde Main Camp
U99;HQ;Ak-Tangra Horde Main Camp
U99;Inf;Western Riflemen Unit
U99;Cav;1. Tumen
U99;Cav;2. Tumen
U99;Cav;3. Tumen
U99;Cav;Aral Tumen
U99;Cav;Caspian Tumen
U99;Int F;Kyrgyz Skyreachers

Nice. If we are done with it, only one Db file remains. Told'ya, it'll be easy.


*Db/randoleaders.csv

That file is, well, just to not name it useless I will say that it's not really important. When we were editing country.csv file two days ago, we had to insert one of TAG stored here to decide which random leaders we want our country to have. I am fine with Turkish names (I'd be fine with English too), but here you can create your own if you want. Take note, that DH Full uses randomleaders.csv from main folder (core version, no-mods version, however we call it). There are even some random names for Togo! Let's have a look:

Code:
U99;Msolla
U99;Khatib
U99;Ghasia
U99;Mwinyi
U99;Pinda
U99;Akukweti
U99;Mwanyika
U99;Ballali
U99;Daraja
U99;Mahiga

TAG;Name, and that's it. If any of your units won't have a commander, that random guy without face and skills will have name from that list. You can create your own list if you want. TAGs here doesn't matter I think (although it needs to be checked), so we can use all three-letters combinations. For example, you can create generic Darkest Hour's section moderators group:

Code:
DHV;Fernando Torres
DHV;MartinBG
DHV;ewphoenix123
DHV;Gormadoc
DHV;Veldmaarschalk
DHV;safferli

And if we want to have'em in our country, simply return to db/country.csv and simply put that TAG into third column (army language):

Code:
U99;LightBrown;[B]DHV[/B];ENG;X

Please take note however, that it might not work with random TAGs. But I guess it should. I've never played with randomleaders after all.

*All Gfx Files - a few words, links, advices

So, we have four things at our list - pictures for events, unit icons, skin and propaganda picture. Well, you know I can't provide any tutorial on how to make them, but just a few words from me, to not leave you without anything.

1. Event Pictures - you can find nice template for these pictures in Modding Documentation. I told you - that folder contains lots of goodies. Remember to save your pictures as 24-byte .bmp file and put them in Gfx/events_pics folder.

2. Unit Icons - Generic icons from classic Hearts of Iron II were AWFUL! UUUGH! Long time ago, some Ancient Graphic People decided that they'll make their own icons. Beautiful icons. Probably SKIFF-styled ones are most known and simply the best (I can't play without them!). You can find a few iconpacks here in forum, all of them are great deal after all. You need to put your icons to your module's Gfx/Interface/Models folder.

Obviously any iconpack wouldn't have any icons for U99 Qara-Tangra Khanate. That's sad :( But hey, I have Turkish icons here! How can I make them working for Qara-Tangra? Well, unit icons are names same as models in models_csv, for example TUR_MODEL_1_10 is pretty nice-looking 1936's cavalry. All you have to do is simply copy that icon (to not delete Turkish version) and change TAG. There you go, now your country can have icons similar to other country. If not, it'll use generic unit icons (model_x_y, without tag). I know nothing about making icons (although I made a few for myself long time ago), but DarkArk was king enough to create nice guide about making SKiFF-styled icons. Maybe I'll try it out later too? ;)

SKIF Making Guide and Starter Pack by DarkArk

3. Skin - well, I cannot find any good tutorial about it now, but in Modding Documentation you can find template for all three parts of skin. I won't help you with it, I can only tell where you have to put your skins. They goes to Mods\Darkest Hour Full\gfx\skins\TAG. Obviously TAG of country for which you've made your skin.

4. Propaganda Pictures - these are actually pretty easy and you can probably make some with IrfanView and Paint. You have to put your propaganda pictures (these one when you are picking a country) to scenarios\data. Obviously 24-bytes .bmp, as all graphic files in Europa Engine's games. Pictures named propaganda_TAG will be considered generic ones. If you want to make specific propaganda picture, you have to link it in .eug file. I guess that option works only for countries able to choose at start. In case of 1914 scenario:

Code:
  ENG        = { }
  FRA        = { picture = "scenarios\data\propaganda_FRA_WW1.bmp" }
  RUS        = { picture = "scenarios\data\propaganda_RUS_WW1.bmp" }
  ITA        = { picture = "scenarios\data\propaganda_ITA_WW1.bmp" }
  U08        = { }
  U09        = { }
  OTT 	     = { picture = "scenarios\data\propaganda_OTT_WW1.bmp" }
  USA        = { picture = "scenarios\data\propaganda_USA_WW1.bmp" }
  JAP        = { picture = "scenarios\data\propaganda_JAP_WW1.bmp" }
  CYN        = { }
  CAN        = { picture = "scenarios\data\propaganda_CAN_WW1.bmp" }
  BEL 	     = { picture = "scenarios\data\propaganda_BEL_WW1.bmp" }
  SAF        = { picture = "scenarios\data\propaganda_SAF_WW1.bmp" }
  GRE 	     = { picture = "scenarios\data\propaganda_GRE_WW1.bmp" }
  SER 	     = { picture = "scenarios\data\propaganda_SER_WW1.bmp" }
  ROM 	     = { picture = "scenarios\data\propaganda_ROM_WW1.bmp" }
  AST 	     = { picture = "scenarios\data\propaganda_AST_WW1.bmp" }
  BUL 	     = { }
  U02	     = { }
  SPA	     = { picture = "scenarios\data\propaganda_SPA_WW1.bmp" }

You can easily guess how to link specific propaganda picture now. And...that would be it for today. But keep in mind that maybe I will update this post and bring some new stuff in - in that case I'll inform you by posting in thread as well ;) For now that's it. Hope you understood everything and see you next time!
 
Last edited:
@SennaDavy

ERROR : (Unrecognisable which or value) 'which = cavalry_brigade' Line = 1011 file = Mods\Darkest Hour Full - Copy\db\tech\infantry_tech.txt

Whaat. I have no bloody idea. What's your DH version? If 1.02, then please install 1.03 RC2 patch - most of people have that one now. And cavalry brigade...did you add any of these to your units or did anything connected to cavalry brigade? Or maybe accidentally messed something in infantry_tech.txt?

Or, and also, one more thing:
Mods\Darkest Hour Full - Copy
So, do you have full copy of DH Full in mods folder? Like, all of files. If you are making new folder in mods, you have to copy some files from other modules to make it going. I should write about that in future, it won't be really long. But nonetheless, questions for now:


1. What's your game version?
2. What do you have in your Darkest Hour Full - Copy folder? Everything from original Darkest Hour Full?

For me it looks like you might not have db/units/brigades folder thus game cannot find cavalry brigade and other brigades added by DH Full.

@der Kriegsherr

Damnrite! Khanates are the best dayomn thing!
Except Daimyos and Shoguns, but you know!
 
Maybe the two tech files were different and that is causing trouble?

Well, it might be. If you have two DH copies, I'd suggest to delete both and/or leave only one of them? Sounds weird, but it might be case. Just get new fresh copy of DH and install 1.03 patch if it's not a problem.

In meantime, can you send me files which you've edited? Like, copy its content (.inc file would be most important) and put into CODE (you know [ CODE ] without spaces) markers. Maybe something's wrong here. But maybe it's just messed up DH. Sometimes it happens. ;)
 
Post #2 updated with infos about Additional Files ;)
And now guys, really important questions. Do you want something more about country-making? There are probably a few things more to cover. I guess that would be creation of minister's traits, additional commands/variables/values/sections for .inc files and...I guess at the end I'll show you how to make breakaway state and civil wars. But then, I would also want you guys to know how to make events. And then...well, I've asked MartinBG and he told me that I should make new thread for other tutorials. So I would have to make brand new guide for events, and then return here to make breakaway state.

How do you feel about that? Would you find it useful? Necessary? Do you find such guides helpful and/or interesting? If so, I don't mind writing even more guides. But not just for myself, you know. For now I'd like to take a little break. But after that, why not? If you like such things and want to go further into Art of Modding, I am ready to do my best! Gotta explain'em all!

Oh, one more thing. If you've successfully made your country, show us some screenshots! That'd be fun to see what have you achieved after short lesson. Really, really fun ;)
 
Thanks for this! great help!

I am currently trying to create a Nation called the Judean Empire but i have encountered a number of errors. currently the error which is disrupting my work is apparently a missing Excel file or something of the like.

I have been using the notepad ++ so i wondered if i have been missing something? so far i have only completed the creating country stage and did not add it to the scenario because i wanted to liberate it and have a look if what i did so far was working. Have i done something wrong?

Many thanks for reading

A goon.
 
Having trouble with screen shots at the moment but the error message is fairly straightforward

Critical Error!

--- excel file not found
---
 
I keep getting that one, I think It has something to do with having to replace togo and thereby deleting their files?

THE most important thing to learn about modding DH is:

Turn on the error checker in the settings.cfg file in the main DH folder. Start your mod, let it crash or whatever.. then go back to the main DH folder and open up the savedebug file, it will tell you exactly where the error is.

NOT a good idea to delete files, as many files are cross-referenced by other files..

Use OpenOffice to open up and view/change csv files, as if you use Excel, you may corrupt the file totally, as excel adds stuff to the file ...
 
A pin? This needs a pin.

Can one be done for tech teams? I can't get mine to work when I tried doing it awhile ago, I got an idea for a massive mod after playing some Civ V.