Você está na página 1de 103

Darkest Hour's Development Diaries

Index
DD1: Introduction to Darkest Hour......................................................................................................2
DD2: World Map..................................................................................................................................6
DD3: Spying System..........................................................................................................................13
DD4: Implementing Modifications....................................................................................................19
DD5: Claims.......................................................................................................................................23
DD6: It's your decision.......................................................................................................................26
DD7: Missions, Interface and Leader Traits.......................................................................................29
DD8: Improved Interface...................................................................................................................34
DD9: Questions & Answers Session..................................................................................................38
DD10: Improved Interface part 2.......................................................................................................42
DD11: Modding with Darkest Hour part 1.........................................................................................46
Addendum to DD 11......................................................................................................................50
DD12: Modding with Darkest Hour part 2.........................................................................................52
DD13: Modding with Darkest Hour part 3.........................................................................................54
DD14: Modding with Darkest Hour Part 4........................................................................................58
DD15: Questions & Answers Session part 2......................................................................................62
DD16: Trade & Stockpile systems.....................................................................................................66
DD17: Tech Tree Part 1......................................................................................................................71
DD18: Tech Tree Part 2......................................................................................................................76
DD19: Generic Decisions...................................................................................................................81
DD20: Production screen & AI..........................................................................................................84
DD21: Mobilization system...............................................................................................................88
DD22: Countries Release and Rebel Systems....................................................................................94
DD23: New Map 2.0 and Improved Logs..........................................................................................98
DD1: Introduction to Darkest Hour
We know you have been all eager to grab fresh information about the game. To be very honest with
you, we initially planned to release the first development diary only next week. But you were very
insisting, so let's start from the beginning : what is Darkest Hour, and who the developers are.

Darkest Hour Core (no relation to the mod), in its early stages still know as "The Project", can be
viewed as a continuation of the 1.3 patch for Armageddon because it is based on it and is nearly
100% compatible with all existing 1.3 mods, and offers for the first time full moddir support.
What started as a small project to fix the remaining hard-coded bugs, after the last beta patch
became much more over the last years.
Starting with initial bug fixes, a huge amount of code optimization to increase performance quickly
followed. Hard-coded modifiers were then moved to moddable files, Hard-coded limitations
removed, and then new features added.
Over the weeks, it became pretty obvious that we were no longer aiming for a patch to fix the last
bugs, but for a new platform as standard for the HOI community. One that would offer modders
what they have been asking for over the years and to keep our beloved mods alive and enjoyable for
many years to come. For it has indeed been developed by fans and modders.

By fans, for the fans

MartinBG, who was the Lead programmer of HOI2 Armageddon Patch Project, and Gormadoc,
Lead programmer on the Community Database Cleanup Project, started the whole thing more
then two years ago.
Fernando Torres developer of World in Flames mod, who has been our most vocal Developer in
the forum until now, joined up shortly after, initially aiming to create a new WIF mod for the new
improved engine. But things went a bit different, and out of the idea to create an independent mod
emerged Darkest Hour Full, the first "mod" for Darkest Hour using the full potential of the new
code right from scratch.

Over time even more people joined the team, some as bug testers, others as active contributors.

As for myself, I actually joined the DH team pretty late in the progress, only 6 months ago, and I
can't really offer any real recognition value for you guys as I have been not very active in the
Paradox community and basically only enjoyed playing the games. But I think you will not hold
that against me for long.

What do you guys do?

Although the borders are a bit blurry, as all of us work on the database from time to time (add the
odd event, fix one thing or another), let me try to give you an idea of who is in charge in our
development team:

MartinBG - Coding

Fernando Torres - AI and DB maintenance

Gormadoc - Tech tree

Ewphoenix123 - Map implementation, map related database maintenance


You mentioned contributors?

I think we now have more than 30 people who are helping out to a different degree, and listing all
of them would just be too much for this diary.
This here is just a (not so) short list for a start with those who contributed the most over the last
months in no specific order:

Mumia allowed as to use the E3 map as a base for our new map, and helped with most of the initial
concepts.

Eginhard 38 from WIF did an incredible job when he finalized the designs for the new map,
always standing on the edge balancing AI capabilities and geographic reality.

Arturius from the 1914 mod, well you can think for yourself where he contributes.

Bizon from the NWO mod made our game launcher, helped out with translations and the
implementation of new minors.

^AC^ from Kaiserreich helped out adapting vanilla scenarios to the new map and translations.

Jaegerfeld of the canceled DMP Ragnaroek - Projekt 36 is developing the AI for our 1914
scenarios

Rhysaxiel from WIF is working on event chains for 1914 and coordinating the pre-WW2 scenarios.

tedescoo from Turning Point and BIP helped out with translations and as a tester.

Jrhindo from the Yugoslavian Wars helped with translations and ideas.

The famous sonofliberty has outdone himself in the last weeks as one of our main testers, and
offered a lot input in many design aspects.

Inner Circle from GK Multilevel Sprite Pack and GK Atmospherical Improvement Mod is working
on our interface graphics.

Cardus helped with new OOB for Italy and Abyssinia, making the Ethiopian war much more
interesting..

TeutonburgerW from the Minor Graphics Mod has contributed ideas for new minors a bit of
modding, graphics, beta-testing.

Miihkali from Anatolian Wars Mod has done some scenario and event design, and some graphical
help. Ideas, suggestions and little historical research.

Cueball from EIR added floating event ideas, the first AI fixes for the new map, ideas to implement
new minors, and help with initial map concepts.

WilhelmII from Gamerkollektiv helped with some graphics in addition to the obligatory beta-
testing.

thewookie1 added the first concept for the inclusion of the Transsibirian Railroad.
And many more that haven't been that active in the last months, like Koenig from Mod33, 49h from
WIF, GAGA Extreme from the GAGA Tech Mod, and a lot others I simply forgot... I elaborate
further on their contributions in future development diaries.

This should give you a glimpse of who has been involved in this, how many familiar names to find,
and how many of those are still actively developing mods out there. Thus you can draw your own
conclusions about what you can expect for the future. Expect for instance some mods to be
available for DH from day one..

Here are now a few words from our contributors.

Originally Posted by TeutonburgerW


Being a long time HOI player, there were several things I've always dreamed of if they would come
true but I thought the engine was too old and it was better to adapt and start playing HOI3. That
was, until Rayan (aka Fernando Torres) invited me to contribute to what is now called Darkest
Hour. Most of the things I've ever wanted (a smarter AI, a better map, automated stuff and higher
moddability plus a whole lot more) was there. I'm very pleased that the DH development team
listened so much on us "modders" as well as long time players during the development phase; what
we enjoyed, what we didn't enjoy and, of course what we wanted to make DH the best WW
simulation out there!
Originally Posted by Inner Circle
When I was invited to the Team, i knew only little, until i got some screenshots from a Beta Build. I
was really impressed and eventually agreed to help them.
My contributions are mostly graphics, beta testing and recruiting new contributors. Every new Beta
is better than the last one and for the first time i have the feeling to play the HoI game I always
wanted...
Originally Posted by AC
Darkest Hour is a dream come true for me. A game made by fans for the fans... or even better, made
by modders for the modders. We have assembled such a good team, that worked together for
months (years, some could say) with one objective in mind: to create a game enjoyable by the fans
and loved by the modders! Being a part of this is an honor, even if for now my contributions have
been limited to beta testing, suggestions and translation.

And maybe a word from Mumia, one of our map geeks (he usually does not communicate with us
except to post with strange words and show awesome maps he just drawn but maybe he will make
an exception for you..)

Originally Posted by mumia


'Me no spiking Inglese'.
Right.
(Just kidding, I love you buddy )

Development philosophy

Our philosophy is to stay true to the community and provide the most fun for players as well as
the best platform for modders.

We think it first starts with being honest with the fans. And there is one thing that has been claimed
around that we wanted to correct. The game timeline is indeed set to span from 1914 to 1964, which
means there will be small and large scenarios available throughout this period. What it does not
mean is that there would be a giant scenario allowing to play straight from 1914 to 1964.
It is obviously unrealistic to think that a game like Darkest Hour could cover all (un)historical
possibilities for such long period of time. (yet)

On the other hand, we focused on a few unhistorical and yet plausible outcomes, be it during or
after the First war or during the Second. We shall not go into details for now but you can rest
assured that Darkest Hour rejects the sandbox approach.

The other thing is, We are here to stay, even after two years we are still far from reaching the limits
of the Europa engine, and we have all intentions to keep developing Darkest Hour further for a long
time to come.

We are still looking for new contributors and testers, as this is basically a project from the
community for the community. We will be looking forward to helping modders prepare their
contribution even before the release date (we are aiming for November release). Feel free to contact
us at darkest.hour.team(at)gmail(dot)com.
We are also going to answer a few general questions later today. But please don't expect too much
details yet, as there is still some time left and we need to keep you curious!
Thus, in-depth explanations are left for the following development diaries.
DD2: World Map
It is Monday, and as promised, we are going to reveal a little more about Darkest Hour.
But let us start with a few words from Eric 'Eginhard' who defined most of the concepts of the main
map (used in the grand campaigns).

The Holy Rule

The basic problem with game design is to find the best compromise between simplicity and
realism. Knowing the community’s (and our own) fondness for historical realism, and at the same
time the needs of the Europa engine to provide an enjoyable game, we had to resolve the same
dilemma with the map.

The first issue that we dealt with was to establish specifications that would make sure that our map
would not completely break the game balance, especially regarding artificial intelligence
capabilities. After many discussions during the preliminary phases of map development, three major
specifications were established.
First, in order to keep consistent with the massive improvements made by Martin with game speed,
it was agreed to keep the overall number of provinces below 3,000. It was soon discovered that only
the actual number of province IDs used had influence on game performance, which allowed us to
put the province number limit to 10,000 (or even higher for future modders’ use) as well as to
suppress all other limits regarding map modding.
Second, given that military artificial intelligence may have trouble with handling fronts with too
many connections (that is, when attackers could come from too much sides), it was decided that no
province would have more than six connections with its neighboring provinces. Each time
where a province had borders with seven or more other provinces, we suppressed extra connections,
either on geographical grounds (major obstacles such as mountains, escarpments, lakes…) or by
redrawing it slightly to make the absence of connection “visually acceptable”. After some jokes
among the team, this rule became known in our team as the Holy Rule. Nevertheless, this rule
admits arbitrary exceptions for gameplay reasons. For instance to ensure fluidity in the Belgian
front, Lille has seven connections instead of six.

The Holy Rule can be summed up in two articles:


1. A province shall not have more than six connections with other provinces;
2. If it proves impossible to comply with article 1 without breaking all you have done
previously, skip article 1.

Third, we were asked to put emphasis on 1914-1945 era. This means that whenever eras borders
would conflict, borders from the world wars era would prevail. It also means that some areas would
have more attention than others, so you’ll find far more provinces in North Africa than in Sub-
Saharan areas. This point has never been fully consensual in our team and has evolved along the
overall concept of the game, but combined with the other two specifications it gives the map its
current look. Map design is now frozen until release (to ensure a proper game balance and the
implementation of other features), but this doesn’t mean that it won't change in the future.

All combined, these three major specifications brought us on the verge of insanity more than once,
especially when you compare them with our methodology and our desire to achieve the best
possible map in terms of geography, history and realism. At one point, I even felt schizophrenic, but
now, we do feel better.

So what's new?
Now let us have a look at the things you can see.

Our map originally started as the E3 map, as many of you already realized from the screen-shots.
But as beautiful as the E3 map was, it soon became clear that it had severe weaknesses and that was
not exactly what we had in mind for our own game.
The biggest was that it was of course limited to 2607 provinces, which were just not enough.
Another one was that it took no account of what became the so-called "Holy rule" of map design.
Others were not real weaknesses but different design choices.
• Optical changes
We decided to switch back to English names for all provinces in order to keep things as user-
friendly as possible for the majority of players.
We switched to a new font, Calluna, that is a lot clearer and better to read on higher zoom levels.
We also switched back to a dotted border concept which really brightened up the whole map.
• General concepts
We obviously kept the general guidelines of E3 to try to get as close as possible to historical borders
when setting up provinces.
We removed mini-provinces that were too small to host counters, unless they were of key
importance during the World Wars.
• Optical gimmicks
Every province can now have its own illustration. We can add unique capital icons for each
province. We also no longer use the HOI2 beaches icons, as they didn't really fit on a map that uses
realistic coastlines and we instead included a new small icon.
• Things you don't see at first glance
The terrain types and resource distribution is based on historical data and is a big change
compared to HOI2. You will be pretty surprised and curse a lot at first when your old strategies lead
you in a swamp or forest that wasn't there before.
Of course, the climate zones are as close to the real climate zones as we could get as well.
We also tried to adapt the design of the map to pay tribute to little details like the Trans-siberian
Railroad or the Burma Road.
• The things you don't see at all
Let us start first with the obvious, all limits are gone.
There is no limits on province number. Well, to be really honest the current limit is set to 10000,
but if you can come up with a map featuring more then 10000 provinces, I will get you a patch with
a higher limit the next day.
There are no limits on connections.
• Gimmicks for modders
Everybody knows we love modders. Thus we have added extensive map related debug logs with
warnings for misplaced map icons (grouped by icon), possible wrong climate zones, missing sea
province definition in the province.csv file and suggestions for which sea province would be the
best choices. There are also warnings for wrong or not ideal sea province definition in the
province.csv and suggestions which sea province would be the best choices, as well as logs about
resource/IC distribution by province or for whole countries.
Modders will also find analysis of connections per province in different variations (depending on
what you are doing, you might prefer one presentation or the other, this is mostly interesting in
regard of the Holy Rule that we introduced above).
And finally, analysis of distance between provinces are also available (I will explain in the next
paragraph what this is about).
• A new heart
Here is the first of the really big new features to be revealed, and I am pretty excited about it.
HOI2 distance calculation was based on pixel coordinates defined in the province.csv file (the
amount of pixels between one airbase coordinate and another to be exact).

The whole thing started like this.


One of the biggest problem with HOI2 maps was the size of the oceans.
It was a bit of a compromise, according to the range calculator for the game, the world was 10,000
km in circumference. While that might be fine per se, it created other (and worse) problems
considering that large amounts of the Pacific have been shrunk.
It could therefore never be possible to really fix the naval combat system unless we had more
reasonable ocean cartography. If the map had to be expanded, how about doing something to
increase the relative size of the oceans, so that the Mediterranean is not half the size of the Atlantic?

What have we done about this?

In Darkest Hour, we replaced the old HOI2 system with a new distance calculation which is
based on real geographic coordinates (the old engine can of course still be activated in the
misc.txt file, as most new features, it is optional to use the new calculation).

Most of you are now asking: "Why should I care? What is so exciting about that?"

Well let us think about it.


You can now see real distances between one province and another, the distance between Berlin
and Moscow is as far in the game as it is in reality.
While this is cool in itself, it becomes even cooler when it comes to sea provinces. With HOI2, all
you got was wrong distances based on the way the map was morphed to display a 3D earth on a 2D
map.
When you used to have, for instance, a giant Mediterranean sea, and a tiny Pacific ocean compared
to reality, the game now features real distances.

The whole thing gets especially important when it comes to battle-scenarios, which use new and
more detailed maps (that we will show you later ).
As in HOI2, all distances were based on pixel coordinates you ended up with provinces that were
hundreds of kilometers far away in-game, although they were maybe 20kms away from each other,
only because you had increased the scale of the map.
Even with massive workarounds and modified units speeds you couldn't get it completely right.

Still not excited?

Alright, what does it mean for the casual player who doesn't care about realistic distances? And why
should you as a map modder go through the hassle of creating coordinate tables?

The simple answer is performance.

The following table shows the time that it takes with Darkest Hour compared to Hearts of Iron II
to perform distance calculation (more than one calculation taken into account to get a nice
average) :
HOI2 DH
188 94
187 109
203 109
203 94
219 94
218 94
218 109
203 110
203 110
1842 923 Total
205 103 Average

That is a 45-50% reduction in calculation time for each distance check. The artificial
intelligence does multiple of those for each division every tick to decide about unit movements, and
even more for air units.
Of course a lot more things influence game performance, but this one is a good chunk and led to a
noticeable performance boost.

The best thing about this improvement is that it actually has a higher impact when the game
progresses as the amount of units increases and war breaks out. The more distance calculations the
engine does, the higher the performance gain compared to vanilla.
Same goes for maps that have more provinces.

We do regular tests to check performance, the old Doomsday (fictional WW3) scenario shows the
impact pretty well.
We compared the average cycle time of different game versions between 1936 (the world at peace)
and the Doomsday scenario with fighting all over the place.

Switching to the new distance calculations increased game speed by up to 10-15% in scenarios with
heavy fighting compared to the same Darkest Hour version that used the old calculation model.

Game 1936 DD 1936/DD %


Arm 1.2 25' 72' 34.7 %
Arm 1.3b 25' 59' 42.4 %
DH 0.32 24' 38' 63.2 %
DH 0.36 24' 36' 66.7%
DH current 24' 30-32' 80-75% (in 3 tests) This with the new
distance calculation

In Armageddon 1.2, game speed in DD scenario was ~1/3 of the speed in 1936.
In Armageddon 1.3b it is increased by ~8 points to 42%.
In our current DH version, it is at 75-80%, or only 20-25% slower then in 1936

We of course included the necessary coordinate tables for our own map, and the old HOI2 map, so
that all mods that are based on HOI2 can benefit from the new system.
I will not say that it is not intensive work to set up those coordinate tables, because it is! But it is
definitely worth it to do so for your own mod maps, and once you get in a rhythm, it is not that bad.
We will support mods conversions from HOI2 to DH anyway.

You can get the coordinates straight out of Google Earth, and with the right settings and tools to
copy the coordinates, it gets pretty fast (at least compared to the time involved to actually draw a
new map).

Björn 'Nathan' Winkler,

Darkest Hour Developer


- Map Implementation
DD3: Spying System
‘Introduction: Some history’

Spying in DD/Arma 1.2 had many bugs: missions that do not work for the AI - including counter-
intelligence, broken AI mission selection code, and incorrect messages to name just few. Once we
fixed all known bugs in the code and ran some tests using advanced logging (logger is part of DH)
we found that in a game AI countries do tens of thousands send and kill spy missions outperforming
any player because of the micromanagement involved in the spying and very few real missions
(about 10%). It was clear for us that the old system needed to be changed and after some
brainstorming and few tries Martin and Chris came up with the spy system used in Arma 1.3.

Its main features are:


- Fixed spying AI - it can do any mission
- Send/kill spies missions removed and replaced with Spy network levels (0..20)
- increased game speed
- all modifiers exported to spy_cost.txt and AI files
- there are more here that are out of my mind after 2 years

These changes while to drastic for a patch and not welcomed by all modders at the time paved the
road to the auto-spying system we implemented in DH.

Changes:
- merged AI and player auto-spying code
- cleared spy_cost.txt file and moved old and new spying modifiers to a new section in misc.txt

‘All warfare if based on deception’

That quote from Sun Tzu enlightens the prominent role played by intelligence operations in
times of war. But while popular myths have been created around a few people like Mata Hari or
Joseph Sorge, intelligence and counter-intelligence operations have truly been of a great importance
in the events of two World Wars witnessed by the XXth century. Darkest Hour therefore intends to
put a certain emphasis on this matter.

Darkest Hour spying system addresses two main issues which are the realism of the intelligence
operations and their planning in the long-run as a Head of State.
The first thing that you need to know is that there two modes: manual and semi-automatic
intelligence. While the manual mode has many similarities with Hearts of Iron II spying system, the
semi-automatic is much more interesting. There you can allocate a certain part of the national
income to intelligence operations. There are also others factors that you can play with such as spy
activity or the minimum level of infiltration required prior to any foreign operation.

Furthermore, as the Head of your State, you can assign generic or specific priorities to your
intelligence services. Playing the United Kingdom, you might for instance be willing to grab more
informations about Nazi Germany. Specific country priorities can therefore be set in that regard.

But there are also missions specific priorities which allow you tell your intelligence services what
specific mission to perform (either globally or in a certain country). You will for instance be able to
perform only industry sabotage in one country or couple it with industrial espionage, provided that
you need two times more sabotage missions.

That way, you have a relative control over the operations led by your intelligence agency. You are
also encouraged to plan your spying strategy in the long run and check the reports on a regular
basis when you used to be overwhelmed with micro management in Hearts of Iron II (where you
had to send every spy and perform every operation manually). Hence Darkest Hour spying system
is not a clicks contest but instead, a panel that lets you plan your policy in the long run.
This was also a matter of realism because as a Head of State, you obviously have a certain level of
involvement, which sending all spies one by one should be excluded from.

Automation:
- Can be enabled or disabled
- Even when enable players still can do any mission to any country manually if they want
- auto-increase of spy levels to manually set Max level (0..20)
- set spy money threshold (use money above XXX)
- Min. spy level threshold before try to do any foreign missions (0..20)
- Spy activity
- Min chances for every spy mission - do no try a mission if chances are less
- Can add/remove countries from spying list
- Can set country priority for each country in the list
- Can set missions priority for each country in the list
- Can apply same priorities to all countries at once
- Can clear countries list at once

Spy reports, added:


- Transports/Escorts
- Resources
- Submarines, TPs

Moddability

We are also looking forward to making Darkest Hour as mod friendly as possible.
Thus, many parameters will be subject to changes in mods, such as:

AI priorities
###################################
# Spying
###################################
spyprefs =
{
percentage_on_spies = 0.2
percentage_foreign_mission = 0.6

# Used for Intell efficiency and for setting minimum chance to succeed
for the AI to do that particular type of mission
spyprefsdata =
{
NumberOfSpies = 10
min_number_of_spies = 3
steal_blueprint = 10
minister_assassination = 5
smear_campaign = 10
coup = 3
sabotage_industry = 10
nuclear_sabotage = 5
found_partisans = 10
massmedia = 10
disrupt_techteam = 10
country = CHC
}
spyprefsdata = {
country_priorities = 4
steal_blueprint = 10
minister_assassination = 1
smear_campaign = 3
coup = 0
sabotage_industry = 5
nuclear_sabotage = 0
found_partisans = 2
massmedia = 1
disrupt_techteam = 5
country = CHI
}
spyprefsdata = {
country_priorities = 6
steal_blueprint = 10
minister_assassination = 1
smear_campaign = 3
coup = 0
sabotage_industry = 5
nuclear_sabotage = 0
found_partisans = 2
massmedia = 1
disrupt_techteam = 5
country = JAP
}
}

General parameters
intelligence = {
# Days between spy missions in a country. Do not use fractions
20 #8
# Days between increase intelligence levels. Do not use fractions
180
# Chance to detect the initiator of a spy mission; Values = [0 - 100]; 0 =
never detected, Do not use fractions
20 #50
# Relationships hit for detected missions
5 #10
# Distance modifier: -1000 = No distance modifier; else: Higher value =
Distance has smaller effect = Higher Chances
20
# Distance modifier for neighbours; Values = [0.0 - 1.0]; 0.0 = No neighbour
distance bonus.
0.25
# Spy lvl bonus on Distance modifier: 0 = No bonus from Spy lvl's; else:
Higher value = Higher bonus from spy lvl = Higher Chances.
2
# Distance modifier for Spy lvl's above 10: 0 = all levels use same distance
bonus; else: X = bonus for levels 11-20th
30
# Spy information accuracy modifier. Values = [-10 - 10]; 10 = Full info
0
# IC modifier on Cost; 0: Cost = base cost; 1: cost = base cost * base IC in
target; 2 or more: cost = base cost * ( 1 + base IC in target / this )
1
# Min IC on cost modifier; If base IC in target < this use this, else use
base IC
30
# Max IC on cost modifier; If base IC in target > this use this, else use
base IC
80
# Extra Basic Daily maintenance cost for Spy lvl's above 10th; 0 = no extra
cost; X = extra cost for levels 11-20th
0.5
# Basic Cost for Increasing Spy lvl's above 10th; 0 = Normal Basic cost;
else: Basic cost for each lvl = X
500
# Show 3rd country spy reports: 0 = no reports; 1 = only detected; 2 =
detected + all successful; 3 = all reports
1
# percentage_on_spies to money modifier
100.0
}

And mission basic costs and chances


intelligence = {

# _HOID_SPY_STEAL_TECH_,
0.8
# _HOID_SPY_MINISTER_ASSASSINATION_,
2.0
# _HOID_SPY_SMEAR_CAMPAIGN_,
1.6
# _HOID_SPY_COUP_,
12.0
# _HOID_SPY_SABOTAGE_INDUSTRY_,
0.8
# _HOID_SPY_NUCLEAR_SABOTAGE_,
2.0
# _HOID_SPY_FOUND_PARTISANS_,
0.8
# _HOID_SPY_MASSMEDIA_,
1.2
# _HOID_SPY_DISRUPT_TECHTEAM_,
0.8
# -Base Cost for Increasing Spy lvl.
0.5
# -Base Cost for decreasing Spy lvl.
0
# -Base Daily maintenance cost per Spy lvl for 1-10th lvl. 11-20th levels
may cost more.
0.001

# _HOID_SPY_STEAL_TECH_CHANCE,
35
# _HOID_SPY_MINISTER_ASSASSINATION_CHANCE,
10
# _HOID_SPY_SMEAR_CAMPAIGN_CHANCE,
35
# _HOID_SPY_COUP_CHANCE,
2
# _HOID_SPY_SABOTAGE_INDUSTRY_CHANCE,
35
# _HOID_SPY_NUCLEAR_SABOTAGE_CHANCE,
8
# _HOID_SPY_FOUND_PARTISANS_CHANCE,
50
# _HOID_SPY_MASSMEDIA_CHANCE,
40
# _HOID_SPY_DISRUPT_TECHTEAM_CHANCE,
30
# NOT USED
100
# NOT USED
100
# -Dissent modifier on base coup chance: 0 = No dissent modifier; else:
Higher value = Higher dissent needed in target country.
5
}
DD4: Implementing Modifications
Playermade Modifications

Hello again,
It is monday noon, and that means it is time for another Development Diary.
As you should have already seen in the last weeks, one of our main goals was to keep it extremly
easy to use your favorite HOI 2 mod with Darkest Hour.

And this week I gonna talk about how this actually gonna work for you, be it as a Modder for one of
the Big Projects, someone who would like to play an old mod that is nolonger developed, or just as
someone who likes to modify his own game a bit.

The first thing you gonna start to love is that Darkest Hour finally offers full MODDIR support,
you no longer need jsgme or individual installations for each mod you use.

You only need one Darkest Hour installation!


Copy the mod you fancy in a subfolder the Mod folder.
Pick the mod you like to play the next time you start the game with the launcher.

This works of course only when the mod is adapted to Darkest Hour, some bugfixes and new
features were not possible without modification that affect basic files, there are few things that need
to be changed for a mod to start properly. Don't worry It's not much, and you don't even need real
modding experience to do it yourself.

Depending on mod's complexity this could take from 1-2 minutes (Confederate Armageddon) to
about 15 minutes (CORE as this mod already use moddir and some paths in its DB files have to be
edited and many dummy pictures to be skipped).

In one of our latest version we included a Darkest Hour Mods Pack (located in the Modding
documentation folder of your installation ) that can be used for easy Armageddon 1.3 to DH mod
conversion.
It contains the following files:
\config\Buttons.txt
\config\mods.csv
\db\difficulty.csv
\db\diplo_costs.txt
\db\leaders.txt
\db\ministers.txt
\db\misc.txt
\db\spy_costs.txt
\db\teams.txt
\gfx\interface\ill_prov_overlay.bmp
\gfx\interface\map_circle.bmp
\gfx\interface\plate_division.bmp
\gfx\interface\tc_icons.bmp

These are the files that need to be in the new DH format in order for the game to work and are the
only files that modders should worry about when porting their mods to DH.
• \config\Buttons.txt - new button definition *we changed certain interface elements for new
features, and of course those need new buttons*
• \config\mods.csv - the file where all modders should put mod specific texts to ensure
compatibility with further game patches. This file will never be modified by any patch.
• \db\difficulty.csv - new difficulty settings *some of our new features are influenced by the
difficult settings and got their own entry here*
• \db\diplo_costs.txt - only one change here from 1.3: removed "-" sign from all costs
• \db\spy_costs.txt - some changes from 1.3 as most spy system modifiers are moved to
misc.txt now. Only cost and chances are left here.
• \db\misc.txt - tons of new modifiers here, but all are set to Armageddon 1.3 defaults, so you
have only to edit those values you changed for your mod for 1.3
• \db\teams.txt - list of all tech team files that should be loaded by the game. These files could
be either in MODDIR or in main game folder. By default it is populated with all 1.3 file
names so you just need to add your new file names and (optionally) remove those you don't
see need to be loaded by your mod
• \db\leaders.txt - list of all leader files that should be loaded by the game. These files could be
either in MODDIR or in main game folder. By default it is populated with all 1.3 file names
so you just need to add your new file names and (optionally) remove those you don't see
need to be loaded by your mod
• \db\ministers.txt - list of all minister files that should be loaded by the game. These files
could be either in MODDIR or in main game folder. By default it is populated with all 1.3
file names so you just need to add your new file names and (optionally) remove those you
don't see need to be loaded by your mod
• \gfx\interface\ill_prov_overlay.bmp - changed file.
• \gfx\interface\map_circle.bmp - changed file.
• \gfx\interface\plate_division.bmp - changed file.
• \gfx\interface\tc_icons.bm - changed file.
Notes:
1. This pack is supposed to be Merged with the mod.
2. Only files that were actually changed by the mod, which are included in this pack should actually
be updated/replaced by files from the pack. The rest (except 3 - see next) can be skipped as they are
identical to DH Core files already installed in the game's main folders.
3. The only files that must be included into mod's folder are \db\ministers.txt, \db\leaders.txt
and \db\teams.txt

Usual 1.3 Mod porting steps:

1. Create a new folder for your mod in Mods folder


2. Extract all mod files into that folder preserving original game folders tree
3. Using a program like WinMerge compare mod's folder with Darkest Hour Mods Pack folder and
update files as required:

- Copy db\ministers.txt, \db\leaders.txt and \db\teams.txt and add any mod specific file names there
- Copy and update \config\Buttons.txt, \db\difficulty.csv, \db\diplo_costs.txt, \db\misc.txt,
\db\spy_costs.txt ONLY if these are changed by your mod from vanilla 1.3 values.
- Copy \gfx\interface\ill_prov_overlay.bmp, \gfx\interface\map_circle.bmp,
\gfx\interface\plate_division.bmp and \gfx\interface\tc_icons.bm ) ONLY if these are changed by
your mod.
4. Create an empty "save games" folder in your mod's scenarios folder.
5. Select your mod from DH game Launcher
6. Play

It really is that straight forward and easy to convert a mod to Darkest Hour, we are testing it often
enough to be sure.

Some feedback on the topic from AC of the Kaiserreich team:


Well, as I said the conversion was very simple, basically because the Kaiserreich Team never
messed with misc.txt and other configuration files (as far as I know). So, conversion is actually not
the best word to describe this, as the process didn't involve much more then copying the files to the
Mod folder.
The real conversion of the Kaiserreich for DH will use the new map and all the new features offered
by DH. This is a simple "adaptation" of the KR mod from Armageddon to Darkest Hour.

However, as soon as a new game starts, it is possible to see how the Mod benefitted from this
adaptation. At the start of the game, a reminder tells me that I can move my political slider: very
useful to avoid missing this opportunity at the beginning of each year!
After unpausing the game, the performance increase is immediately noticeable and the game flows
quickly without problems or CTDs. In my opinion, this is the biggest benefit for a casual player, but
there is much more: the automated spying system, ... * peep* *peep* *peep* ..., the many useful
tooltips (for example in the research tab), the colorscale of the unit and the pictures close to the
units name, the * peep* for the air and naval missions and other smaller, simpler, but nonetheless
useful things.

If you want, you can add that I've been using Kaiserreich over DH since May and I've developed
current version 1.2 of the KR Arma Mod using DH! This was very useful especially because thanks
to the debug log we could fix many (40 maybe) wrong minister traits, some problems with leaders,
mistakes in the Tech Teams (missing components) and a bunch of other. So, from a certain point of
view, you could say that the current version of Kaiserreich Mod for Armageddon already benefitted
from DH.

I've written about many things still undisclosed, feel free to change my words as you like.
I did. *g* White & Sea as always guys.

But you can Sea even when using DH without most of its new features there are quite a lot of
improvements to talk about, even if we won't talk about them yet.

Here's a list of mods that already officially announced porting to DH:


• Confederate Armageddon
• Fallout's Doomsday Mod
• Kaiserreich
• New World Order
• Whites & Reds
• And let's not forget that the Iron Cross expansion for HOI2Arma and AoD will be available
for DH too!
DD5: Claims
Hello again, it is Monday and that means it is time for another Dev Diary. Well actually we have
more for you today. As things were a bit hectic over the weekend i didn't have time to write the
Diary as long as i would have liked to we will give you a small one first. And finish up later in
about 3 or 4 hours with another one.

Claims

We're here today to talk about one of the new concepts introduced by Darkest Hour: Claims!
What are claims? And what is the difference between claims and cores? Here are the answers to
these questions!

Claims are basically used for diplomatic purposes and are useful to assert the desire of a country to
own and control a province. There are no economic benefits of claiming provinces: they are
counted as non-national when it comes to IC/MP/Resources or revolt risk and there will be no way
to transform those claims into cores. However, claimed provinces are counted as national when it
comes to diplomacy or country release. That means that a claimed province appears in the "Have
claims against..." section and can be asked with the "Demand Territory" mission in the Diplomatic
tab. The AI won't secede provinces it has claims on to allies/puppets even if those provinces are
cores to that ally. In most cases claims will be used by players just to "redraw" the map in the way
they wanted it to be after a successful war, especially in case of partition. Think about the
partitioning of Greece for example: Italy, Germany and Bulgaria can claim different provinces and
they won't secede them to their allies (even if those allies have cores on them).

So, how does claiming provinces work? Via the right-click menu it is possible to add and remove
claims to single provinces, areas or regions. Claiming non-owned province increases belligerence
and removing claims from such provinces decreases it (both values are set in misc.txt). Claimed
provinces can be seen best on the Diplomacy map mode - they use lighter green than cores and also
a black dot as opposed to the red one used for cores.

However, there are some limitations to avoid exploiting this new mechanism: it is not always
possible to claim provinces of another country. New claims can be freely set to war enemies, but
can be set to neutral countries only if policy allows that (interventionism must be high enough).
Moreover claims cannot be demanded from countries that you are guaranteeing at the same time:
for example Germany cannot ask for provinces from Poland if it is guaranteeing its independence!

Another new useful feature is that peace negotiations now take into account cores and claims:
- Insist on Demands automatically adds all claims and cores the initiating country has to the
demanded provinces list;
- Beg for Peace automatically adds all claims and cores the receiving country has to the
demanded provinces list;

Automatic Release of Nations

Another very interesting new feature introduced by Darkest Hour is the Automatic Release of
Nations. First of all, claims are taken into account when a new nation is released and are considered
like extra provinces. Moreover, Darkest Hour reviewed the automatic release of countries done by
the AI, which suffered many limitations: the AI could release a country in its release = { } list only
if it was a democracy, it was at peace and there were no more Axis powers. These limitations were
removed and now even Germany or the Soviet Union can release countries during the war.
Moreover, if it no more necessary to control all the provinces in the minimum list in revolt.txt:
minimum, extra and claimed provinces are all taken into account and if enough of them are already
under the control of the AI nation, it will release that country.

Yeah, but what does that mean in terms of gameplay? Well, we know that after the end of WWII the
Allies released West Germany and South Korea whereas the Comintern released East Germany and
North Korea. But what if things went differently? What could have happened if the Allies had
recovered part of Poland? Couldn't this situation lead to a Democratic Poland and a Communist
Poland? Or had the Soviet Union conquered all of Germany and half of Netherlands, wouldn't they
have created a East Netherlands opposed to the West Netherlands freed by the Allies? Or maybe
even a North Communist Italy opposed to a South Democratic Italy!

With these new mechanism (and with new "communist" countries implemented of course) it is
possible to recreate a dynamic situation after the Victory in Europe. No more bundled by fixed
events, the AI will be able to release nations as soon as possible and the outcome of the war will be
different every time. The Rush for Berlin will be even faster now and with greater consequences!

So, to conclude this Dev Dairy, here are the changes to the code regarding claims:
- manual claims can be enabled or disabled from misc.txt (diplomacy section :
Allow manual claims change in-game for players: 1 - Enabled, 0 –
Disabled );
- there is a new provinces list named "claimedprovinces" available for
countries which can be set in scenario (INC) files and in revolt.txt
(claims = { } list);
- there are new event commands to add or remove claims: type = addclaim which
= [prov id] / type = removeclaim which = [prov id];
- there is a trigger to check for claims: claims = { province = a [data = tag
] } # check if that province is claimed by TAG (or country in question if
not specified);
- it is possible to set in misc.txt the increase and decrease of belligerence
for adding and removing claims (does not apply for owned by enemies or
claimed province via event command);
- there is a new policy modifier in policy_effects.csv that regulates
claiming new provinces of neutral countries;

And here are the changes to the code regarding the release of nations:
New misc.txt parameters (“ai” section):
* Use new AI release rules – all countries can release puppets even when at
war. 1 – Yes, 0 – No
* Masters become master of new puppet’s puppets too. 1 – Yes, 0 –No
New parameters for country creation (revol.txt):
* claims = { PROV_ID …} – populates claimedprovinces list
* min = X - allows release if at least X provinces of minimum list are
controlled by releaser country. By default (no min_prov entry or min_prov =
-1) it is equal to provinces in minimum list.
* min_extra = X - allows release if at least X provinces of extra list are
controlled by releaser country. By default (no min_ extra entry) it is 0.
* value = X.X (0.0 – 1.25) – used by the old release model (when no min or
min_extra are defined). When “score” is above that value the country will
be available for release. By default (no value) it is 0.51.
DD6: It's your decision
Hello again, this time it's actually me.
We promised you a big one today, and here it is even when it is a bit late.

Military theorist Carl von Clausewitz wrote:


“Politics is the womb into which war develops”.
State policies and ideologies indeed play a central role in the process, of going to war and how to
wage it.
Isn’t the Second World War often called a « war of ideologies »?

On the other hand, international relations and diplomacies never ceased to get more complex during
the XIXth and XXth centuries.
We always felt that the impression to lead, not only the armed forces, but a whole nation, was
missing in Hearts of Iron games.
We were therefore looking forward to making players actually feel they embodied a Head of State.
This is one of the major philosophical design choices that has defined Darkest Hour development.

We believe it will provide an unprecedented experience for those who will get the chance to play
our game.

Being a Head of State first starts with taking policy decisions.

In Darkest Hour, you will have the opportunity to dictate a decisive policy change every two years
that will have in influence in the years to come, beginning with the ministers that you will appoint.
We have also implemented an auto-reminder notification system that can be turned on/off that lets
you know when such change is possible.

We all know characters that had a considerable influence for the history of their country.

Prime Minister Winston Churchill was often described by British war propaganda as a bulldog
ready for duty and fight. Such figure is alleged to have inspired courage to the British people.
Darkest Hour reproduces this through a unique minister’s personalities system that is entirely
modifiable by users.
Most prominent State figures have already their own personality that in turn affects their
country, but there is nothing stopping you from creating indivdual personalities for each minister in
the world.
But being a Head of State is also a matter of decisive and even sometimes impulsive policy
decisions.

There are two other ways to influence the course of history from a diplomatic perspective in
Darkest Hour. Historical events are one of them.
We have entirely rewritten the events using our new syntax which opened up much more
possibilities for ourselves and modders.
There will now be tons of new diplomatic events simulating for instance the United States foreign
policy, from the decision to send destroyers to the British Navy to the passing and the enforcement
of the Lend-Lease Act.

There will also be situations when you will be able to take immediate decisions when certain
conditions are met.
We have indeed implemented a unique “Policy decisions” concept in Darkest Hour that allows
players to take a specific decision when they think the time is right (provided that they match all
requirements).
As an example, when playing the 1936 Grand campaign as Germany, a “Reoccupation of
Rhineland” decision will be available with specific requirements to be activated. As soon as the
player activates the decision, a newspaper notification appears, offering him a little bit of historical
background.

Lastly, the course of events has been made more dynamic.

As players now actually have an influence on when and how certain events occur, they will
influence the timeline. As Germany, you can obviously lead your country to war as fast as
possible. But be aware that your army or your industrial base may be left unprepared for a long
conflict.
Of course the artificial intelligence will always try to surprise you and take decisions when you are
not ready for them. For example, playing as China, the Japanese Army will not always invade your
country at the same time and the same place so you can just wait for them and push them back when
they come.

We truly believe that as a Grand Strategy game, Darkest Hour needed an in-depth diplomatic
model.
While we are still polishing it and adding new parts with every build, especially to provide even
more user modifiability, this development diary should have given you another glimpse at the very
basics of our philosophy and we hope you will appreciate it.
DD7: Missions, Interface and Leader Traits

Here we are again for our usual Monday appointment. Today, we're gonna talk about Missions,
Interface and Leader Traits.

First of all, let's talk a bit about Missions: we have introduced a new interface for Air and Naval
Missions.
As you can see in the picture below, in the new Air Mission interface it is possible to select infinite
mission time and to choose between province, area and region (for most of the missions). It is really
a neat feature, as you will learn: you will be able to instruct your CAS to focus on a single province
and your Naval Bombers to Attack Convoys over a great sea region. Obviously, this is always
limited by the range of your aeroplanes: if you assign them to perform a mission over a whole
region, they will be able to do it only in the provinces of that region that they are effectively able to
reach.
In the Naval Mission Interface, you can see that for some missions (like Naval Interdiction and
Naval Combat Patrol) it will be possible to instruct the fleet to attack enemy convoys even if they
are not in an hunting mission. This adds a touch of realism: a fleet in a Naval Interdiction mission
that encounters an enemy convoy would surely fire a couple of rounds at them instead of waving
their hands and passing by.

Moreover, settings for every mission are saved and restored when ordering the same mission again
during the current game session (on game start are reset to mission defaults).

But this is just the beginning! We've introduced four new missions:
- Planned Defense (for land units): units with Planned Defense missions will automatically retreat
to the pre-selected adjacent province when under enemy attack and their remaining Str/Org is below
the given threshold;
- Air Scramble (for air units): Air Scramble missions are given to interceptor and fighter units; they
will scramble to protect adjacent provinces from enemy planes;
- Sneak Move (for naval units): Ships on a Sneak Move mission move to the target trying to avoid
being detected. Because sneaking forces fleets to use longer routes, it takes more time to reach the
target, but also reduces the chance to be detected by the enemy;
- Naval Scramble (for naval units): Naval Scramble missions assigns your fleets to stay in home
port and engage any enemy ships detected in adjacent sea provinces;
The new Naval Scramble mission gets really interesting when you take a look at the new map, you
will notice that we added a line of coastal seaprovinces. In combination with the new distance
model we introduced (see DD2 for more details) this means you can have a very nasty surprise
when you move too close to hostile harbors. On the other hand, this is an effective tool to defend
against amphibious landings.

Obviously the new interface is optional and can be enabled or disabled from misc.txt. Moreover,
all the modifier for mission (new and old alike) are now exported to misc.txt and be tweaked as you
please! As always, we've struggled and succeeded not only in improving the game, but also in
making it as moddable as possible, so that you can have full control and modify it as it pleases you.
We're looking forward to seeing the new mods that the community will create for Darkest Hour!
Don't disappoint us!

Another useful addition is the Leader Traits filter:

As you can see in the picture above, it is possible to filter the leaders by trait and by rank (the
four checkboxes next to "Available Replacements"). No more wasted time looking for a specific
leader, you can find a Field Marshal with Panzer Leader traits with only two clicks!
Please note also that latest filter settings used for each branch (army/air/navy) are saved and
restored in the current game session too.

To close this Development Diary, here are the mission modifiers from misc.txt!

# Convoy interception by naval units on Interdiction, Combat Patrol, Shore


Bomb. and ASW missions: 0 disabled for all, 1 - optional for players
only (disabled by default), 2 - optional for players (enabled by
default) and enabled for AI
2 #0
# Auto-return transport fleets to base on Amphibious assault and Sea
transport missions (players only): 0 - enabled, 1 - enabled by
default, optional, 2 - disabled by default, optional
1 #0
# Allow single province and region targeting for air and naval units
(players only): 0 - disabled, 1 - enabled
1 #0

mission = {
# _MISSION_ATTACK_
1 # 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
1.0 # Speed bonus: (Move time * This / mission_efficiency). Lower the
better
# _MISSION_REBASE_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
1.0 # Chance to be detected (Chance * This / mission_efficiency).
Lower the better. Naval only!
# _MISSION_STRAT_REDEPLOY_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# Land Missions
# _MISSION_SUPPORT_ATTACK_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
1.0 # Speed bonus: (Move time * This / mission_efficiency). Lower the
better
# _MISSION_SUPPORT_DEFENSE_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.5 # Speed bonus: (Move time * This / mission_efficiency). Lower the
better
# _MISSION_RESERVES_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.5 # Speed bonus: (Move time * This / mission_efficiency). Lower the
better
# _MISSION_ANTI_PARTISAN_DUTY_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
2.0 # Multiplier on suppresion (This * mission_efficiency)
# _MISSION_PLANNED_DEFENSE_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
# Air Missions
# _MISSION_AIR_SUPERIORITY_
1# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.0 # Modifier on detection ( This * mission_efficiency ). Higher it
is, more often incoming enemy planes will be detected
2.0 # Min. Air attack for at least one plane in the wing required for
this mission to be available
# _MISSION_GROUND_ATTACK_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.0 # Air vs. Land - Org dmg - Increasing this will increase ORG dmg
land units takes from Air unit on this mission
1.0 # Air vs. Land - Str dmg - Increasing this will increase STR dmg
land units takes from Air unit on this mission
# _MISSION_INTERDICTION_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
1.0 # Air vs. Land - Org dmg - Increasing this will increase ORG dmg
land units takes from Air unit on this mission
0.0 # Air vs. Land - Str dmg - Increasing this will increase STR dmg
land units takes from Air unit on this mission
# _MISSION_STRATEGIC_BOMBARDMENT_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_LOGISTICAL_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_RUNWAY_CRATERING_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_INSTALLATION_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_NAVAL_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_PORT_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_CONVOY_AIR_RAIDING_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_AIR_SUPPLY_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_AIRBORNE_ASSAULT_
0# 0 = disabled by default, 1 = enabled by default
0.25 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_NUKE_
0# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_AIR_SCRAMBLE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.0 # Modifier on detection ( This * mission_efficiency ). Higher it
is, more often incoming enemy planes will be detected
2.0 # Min. Air attack for at least one plane in the wing required for
this mission to be available
# Naval Missions
# _MISSION_CONVOY_RAIDING_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
2.0 # Fleet range modifier
1.0 # Chance to be detected (Chance * This / mission_efficiency).
Lower the better
# _MISSION_ASW_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_NAVAL_INTERDICTION_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_SHORE_BOMBARDMENT_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.002 # Combat Modifier: Shore Bombardment Multiplier (Applies to the
SB value of ships for org damage)
# _MISSION_AMPHIBOUS_ASSAULT_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_SEA_TRANSPORT_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
3.0 # Fleet range modifier
1.0 # Chance to be detected (Chance * This / mission_efficiency).
Lower the better
# _MISSION_NAVAL_COMBAT_PATROL_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_NAVAL_PORT_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_NAVAL_AIRBASE_STRIKE_
0# 0 = disabled by default, 1 = enabled by default
0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0
# _MISSION_SNEAK_MOVE_
1# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.75 # Fleet range modifier
0.75 # Chance to be detected (Chance * This / mission_efficiency).
Lower the better
# _MISSION_NAVAL_SCRAMBLE_
0# 0 = disabled by default, 1 = enabled by default
1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0
0.5 # Speed bonus: (Move time * This / mission_efficiency). Higher
the better
}
DD8: Improved Interface
How to wage a successful war? Well, the answer to this question is not easy, as so many different
factors can influence the outcome of a conflict. However, surely having a better control over the
units under your command won't do you any harm. This week, we're going to talk a bit about how
we improved the interface.

First of all, all units (land, air naval) can now be identified by their colour and their icon. We've
expanded the colour scheme and we added icons next to the unit name for a better identification at
first glance. Here's an example of the colour scheme for land units:
- a land unit composed exclusively by mobile divisions has a green colour;
- a land unit composed by a mix of mobile divisions and other divisions (like infantry) has a light
green colour;
- a land unit composed exclusively by special divisions (mountain, marines, paratroopers) has a blue
colour;
- a land unit composed by a mix of special divisions and other divisions (like infantry) has a light
blue colour;
- a land unit with at least one garrison division has a light pink colour;
- an air squadron composed exclusively by interceptors has a light green colour;
- an air squadron composed exclusively by tactical bombers has a pink colour;
- an air squadron composed by a mix of interceptors and tactical bombers has a light pink colour;
- a fleet with at least one air carrier has a blue colour;
- a fleet composed exclusively of naval transports has a red colour;
... and so on and so forth. There are just examples, the complete colour scheme is more complex.
Initially you may think that it is a bit too complex, but you'll soon grew accustomed to it. And if you
don't like the colours or the dispositions we chose, you can always mod your own! Remember, this
is meant to help you have a better control over your armies!
Another, perhaps bigger, improvement in the interface is a small icon next to the name of the
unit. As you can see from the picture below, for land units we've added specific icons for the unit
type. Moreover, every unit with an HQ has a specific HQ icon and every unit with at least one
engineer brigade has a very small icon. For example, "West Coast Reserve" is a unit composed
exclusively by mobile divisions (icon + green colour), one of its division is an HQ (icon) and one of
its division has an engineering brigade (very small icon above the icon for mobile units).

Naval fleets are identified by their most important ships: air carries, others capital ships (please
notice the difference between BB and CA!), screens, submarines or transport. Moreover, a fleet with
at least one naval transport always has a small icon on top to represent it. The icons for air units are
simple and easy to understand, the icons are intuitive. Moreover, if a bomber unit is mixed with an
interceptor/fighter/escort unit, there will be two icons, to show that the bombers are escorted (the
top icon is set in this order: 1) at least one FTR -> FTR icon; 2) at least one INT -> INT icon; 3) at
least one escort brigade ->Escort icon). In the screenshot above there are three units with an escort
brigade attached.

Another useful tool to have a better control over your own units are tooltips. We've improved the
tooltips shown over the unit and the new icons (explained above), in order to quickly obtain the
information you need. Tooltips will show useful information, like the name of the leader,
organization and morale of the unit and model, organization and morale of the divisions that
compose the unit (similar information are displayed for air and naval units too). Moreover, for naval
units the capital ships / screens ratio is displayed, together with the number of carried divisions and
the total transport capacity. For transport planes, the number of carried divisions and the total
transport capacity are displayed. For land units, the tooltip of the HQ icon and the tiny engineering
icon will display useful information, as you can see below:

One more improvement in the interface will let you see with a quick glance which units belong to
your country and which are foreign units under your control, thanks to a small icon with a flag.
There is also a tiny difference between military control and expeditionary forces: Mongolian units
are under military control and the Mongolian flag has a black border whereas the unit from Tannu
Tuva is an expeditionary unit and the Tuvan flag has a gray border:
If there is not a country specific icon (like "icon_unit_MON.bmp") then a generic icon is displayed
("MC" for military control and "EF" for expeditionary forces).

A final word about nation specific model names and pictures on foreign units. In HOI2 Armageddon
there is a well known bug: when a player has military control (or have expeditionary forces) from
another country, those units use the model name and the picture as the same model for the player's
country. We've corrected this bug: the model name and the picture will now be those of their
original country!

To close this Development Diary, here is part of the code involved:

Added unique colors on units list for more unit types:


I. Land:
1. plate_unit_land_gar.bmp - the unit has at least one GAR division
2.1 plate_unit_land_mobile_hard.bmp - the unit contains only ARM, LArm, MECH
(+HQ) divisions
2.2 plate_unit_land_mobile_soft.bmp - the unit contains only MOT, CAV (+HQ)
divisions
2.3 plate_unit_land_mobile_mixed.bmp - the unit contains only mobile divisions
3. plate_unit_land_mixed.bmp - the unit contains mix of mobile and foot
divisions
4.1. plate_unit_land_mtn.bmp - the unit contains only MTN divisions (+HQs)
4.2. plate_unit_land_mar.bmp - the unit contains only MAR divisions (+HQs)
4.3. plate_unit_land_para.bmp - the unit contains only PARA divisions (+HQs)
4.4. plate_unit_land_commando.bmp - the unit contains only commando divisions
(+HQs)
5. plate_unit_land_commando_mixed.bmp - the unit contains commando divisions
mixed with other foot divisions (INF, MIL) (+HQ)
6. plate_unit_land_foot.bmp - the unit contains only regular foot units (MIL,
INF) (+HQ)

II. Air:
1. plate_unit_air_ftr.bmp - the wing contains only FTRs
2. plate_unit_air_int.bmp - the wing contains only INTs and FTRs
3. plate_unit_air_tac.bmp - the wing contains only TAC bombers
4. plate_unit_air_nav.bmp - the wing contains only NAV bombers
5. plate_unit_air_str.bmp - the wing contains only STR bombers
6. plate_unit_air_cas.bmp - the wing contains only CAS bombers
7. plate_unit_air_tra.bmp - the wing contains only TRA planes
8. plate_unit_air_rocket.bmp - the wing contains only rockets and fl. bombs
9. plate_unit_air_mixed.bmp - all mixes

III. Naval:
1.1.plate_unit_sea_ctf.bmp - fleet contains at least on CV
1.2. plate_unit_sea_ctf_tp.bmp - the fleet has at least one CV and at least one
TP
2.1. plate_unit_sea_sag.bmp - fleet contains at least on BB, BC, CA or CVL
2.2.plate_unit_sea_sag_tp.bmp - the fleet has at least one, capital and at least
one TP
3. plate_unit_sea_tra.bmp - fleet contains only TPs
4. plate_unit_sea_sub.bmp - fleet contains only submarines
5. plate_unit_sea_screen.bmp - fleet contains only screens
6. plate_unit_sea_mixed.bmp - for mixed screens/TP/submarines

Added unique icons on unit plates:


I. Land:
1.1. icon_unit_HQ_active.bmp – only HQ in the unit
1.2. icon_unit_HQ_inactive.bmp – only HQ in the unit (no or low rank leader)
2.1. icon_unit_land_tank.bmp – only ARM, LArm (and HQs)
2.2. icon_unit_land_combined_fast.bmp – only ARM, LArm, Mech, Mot, Cav (and HQs)
2.3. icon_unit_land_combined.bmp - ARM, LArm, Mech (and HQs) mixed with other
divisions types
3. icon_unit_land_par.bmp – at least one PARA
4. icon_unit_land_mar.bmp – at least one MAR
5. icon_unit_land_mtn.bmp – at least one MTN
6. icon_unit_land_mot.bmp – at least one MOT
7. icon_unit_land_cav.bmp – at least one CAV
8. icon_unit_land_inf.bmp – at least one INF
9. icon_unit_land_gar.bmp – at least one GAR
10. icon_unit_land_mil.bmp – at least one MIL
(11. icon_unit_none.bmp – no divisions (yet))

II. Air:
1. icon_unit_air_ftr.bmp – FTR only
2. icon_unit_air_int.bmp – INT or FTR + INT only
3. icon_unit_air_tac.bmp – TAC only
4. icon_unit_air_nav.bmp – NAV only
5. icon_unit_air_str.bmp – STR only
6. icon_unit_air_cas.bmp – CAS only
7. 1. icon_unit_air_tra_l.bmp – TRA only, at least one loaded with land units
7. 2. icon_unit_air_tra_e.bmp – TRA only, all empty
8.1. icon_unit_air_flying_rocket.bmp – at least one Flying rocket
8.2. icon_unit_air_flying_bomb.bmp – Flying bombs or Flying bombs +Flying rocket
For mixed bombers with other aircraft type the is choosing in this order: STR,
NAV, TAC, CAS, FTR, INT

III. Naval:
1. icon_unit_sea_cv.bmp – fleet has at least one CV
2.1. icon_unit_sea_bb.bmp – fleet has at least one BB
2.2. icon_unit_sea_bc.bmp – fleet has at least one BC
2.3. icon_unit_sea_ca.bmp – fleet has at least one CA
2.4. icon_unit_sea_cvl.bmp – fleet has at least one CVL
3.1. icon_unit_sea_tra_l.bmp – TPs only, at least one is loaded with troops
3.2. icon_unit_sea_tra_e.bmp – TPs only, all empty
4. icon_unit_sea_sub.bmp – SS/SSN only
5.1. icon_unit_sea_screen.bmp – at least one DD/CL in fleets with screens or
screens + TP + SS/SSN
(5.2. icon_unit_sea_sub.bmp – SS/SSN + TPs)

IV. Special:
1. icon_unit_none.bmp – transparent icon used on empty units

1) Added HQ icon to units in units list (icon_unit_HQ_active.bmp and


icon_unit_HQ_inactive.bmp)
2) Added engineer icon on unit plates when at least one division of the unit has
an engineer brigade (icon_unit_engineer.bmp and icon_unit_no_engineer.bmp)
3) Added extra Transport plane icon on unit plate for mixed air fleets that have
Transport planes (icon_unit_air_tra_e.bmp and icon_unit_air_tra_l.bmp)
4) Added extra Transport icon on unit plate for fleets that have TPs
(icon_unit_sea_tra_l.bmp and icon_unit_sea_tra_e.bmp)
5) Added extra Escort icon for air wings having at least one ESC brigade
attached (icon_unit_air_escort.bmp)
6) Added extra INT/FTR icon for air wings of mixed bombers and INT/FTR
(icon_unit_air_int.bmp and icon_unit_air_ftr.bmp)
7) Added extra FTR icon for mixed INT/FTR only air wings (icon_unit_air_ftr.bmp)
8) 'EF' and 'MC' text on foreign units):
* Changed to icons (icon_unit_EF.bmp, icon_unit_MC.bmp, icon_unit_own.bmp)
* Allowed country flags to be used instead icons (gfx\map\flags\icon_TAG.bmp)
* When Flags are used two more icons are available (as a second layer) to allow
easy recognition bet
DD9: Questions & Answers Session
Darkest Hour was officially announced by Paradox Interactive only two months ago. Yet many
questions arose from the community.
We already introduced to you some of the game's features in previous development diaries.
Therefore, we chose to dedicate this one to a session of questions and answers.
Let us start at first with general questions about the game philosophy.

Game philosophy

Did anyone asked about the philosophy behind the new combat mechanics?
Earlier you told us, that the combat mechanism will be changed/updated. How? At least
on the general aim level.

We kept in mind the idea that combat pace was too quick in Hearts of Iron II. We thence
developed several tools to modify it easily (so modders can play with it as well). We tweaked many
new misc parameters in such a way that land combats are now more realistic, e.g. slower and
deadlier. Terrain and climate modifiers have been tweaked as well to provide players with more
accurate results.

How are you approaching the issue of challenge? Are you going to do sth in order to
curtail WC? If yes, then what exactly?

The main idea behind the game was to put players in the same position as world leaders during the
darkest hours of XXth century. Therefore, you have to deal with dilemmas and, most of the time, no
solution will be completely satisfying.
Playing Germany, will you be looking to wage the war as soon as possible and take the risk to leave
your army or industrial base unprepared for a long conflict? As Japan, will you intend to invade new
lands and thus have access to new resources or will you try to prevent a clash with the United States
and the Western allies?
So generally speaking, you have to lead your nation dealing with constraints (more than in Hearts
of Iron II). On the other hand, we were obviously very careful in letting minors still fun to play.

This question is aimed at Fernando. A few years back you worked on a mod project for
WIF called 'T.H.E. Project' which was abandoned in the early stages.

Did DH, give you the opportunity to put in idea's/features that you couldn't do then into
practice?

DH obviously offered to me the opportunity to implement ideas and features that I had dreamed of
for years. I worked on this closely with Martin for two years now.
I for instance supported the implementation of a decision system for many months and finally
convinced Martin to introduce it. Then I took care of the soft coding part with Björn and I can say
that I am pretty proud of what we did in that regard. I believe this new feature brings a new
dimension to the Hearts of Iron saga.

... and have you been able to achieve what you wanted?
You always think you could do better or more. There are still areas where I have tons of ideas
ranging from minor enhancements to complete revamp. But development could go on for years this
way. You have to make hard choices. And I am very happy with what we implemented so far.

Game features
Will country flags change according to the ideology of the ruling regime?

It is indeed possible to change country’s flag. We have implemented a new event command that
changes not only the flag but most national graphics (such as the skin or the counter, etc).
Nevertheless, we choose not to change flags automatically based on the ideology, yet it is possible
to write simple events to create this behavior. Something along the lines of "if government =
communist and flag = democratic then change_flag = XXX_communist" would fit perfectly.

Is the tech tree the same as HoI2, slightly expanded, massively expanded, or entirely
reworked?

Entirely reworked. The tech tree now covers the 1914-1964 era, with an emphasis on the 1914-1918
and 1936-1948 periods.

Given the trade window automation introduced in AOD, and the spy mission
automation you've previewed, does the team have any more plans with allowing the
player to "hand-off" parts of the game? Perhaps something similar to HOI3's
production screen or full/partial AI unit control?

Unfortunately, we cannot reveal much now, but a future development diary will introduce the new
automated trade system. It is one of the most efficient part of the game. Many will be surprised how
easily it can be relied on.

Hi, a short question: As DH is supposed to enhance modability, I wonder if there are


any new event commands or triggers or the like? Well, other than the ones concerning
the new features, of course.
An example I had in mind would be something like a control or owned not only for
provinces but for areas or regions as well. This way, you can not only check if someone
holds e.g. Moscow, but if he controls the surrounding region as well.

There a lot of new commands and triggers, but we will introduce them in a future development
diary. For now we can say that we have worked with the aim not only to correct and improve the
existing triggers and commands, but also to add new ones! Based on the example you made, we can
say that you'll be positively surprised.

Please make it possible to set military control by events!

Yes, we have implemented such command and players will be able to take decisions featuring them.
As Germany, you will for instance be able not only to support the Fascist coup in Spain but also to
directly control the Spanish army. American players can also assume the control of Chinese and
French armies alike, which is especially useful for multiplayers sessions. We believe this feature
will bring a lot of fun!

I've played with the E3 map, and I had one major problem with it, that small provinces
like Gibraltar would be unclickable because the sprites/counter were too big, has this
problem been fixed?

Yes. We have added a nice and functional zoom effect. It gives a clear view of what is going on on
such small provinces while adding a nice touch to the map.

How is lend and lease modeled? Just by an IC increase like in earlier HOI-games?

When certain requirements are met, the United States can pass the Lend-Lease Act. Then they can
choose how they want to help the Allies. This help can go from merely sending them resources to
becoming an actual “arsenal of democracy” (reflected by the displacement of factories).
Moreover, the Lend-Lease shipments can be intercepted and stopped by the Axis. Britain can for
instance no longer receive the American aid when they do not have enough transport convoys.
Therefore, the Atlantic submarine warfare becomes much more important than in Hearts of Iron II.

Does the battle mechanics change as the decades pass by? Are the battle mechanics the
same in 1914 as in 1950?

As time goes by and new doctrines are put in use, firepower increases whereas casualties tend to
decrease. Thus, battle mechanics are completely different in 1945 compared to 1914. Not to
mention that the advent of tanks and airplanes is a major revolution in military doctrines.

Are victory points present? If so, any changes to how these function and are
distributed?

We have reduced the total amount and the number of provinces with victory points. We think that
this is a better representation of the world.

And now, to close this Development Diary, here are two screenshots, the first depicting the
Caribbean and the second depicting the Horn of Africa.
DD10: Improved Interface part 2
One of our aims with Darkest Hour is to reduce the amount of time the player has to spend on
useless tasks instead of having fun. A good example of this is new improved and automated Spying
System we already talked about (see DD3 for more details). But obviously we did much more than
that: today, we're going to talk about some the time-saving improvements in the interface.

First of all, in Darkest Hour the use of the SHIFT+ and CTRL+ shortcuts have been extended.
As you already know, usually with SHIFT+ you add 5 items to the queue whereas with CTRL+ you
add 10 items to the queue. The places where this was possible was limited, so we decided to expand
its use. For example in the province interface it is now possible to add 10 levels of IC/AA/Naval
Bases/Air Bases/Infrastructure/etc. in the Production Queue with a single click!

Moreover, we've added a new shortcut: SHIFT+CTRL+click will now add the maximum possible
amount of items! You will be able to queue 99 convoys with just one click! But let's forget about
this for a while, we'll get back when we'll talk more about production.

A new interesting feature is the multiple deployment of divisions. If you have a long list of
divisions in your deployment pool and you don't want to waste your time deploying each of them
separately, you can now simply press CTLR+click to select/deselect them. Moreover, if you press
SHIFT+click over a division it will automatically select all divisions of the same model (infantry,
motorized, interceptors, CAS etc.). And if you press CTRL+click over a division it will
automatically select all divisions of the same type (which means land, naval or air units). But this is
not the end: after selecting the divisions, there will be a new screen where you can choose to add
these divisions to an existing unit or deploy them in a specific province. Nothing new? Wrong, there
is a new trick! The game will automatically group together units of the same model creating groups
(but if you want them separated you just have to press SHIFT). By default land units are placed in
groups of three, air units in groups of 2 and naval units in groups of 6, bu this value is moddable in
misc.txt for each unit type. So for example if you have 7 land divisions, the system will
automatically separate them in 3 units: the first two unit will have 3 divisions each and the third unit
will get 1 division. You can them easily deploy these three units in a specific province. If you want
7 different units each composed by a single division you'll only have to press SHIFT.
Now it may sound a bit too complex, but trust us: it is a really useful feature, you'll love it!

Another improvement that you will surely appreciate is the merging of the terrain and the
weather map. This option is initially disabled, but all you have to do is right-click on the pause
button and you can enable it. As you can see from the screenshot below, the terrain map will now
display the clouds from the weather map and two new small icons to represent mud and frozen
terrain. Very useful when you are executing Operation Barbarossa!
As you might have spotted in the screenshot above, there is also another option: you can hide icons
and units from view in the diplomatic mode! Take a look at how the diplomatic map may look
with this new feature:

And finally, we made some cosmetic changes to the economic map: the units are hidden and the
icons are grouped together:
We hope you'll appreciate these new features! Come back again next week!
DD11: Modding with Darkest Hour part 1
Darkest Hour is a game made by fans for the fans, but more also to a certain extent, we could also
say it is made by modders for the modders. Starting today and for the next few weeks, we will
introduce you the changes introduced by Darkest Hour related to database and modding. We will
show you the changes to triggers and commands, the new event interfaces and the new concepts
(you already know there is a decision system, but there are also quite a few elemental additions to
the existing event system you haven't seen elsewhere).

Today we'll start with corrections and improvements that we did to already existing triggers and
commands as well as the new ones we introduced.
One of the first improvements we made was to take into considerations wars and alliances: we gave
the control, owned and garrison triggers the possibility to check for enemies and allies. Obviously,
an enemy is a country we are at war with whereas an ally is a country we are allied with. So for
example it is possible to check if a specific province is controlled by a specific country or by one of
its allies: this will be very useful in surrender chains! ;-)

Here's a list of corrected and/or improved triggers:


- Trigger: control = { province = a [data = tag] } # checks if province is
controlled by country x. If data = -1 or no data then it’s for country
receiving event; -2 is Enemy; -3 is allied (war or diplomatic alliance) or
event receiver
- Trigger: convoypool = X # changed to check for total convoy transports
instead just for unassigned
- Trigger: escortpool = X # changed to check for total escorts instead just for
unassigned
- Trigger: intelligence = X / intelligence = { [country = TAG] value = X [data =
1/2/3] } # True if intel level is at least X in the current country
(intelligence = X, or no TAG) or country in question (TAG); data: 1 (default)
intell level, 2 – foreign intelligence, 3 – counter espionage
- Trigger: intel_diff = { country = TAG1 [country = TAG2] value = X [data =
1/2/3] } # True if TAG1 intel efficiency in TAG2 – TAG2 intel efficiency in
TAG1 is at least X (data = 1 or no data), TAG1 intel level – TAG 2 intel level
is at least X (data = 2), or TAG1 intell efficiency in TAG 2 is at least X. If
no TAG2 check for current country in TAG1. value could be negative.
- Trigger: lost_IC = { value = X } # X% or more of national IC of the country
in question is in enemy hands
- Trigger: lost_national = { value = X } # X% or more of national provs of the
country in question are in enemy hands
- Trigger: lost_VP = { value = X } # X% or more of _owned_ VPs of the country
in question are in enemy hands
- Trigger: owned = { province = a [data = tag] } # checks if province is owned
by country x. If data = -1 or no data then it’s for country receiving event; -2
is Enemy; -3 is allied (war or diplomatic alliance) or event receiver
- Trigger: trade = { country = TAG } # check if the country in question has a
trade deal with TAG
- Extend garrison trigger to support [country = TAG/0/-1/-2/-3] (0 – all
countries, current country (country = -1 or no country), enemy countries
(country = -2) or allied/friendly countries (country = -3); optional area
values: 0 = (no) / 1 = area / 2 = region /3 = (yes) owner area ):
* garrison = { [country = TAG/-1/-2/-3] province = [province] type =
[air/land/naval] size = [number of divisions] area = [0/1/2/3] }

And now, let's talk about the new triggers we introduced with Darkest Hour. First of all, as someone
guessed in our Q&A Session two weeks ago, we can now check control or ownership not only over
a province but also over an area or a region. The checks can be performed on allies and enemies too
and can involve even a percentage of province: for example we could check as Germany if at least
60% of provinces of the region France are controlled by our alliance. Thanks to the nuked triggers
it will be possible to take nuclear warfare into account in surrender chains: now Japan can surrender
if Okinawa is lost and it has been nuked at least twice. Another trigger, perhaps underestimated, is
the participant trigger which checks if the country is part of the Allies, Axis or Comintern. There
are also new checks for buildings (with special checks for nuclear reactors and rocket test
facilities), cores & claims, divisions, policies and tech teams that allow a finer tuning and a better
control over the status of your country.
Here's a list:
- Trigger: area = { area = name [country = TAG/-1/-2/-3] [data = 1/2] [value =
X] } # check if all provinces in the area are controlled (data = 1 or no data)
or owned (data = 2) by the current country (country = -1 or no country), enemy
countries (country = -2) or allied/friendly countries (country = -3)); optional
value = X (0 to 100, default is 100) – percentage of provinces (cannot be less
then 1 province)
- Trigger: building = { province = ID type = building_type value = X [when =
now] } # check if in the specified province that building_type is at least at
level X; when = now for current size, else - max size
- Trigger: claims = { province = a [data = tag ] } # check if that province is
claimed by TAG (or country in question if not specified)
- Trigger: core = { province = a [data = tag ] } # check if that province is
core for TAG (or country in question if not specified)
- Trigger: embargo = { country = [tag1] country = [tag2] [value = 0/1/2]} #
checks if tag1 has trade (value = 1), tech (value = 2) or any (value = 0 or no
value) embargo to tag2. If no tag 2 check for current country against tag1
- Trigger: ic = X / ic = { [country = TAG] value = X [when = now] } # check if
TAG (or country in question if not specified) has X or more Total IC ([when =
now] ) or Base IC; ic = X checks if current country has at least X total IC
- Trigger: nuclear_reactor = X / nuclear_reactor = { [country = TAG] value = X
[when = now] } # check if TAG (or country in question if not specified) has
nuclear reactor at X or more current size ([when = now] ) or max size;
nuclear_reactor = X checks if current country has at least nuclear reactor with
X current size
- Trigger: nuked = X / nuked = { country = TAG1 [country = TAG2] data = X [where
= Y] }
* nuked = -1 # True if against that country have been used at least 1 nuke
* nuked = 1 # True if that country has used at least 1 nuke against any
country
* nuked = { country = FRA country = GER data = 1 where = 300 } # True if
France has used at least 1 nuke against Germany in Berlin (ID 300)
* nuked = { country = FRA data = -1 } # True if against France(FRA) has been
used at least 1 nuke by any country
* nuked = { country = GER data = -2 where = 300 } # True is against Germany
have been used at least 2 nukes (by any country) at Berlin
- Trigger: participant = { [county = TAG] value = 1/2/3/4 } # check if TAG (or
country in question if not specified) is part of Allies (1), Axis (2),
Comintern (3) or any alliance (4)
- Trigger: policy = { [country = TAG] type = [policy] value = X } # true if the
policy of TAG (or country in question if not specified) is equal or greater
then X. Value is 1 to 10
- Trigger: region = { region = name [country = TAG/-1/-2/-3] [data = 1/2] [value
= X] } # check if all provinces in the region are controlled (data = 1 or no
data) or owned (data = 2) by the current country (country = -1 or no country),
enemy countries (country = -2) or allied/friendly ); optional value = X (0 to
100, default is 100) – percentage of provinces(cannot be less then 1 province)
- Trigger: rocket_test = X / rocket_test = { [country = TAG] value = X [when =
now] } # check if TAG (or country in question if not specified) has rocket test
sites at X or more current size ([when = now] ) or max size; rocket_test = X
checks if current country has at least rocket test site with X current size
- Trigger: tech_team = ID / tech_team = { id = X [country = TAG] } # checks if
team with id X is active (current year is in between team’s start/end year) in
the current country (no country entry), in a specified country (TAG) or in any
country (country = -1, or just team = ID)
- Trigger: [div type] = { [country = TAG] value = X [when = now] } # check if
TAG (or country in question if not specified) has X or more of that type of
division. when = now counts only already built divisions.
- New trade system triggers:
* stockpile = oil/energy/metal /rare_materials/supplies/money # Returns true
if Stockpile is set for the given resource.
* import = oil/energy/metal /rare_materials/supplies/money # Returns true if
Import is enabled for the given resource.
* export = oil/energy/metal /rare_materials/supplies/money # Returns true if
Export is enabled for the given resource.
* resource_shortage = oil/energy / metal / rare_materials / supplies /
money / all # Returns true if there is resource shortage for that resource
or for any resource when used with “all”. NOTE: This trigger is not very
reliable because it is set correctly on the second game day on every game
session.

We've corrected the most well-known bugs in event commands (unit stats and change TAG
command) and improved the inherit and manpowerpool commands:
- Fixed units stats added by events (example “command = { type = soft_attack
which = infantry value = 10 }” ) – those were not applied to newly built units.
- Added “when = XXX” entry to build_division event command to allow serial
builds (default value is 1)
- Fixed a CTD bug with undocumented change country TAG command (command = { type
= country which = TAG }) – tech-teams currently researching were not removed
from research pool. On click game CTD
- Fixed a bug in change country TAG command - only minimum provinces were added
to nationalprovinces list. Add provinces from extra list too and also claims to
claimedprovinces list.
- Addition to inherit command – added value = 1/0(default) argument. When set
country will receive all units and production queue too.
- Improved manpowerpool command – added optional [when = 1/[0]] switch. When set
1 add the MP as percentage (value = x.x) of the MP in all controlled national
provinces.
- Corrected event command: type = carrier_level value = XXX.X #country-
independent bonus to every carrier into a naval combat (Bonus = (OurCarrierLevel
- TheirCarrierLevel) / 10). Specified value replaces currently used (it is not
additive command). By default this value for all countries is 0.0 (and so the
bonus is 0%).
- Extended alliance command (added Axis, Allies, Comintern alliances): type =
alliance which = [tag] [where = 1/2/3] # This country enters in an alliance with
country = [tag], [-1] for random country, where = 1 – Axis/ 2 – Allies / 3 –
Comintern

The new option for the inherit commands will add flexibility and will avoid having to rely on the
regular_id entry on revolt.txt to achieve the same result whereas the enhanced manpowerpool
command is very useful for the mobilization process, as you might learn in another DD! ;-)

And now, we're going to have a look at the new event commands that we introduced. We cannot
talk about the new trade system yet (you'll have to wait for another DD ;-) ), so let's skip its
commands and let's look at the change flag/shield/counter name and skin and change country name
commands. We think these are going to be some of the most loved additions, especially by the
modders, as these commands have been loudly requested by the community for years. We hope
you'll appreciate them! :-)
Other commands that you'll soon grew accustomed to will be the new command to assume or
relinquish military control over another country and the commands to secede whole areas or regions
to another country: no more typing secede_provinces hundreds of times for the Soviet Bitter Peace!
:-D
- New commands and country specific modifiers on max stockpiles:
* command = { type = stockpile which = (industry / supplies (used for oil too) /
all) when = ( war / peace / all ) value = XX }
- New event commands to toggle auto-trade options.
* command = { type = auto_trade which = (oil / energy / metal / rare_materials
/ supplies / money) when = (import/export/stockpile) value = 1/0 }
Notes:
a. Enabling Stockpile will disable Export and enable Import
b. Enabling Export will disable Stockpile
c. Disabling Import will disable Stockpile
* command = { type = auto_trade_reset } - reset auto-trade options to defaults
( Stockpile disabled, Import and Export enabled for all resources)
- New event command – add/remove tech/trade embargoes:
* command = { type = embargo which = TAG where = TAG [value = -2/-1/0/1/2/3] } #
which – enforcer; where – subject; value: -2 – clear tech embargo; -1 – clear
trade embargo; 0 or no value – clear all embargoes; 1 – enforce trade embargo; 2
– enforce tech embargo; 3 – enforce both trade and tech embargoes; If which =
where then value = 0 (clear all embargoes the country has), -1 (clears all trade
embargoes the country has), -2 (clears all tech embargoes the country has)
- New event command – trade:
* command = { type = trade which = TAG where = TAG [energy = x] [metal = x]
[rare_materials = x] [oil = x] [supplies = x] [money = x] [when = Days
duration / default is 100 years] [value = 1/0 – default, can be broken, 1 = not]
}
- New event command – change flag/shield/counter name and skin:
* command = { type = flag_ext where = TAG [which = “string”] } # where – change
flag of TAG; which - add that string to flag/shield/counter name and skin
folder; use empty string (“”) or no which to clear.
- New event command – change country name:
* command = { type = name where = TAG [which = “string”] } # where – change name
of TAG; which - new country name; use empty string (“”) or no which to reset
name to default.
- New event command – military_control:
* command = { type = military_control which = TAG where = TAG value = 1/0 } #
which – controlling country; where – controlled country; value – 1(assume MC), 0
(relinquish MC)
- New event command – secederegion:
* command = { type = secederegion which = TAG value = REGION_NAME }
- New event command – secedearea:
* command = { type = secedearea which = TAG value = AREA_NAME }
- New event command to add claims: type = addclaim which = [prov id] # Add
province to country claims
- New event command to remove claims: type = removeclaim which = [prov id] #
Remove province from country claims
- Added a new command to change leader of a major alliance: command = { type =
alliance_leader [which = TAG] where = 1/2/3 } #sets TAG (or country in question
if no which is specified) as the new leader of Axis (where = 1), Allies (where =
2) or Comintern (where = 3)
We regulary add new commands and triggers, or improve the existing ones, whenever we reach a
point where it is not possible to achieve a certain effect with those already existing, so this list is by
no means final. We might surprise you again in the future!

This is all for now! Next week we'll probably talk about the new event and decision interface!
Here's a sneak peek:

Addendum to DD 11
And in the sense of adding/fixing things regulary, you actually didn't mention my current favorites
added last week.

Extended unit terrain/weather combat modifier commands to classes too (land/air/naval)

Old code:
command = { type = frozen_attack which = infantry value = 13 }
command = { type = frozen_attack which = militia value = 13 }
command = { type = frozen_attack which = armor value = 13 }
command = { type = frozen_attack which = bergsjaeger value = 13 }
command = { type = frozen_attack which = cavalry value = 13 }
command = { type = frozen_attack which = hq value = 13 }
command = { type = frozen_attack which = light_armor value = 13 }
command = { type = frozen_attack which = marine value = 13 }
command = { type = frozen_attack which = mechanized value = 13 }
command = { type = frozen_attack which = motorized value = 13 }
command = { type = frozen_attack which = paratrooper value = 13 }

DH code:
command = { type = frozen_attack which = land value = 13 }

It might not look like much to you, but if you add for example decisions to equip your troops with
specifc equipments it gets really important.

If you want to add for example winterequipment, the old code required 120 commands to
add/remove terrain/weather modifiers to all vanilla landdivisions.

snow-/frozen- move/attack/defense for each of the 10 Division types, and the whole thing times
two, one to activate and one to deactivate.

The new code requires only 12 lines.

And there might be more then only winterequipment.


DD12: Modding with Darkest Hour part 2
Today's Development Diary will focus on the new event and decision interface.

First of all, we've introduced two new styles for events.


The first style is chosen by writing "style = 1" and allows the use of bigger pictures. The new
picture size is 400x116 instead of the standard 156x116: the height did not change but now the
picture is as large as the event window. Moreover the action buttons are now smaller. Overall, this
is a simple cosmetic improvement in style, but take a look at how beautiful it is:

The second event style (chosen by writing "style = 2") is a bit more complex and provides a
newspaper-style header. The header is composed by a 400 x 48 pictures that can be generic
(news_header.bmp) or country specific (news_header_TAG.bmp). Under the header, the current
game date and capital name are displayed (e.g. "March 7 1936, Berlin" or "March 25 1939,
Rome"). Below that, the event pictures (440 x 116, as for the first style) is diplayed, followed by the
event title and description. For the generic header we used the "News of the World" newspaper, but
we also added more specific headers for some countries:
The HOI2 Vanilla style is obviously still the default style and can be explicitily chosen by writing
"style = 0".

And now, let's take a look at the decision interface. We've already introduced decision in Dev. Diary
6 and we will talk more about their coding in another DD, for now we will introduce their interface.

As you've already seen from our screenshot, we added another tab to the frame in the left side of
the screen. In this tab, all available and active decisions are listed. A decision is available when it is
listed there, which means that you can read its requisites and its consequences. A decision is active
is the requisites are met and can be taken by the player at any time. That means that a decision can
be available but not active if its requisites are not met: the player can then read the requisites
necessary to make the decision active and its consequences and decide whether to pursue them or
not. Take a look at the following example:

If you decide to take a decision, it is triggered as an event and you can accept it or cancel it. If you
cancel it, the decision won't disappear but remain listed as active in the decision list, so that you can
take it at a later moment (if the requisites are still fulfilled, of course).
DD13: Modding with Darkest Hour part 3
Today we're going to talk about the improvements we made to the existing event system.

First all, you'll be happy to know that now events can have an unlimited number of action, we are
no more bounded by a maximum of 4 choices. You can create an event with as many action as you
want, you're only bundled by the size of your screen.

But this is just the beginning. Perhaps the greatest improvement we made to the event system is the
introduction of triggers in action and commands. This means that a trigger can be associated to
an action and that action will be displayed and selectable only if its trigger is satisfied. The same
happens for commands: a single command can have a trigger and that command will be executed
only if its trigger is satisfied. This change opens a whole new dimension for event writing because
with only event you'll able to attain results that previously required many different events (or where
altogether not reachable!). Let us give you a few simple examples of this feature.

Example 1 - you can have different actions based on the government:


action = {
trigger = { government = democracy }
command = { ... }
}
action = {
trigger = { government = communist }
command = { ... }
}
action = {
trigger = { government = nazi }
command = { ... }
}

Example 2 – a command can be executed only if the trigger is satisfied (surrender of France):
action = {
command = { type = secedearea which = GER value = "Bourgogne_Champagne" }
command = { type = secedearea which = GER value = "Lorraine_Alsace" }
command = { type = secedearea which = GER value = "Pas de Calais" }
command = { type = secedearea which = GER value = "Paris" }
command = { type = secedearea which = GER value = "Normandy" }
command = { type = secedearea which = GER value = "Loire" }
command = { type = secedearea which = GER value = "Brittany" }
command = { trigger = { control = { province = 87 data = ITA } } type =
secedeprovince which = ITA value = 87 } # Nice
command = { trigger = { control = { province = 86 data = ITA } } type =
secedeprovince which = ITA value = 86 } # Toulon
command = { trigger = { control = { province = 90 data = ITA } } type =
secedeprovince which = ITA value = 90 } # Grenoble
command = { trigger = { control = { province = 91 data = ITA } } type =
secedeprovince which = ITA value = 91 } # Chambery
command = { trigger = { control = { province = 94 data = ITA } } type =
secedeprovince which = ITA value = 94 } # Corsica
}

As you can see, now you don't have to write action_a, action_b, action_c and action_d anymore, but
a simple action is enough. Obviously the old syntax is still valid, as we always said we want to keep
compatibility with HOI2 Armageddon mods.

This change also required a new system to calculate the ai_chance. We therefore created this new
set of rules:
• sum of AI chances of all valid actions could be any positive number (removed fixed sum =
100 prerequisite);
• invalid actions are skipped in AI chances calculations;
• actions without specified AI chances are ignored by the AI if there is at least one valid action
with AI chance set;
• if no AI chance is set for valid action, random action is chosen from all valid actions
(removed increased chance to pick 1st action);

Another feature we introduced are the so called one-action events. This means that when this
option is selected (by writing one_action = yes), even if an event has more than one action, only
one of the possible actions will be displayed to the player (who therefore will be forced to accept
it).The choice of the action is based on the defined AI chance for each action. In this way the player
cannot choose the action and is forced to accept whatever happens to him.
An example is perhaps worth more than many words: the effects of the attack on Pearl Harbour can
be written as a one_action event, so that neither the Japan nor USA can choose the amount of losses
inflicted on the American fleet.

event = {
id = 1122334455
random = no
country = USA
one_action = yes

name = "Attack on Pearl Harbour!"


desc = "4062desc"

action = {
ai_chance = 10
name = "We suffered very heavy losses"
...
}
action = {
ai_chance = 50
name = "We suffered heavy losses"
...
}
action = {
ai_chance = 15
name = "We suffered light losses"
...
}
action = {
ai_chance = 5
name = "We suffered very light losses"
...
}
}

When this event is triggered, only one action is displayed to the player and the probability of a
single action is based on the ai_chance. The same rules explained above apply here, so it is not
necessary to have the sum of ai_chance equal to 100. So the second action ("We suffered heavy
losses") has a probability of being chosen equal to 50/(10 +50 +15 + 5) = 62.5 %.

Fianlly, the last feature we're going to talk about today is the events with saved date. It is possible
to save the date in which an event fired and then use it as a trigger in another event, for example to
make an event fire at least 100 days after another event fired.
Example: the first event will have save_date = yes:
event = {
id = 1234567890
random = no
save_date = yes
country = GER
...
}

The second event will have:


trigger = {
event = { id = 1234567890 days = 100 }
}

Darkest Hour Complete will make full use of these new features, but some of the mods currently
being ported to DH will use them too! Wait&See! ;-)

Here are a couple of screenshots from our Development Team:


DD14: Modding with Darkest Hour Part 4
First of all, today we're going to talk a bit more about syntax and rules for decisions, as many fans
expressed their interest in this subject.

As we've already discussed in Dev Diary 12, on the left side of the screen we introduced a new list
which contains the available decisions that the player can evaluate and eventually take. From the
point of view of the code, a decision is a normal event with two new sections:
• decision = { ... insert normal triggers here ... } : if these triggers are fulfilled the decision
appears in the decision list for the human player;
• decision_trigger = { ... insert normal triggers here ... } : if these triggers are fulfilled the
decision can be taken by the human player;
When the decision is taken, it fires as a normal event and can always be canceled. In the latter case
the event isn't registered as fired and the decision remains active in the decision list and can be
taken again at a later date (if the conditions in the decision_trigger section remain fulfilled). Please
beware that for AI nations decisions are treated as events, this means that only the usual trigger =
{ ... } section is checked! This means that all three sections (decision = {...}, decision_trigger = {...}
and trigger = {...} ) must be correctly compiled to make the decision work. Moreover, the decisions
appear and can be taken only during the chosen date-deathdate interval, so that part of the code
must always be compiled too!

Here are more technical informations on decisions:


- there is a new modifier in misc.txt (“mod” section) to enable or disable decisions: #Enable
decisions for players. 0 - Disabled, 1 – Enabled ;
- decisions are hidden until all triggers in decision = { } section are fulfilled;
- decisions become available for selection when all triggers in decision_trigger = { } section are
fulfilled;
- once selected, the decision fires as regular events via standard event window with all the usual
information and actions on it plus the possibility to cancel the decision;
- decisions are logged in event history as regular events;
- the decisions list is populated on game start and updated daily;
- usually the tooltip on the decision displays the description of the event, but optionally it is
possible to insert a specific text: decision_desc = "....";
- a new kind of pictures is introduced, to be used in the decision list: decision_picture =
"picture_name.bmp" (if none if chosen, a generic picture is loaded by default -
gfx\event_pics\decisions_empty.bmp);

Another important change introduced by Darkest Hour is the export of the effects of policy slider
to a new file, db\policy_effects.csv.
This file allows complete control over the effect of policy sliders and is a very powerful tool. Here's
a list of the possible effects that are associated to slider position:
CAN_ALLY_WHILE_AT_PEACE
CAN_ADD_CLAIMS_TO_NEUTRALS
CAN_DEMAND_CLAIMS
CAN_BREAK_NAP
CAN_GUARANTEE
MODIFIER_ORG
MODIFIER_GEARING_BONUS
MODIFIER_CG_DEMAND
MODIFIER_DISSENT_SPEED
MODIFIER_UPGRADE_COST
MODIFIER_UPGRADE_TIME
MODIFIER_TECH_TEAM_SALARIES
MODIFIER_RESEARCH_TIME
MODIFIER_PARTISAN_RISK
MODIFIER_DOW_DISSENT_COST
MODIFIER_TOTAL_IC
MODIFIER_CG_TO_MONEY
MODIFIER_RESOURCE_PROD
MODIFIER_PRODUCTION_TIME
MODIFIER_PRODUCTION_COST
MODIFIER_NATIONAL_DISSENT
MODIFIER_OCCUPIED_DISSENT
MODIFIER_COUNTER_INTEL - used for units detection
MODIFIER_MP_EXPERIENCE
MODIFIER_MP_GROWTH
MODIFIER_DIPLO_COST
MODIFIER_INTEL_COST
MODIFIER_INTEL_MAINTENANCE
MODIFIER_REL_NORMALIZATION: applied each 6th day
MODIFIER_STOCKPILES
MODIFIER_USE_BELLIGERENCE_FOR_DOW
MODIFIER_BELLIGERENCE_DOW
MODIFIER_RELATIONSHIPS_DOW
MODIFIER_COUNTERINTELLIGENCE - added to home intell
MODIFIER_INTELLIGENCE - used as extra spy level in distance calcs

This allows the modders to customize the policy slider. We might talk about what we've done to
one on these slider in another Diary.

To close this DD, let's review other changes related to modding that we introduced:
- Enabled unlimited unit models (was fixed to 10). To use just add a new model = {….} entry in
the respective txt file in “units” folder. As a bonus this change will decrease loading time and
memory usage for unit types that use less then 10 models.
- Added new (optional) parameter for units: max allowed brigades. This overrides default hard-
coded values. Add to division files in “\db\units\divisions”. Format: max_allowed_brigades = X.
Currently it is allowed to have up to 5 brigades for naval units and up to 1 brigade for land and air
units.
- new country IC modifier - wartime_ic_mod. Works like peacetime_ic_mod, but when at war;
- new adjustable reaction of puppets when not-allied master is at war: puppets with neutrality
150+ (set in misc.txt ) that are not allied to their master will not join automatically master’s wars
anymore
* Puppets should join Master's war if AI Neutrality is equal or greater then
THIS. Note: this works only if puppet is not part of
Master's alliance! 0 = always join Master's wars 150 #0

- new modifiers in misc.txt (“mod” section) to handle the spawning of rebel units:
* Rebels army composition - chance for infantry over militia. 0 - only militia,
100 - only infantry, 50 - 50%/50% and so on.
* Rebels army tech level (based on the available model in the country that
controls the province). -1 - Only model 1, 0 - Only
the Latest model, else random model in the range from (latest model - THIS) to
(latest model).

- Allowed (optional) unique province capital/city icons. Gfx\map\city_PROVID.bmp


(city_55.bmp for Paris and so on).
- Added optional fonts support for each language. Fonts are expected to be found in \gfx\fonts\X
folder where X is the language set in settings.cfg (0 – ENG … 5- Polish). If not found in
numbered folder fonts are read from fonts default location (\gfx\fonts\).
- All minister modifiers are moved to a moddable file (db\ministers\minister_personalities.txt).
Moddable effects:
* Leader skill
* Research time – per tech or for all
* Research cost – per tech or for all
* Resource production bonuses – oil, energy, metal, rare materials, money
* Production bonuses – foreign IC, national IC, reinforce, upgrade, consumer
goods, supplies
* Units – build time, build cost, attack bonus, defense bonus, morale (org.
regain), organization
* Brigades - build time, build cost, attack bonus, defense bonus, morale (org.
regain), organization
* Land unit speed
* Belligerence – required for DoW, wartime and peacetime
* Transport capacity modifier
* Provincial buildings (IC, coastal and land forts, flak, infrastructure, air
and naval bases, radar stations, nuclear
reactors and rocket test sites) time and cost
* Detection – naval, land and convoy
* Dissent
* Manpower growth – total and non-national
* Supply consumption
* Spying networks bonus – intelligence (home) and counterintelligence (foreign).
Limited up to 5% each!
* Intelligence reports accuracy – land/air units, navy/convoys and
production/research. Values from -10 to 10
* Diplomatic action chances – trade (used also for trade agreements), alliance
(offer, join and bring), non-aggression pact, demand territory, ask for military
access, sue for peace (insist on demands, white and beg for peace), assume
military
control and influence
* Diplomatic action chances extra modifiers – weak target (Total IC is less then
½), same alignment, opposite alignment,
democracies, dictatorships, close government type (difference +/- 2)
* Diplomatic action cost for each action. The final value can be no less then
0.0
* Diplomatic action cost extra modifiers – weak target (Total IC is less then
½), same alignment, opposite alignment, democracies, dictatorships, close
government type (difference +/- 2), national (actions against us: cost modifier
= 1 + Sender’s modifier + Target’s modifier).
* Convoy transports and escorts build time and cost (using transport ships and
destroyers modifiers)
* Intelligence mission cost for each mission – 2 modifiers: for sender and for
target (Final cost modifier for a mission = 1 +
Sender’s cost modifier + Target’s defense cost modifier). The final value can be
no less then 0.0
* Intelligence funding and maintenance cost modifiers
* Intelligence mission chances for each mission – 2 modifiers: for sender and
for target (Summary chance for a mission = Sender’s modifier + Target’s defense
modifier)
* Stockpile - modifiers on stockpiles limit: which = industry / supplies (used
for oil too) / all (default); when = war / peace / all (default); value = x.xxxx
DD15: Questions & Answers Session part 2
We have been working on manpower, mobilization and generic concepts these last two weeks.
We know excitement is growing fast among the community and many of you cannot wait to get
your hands on Darkest Hour.
We got some very kind messages on our Facebook page lately.

Some were short and simple.


Any ETA on when this will be available? I'm dying to play it!

Some were longer and inspiring.


Honestly: just the thought of playing this game moves me! I'm so happy to have been introduced to
this gaming series, because it has changed my life. I work as a history teacher and these games
have given me so many ideas for my classroom w...ork. And on the private side, I spend soooo many
hours with HoI in all shapes and forms, that it now defines my life. When I lie in bed I think of
strategies for upcoming moves; I keep a notepad by the bed so I can write them down. And now the
concept of WWI...I can't wait. I really CAN NOT wait!

And some were just plainly weird.


I want to have sex with Darkest Hour.
We are sorry though, you can't have sex with Darkest Hour.

Moreover, in case you've missed it, a new Mod based on DH has been announced: Drunkest Hour!

So fellow wargamers, with no further ado, here is the Second Q&A Session.

Will there be two sets of techtrees? Or is there just one, extensive techtree covering
1918-1948 (or whatever)?
You mean there really is just one, spanning the entire timeline? I asked specifically
because it seems like a LOT of techs to fit on those small screens, and an even larger
LOT of awesome and win.

I wonder if there are countries in 1936 scenario with 1914 level techs. Seems like there
were a couple such places around.

We have extended the technology screen and are working over a large tree spanning from 1914 to
1963 technologies.
This way we can work on scenarios that will use the same database.

Is trade improved? If so, does the player see which countries favour you more than
others (trade ratio thing)?

The trading system has been drastically improved compared to oldest Hearts of Iron games for you
can now assign priorities to exports and imports and let the AI strike the best possible deals on the
world market. The trade system should be introduced in the next development diary.

Is money going to be more important and just not wasted?

I am adding generic decisions that will let you play with budget surplus (we showed some
screenshots in the December Specials). They will be probably introduced in a future development
diary too.
Besides, peacetime should now be more interesting.

I just ask for a yes/no on this one: Will there be any secret techs for WW1?

Yes.

What battlescenarios will we get (that we did not have before)?

We are working on a new Finnish Civil War scenario, but we don't know if it will released with the
game or with a later patch because there's still a lot of work to do.

More than 5 research slots possible?

As of now, Darkest Hour has a maximum of 5 research slots but this may be subject of changes in
the future. Moreover it is now moddable and can be increased up to 50 slots (hardcoded limit); also
the IC needed for a new slot can be modded (it is still 20 in DH right now). Here's the setting that
can be modded from misc.txt:
# Use new Technology page layout - allow for more techs and better view. 0 -
use vanilla; 1 - use new
1 #0
# Max active tech teams at a time (cannot be more then 50). Note: New
Technology page layout will be auto-set for values above 5!
5 #5
# Min active tech teams at a time (available teams regardles of current IC)
1 #1
# Required IC for each tech team above the min
20 #20

Will WW1 be balanced so that long deadly battles much like World In Flames will
happen when there are fortifications or difficult terrain/weather?

Battles in DH are longer and deadlier.


How are the peace events represented for WW1 and WW2?

By events, decisions and AI mechanisms.


Are there advanced sliders?

You can add/remove items from production lines and upgrade models, but this will be better
covered in another DD.
Can political sliders be moved more than once a year?

Political sliders can be moved by events, decisions and at player's will every two years. However,
we are currently refining the sliders system and this may change. The interval between moves is
moddable of course.
How will the flag-switch be integrated? (Like in Victoria or did you come up with
something new?)

Flag switch is new and not copied from Victoria. There are new event commands that handle it (see
DD 11)
Will you introduce new unit types? Like in WW1 mod new infantry divisions: for
example Reserve, Guards and Light Inf. maybe?
We will introduced new units or brigades, but maybe not those you mentioned.
Will countries like Ethiopia or China be able to field armies comparable in size with
their historical numbers?

Yes.
Will there be an option to change/will you change the country's colors to something
much brighter?

It's easily moddable.


Is there an easy to use moddir function (that works, most importantly)?

Absolutely.
There will be a "give province to" on the right mouse button like in Iron Cross ?

There are options that can be enabled and which allow to transfer owned and non owned provinces:
# If owned (!) provinces can be sold/transferred to non-allied countries. 0 =
No, 1 = Yes (player could offer such provinces), 2 = Yes (player cold offer and
ask for such provinces)
0 #0
# Allow non-owned (just controlled) provinces to be transferred to allied(!)
countries if provinces are cores for that ally. 1 - Enabled, 0 - Disabled
(default):
1 #0

What will the effects on certain generic decisions be (and requirements), such as issue
new currency?

It can be taken when your country has below X money. This situation reflects either budget deficit
or more precisely negative trade balance (because money rate is too high for instance).
Issuing currency therefore allows you to get extra money instantly which in turns creates inflation
reflected by a slight loss of industrial efficiency in game.
Will the first TRP version for DH be just a conversion of the old TRP 0.94 to DH?
Maybe incorporating a few new things like decisions?

From the TRP team: The first TRP version for DH will be the conversion to the new map. We will
not convert TRP 0.94 but TRP 0.95 with a lot of fixes which are valid for the "Arma 1.3 Beta 2"
engine as well.
Some new things will be added, but it just depends on the time we have between map conversion
and release of DH.
The AI uses nukes?

Yes. Beware!!!
How much of DH's awesomeness you have not revealed yet?

Quite a bit. As always, Wait&See.


In Dev Diary 2 when you talked about the new map features, the biggest new feature
that intrigued me was the new distance calculation algorithm that said that the distance
between Berlin and Moscow would be the same ingame as it would in RL.

Can you show us a screenshot of that or something similar to us?


No other screenshot for today (come on, we gave you all those December Specials!), but here's a
link to a video made by the fun. It made us laugh, we hope it will do the same for you! See you next
year!
http://forum.paradoxplaza.com/forum/...kest-Hour-quot
DD16: Trade & Stockpile systems
Hello and Happy 2011 to everyone of you! 2011 will surely be a great year as it will see the release
of Darkest Hour!

It is time to talk about our improved trade system. It can be surely described as easy to use and
effective. Here's a screenshot:

As you can see you can automate the following tasks:


- the AI can propose trades to other countries;
- the AI can accept trades propose by other countries;
- the AI can cancel existing trades;
- the AI can automatically help allies that are lacking certain resources by sending them for free;
- the AI can automatically share blueprints with Allies and puppets;
- the AI can automatically accept blueprints from other countries (single offers);
Moreover, there's a slider to regulate the AI that accepts deals with other countries so that you can
choose to make it accept only the best deals or even deals that are not so convenient. Finally, with
the Trade Policies section you can set the behavior of the AI regarding each resources. If a resource
can be imported, the AI will try to obtain it, whereas is it can be exported the AI will be able to give
it to other countries in exchange for other resources. A resource that we want to stockpile is a
resource that the AI will not export and will do its best to acquire from the market.

This new trading system aims at putting players in the position of leaders during the darkest hours
of the XXth century. You do not have to negotiate every single commercial deal. All you have to do
is let your diplomats, advisors and trade specialists know exactly what kind of deals you believe
your country has to reach for. However you can still get personally involved in these trades for you
will eventually decide what kind of Head of State you wish to be!
Overall, this new system if very easy to configure and intuitive. Playing with the sliders and the
trade policies will help to solve any problem or shortage concerning your resources stockpiles.

Speaking of which, let me know introduce you to one of the biggest innovation of Darkest Hour, its
Stockpile system. Each resource (with the exception of money) cannot be stockpiled ad infinitum
anymore. As you can see from the following screenshot, there are three different levels:
- if a resource is below the critical stockpile level, the trade AI will try to acquire this resource
instead of giving it away;
- the AI will try to bring each resource above the desired stockpile level;
- if a resource is over the maximum stockpile level, the AI will not try to import that resource
anymore and some of it will be lost because of the “over stockpile limit loss”;
The “over stockpile limit loss” is proportional to the quantity of resource over the maximum
stockpile level: if you're just above the threshold the loss will be minimal, but it will soon grow.
How are the stockpile level calculated? First of all, they are dynamic and are set by the engine two
days after the start of each game. The levels for energy, metal and rare materials are based on the IC
whereas the levels for supplies and oil are based on the size of your Army. This means that the
stockpile levels grow with the growth of the Industrial Capacity and the size of the Army of your
country.
But there are also over factors that can influence the stockpile levels, for example there are new
modifiers for ministers and political sliders that influence the stockpile levels (as we've shown in
Dev Diary 14),

Here are another screenshot and some of the code involved in the new trade and stockpile systems:
Added optional stockpiles limit (can be set from misc.txt
(“economy” section)).
– New trade parameters in misc.txt (“trade” section):
* Days between trade offers to a country
* Delay in days on each game start/reload before allowing any new trades (AI,
auto-trade and Diplomacy) 2 #0
* Desired stockpile threshold
* Critical stockpile threshold
* Desired supply stockpile (for X days)
* Desired oil stockpile (for X days)
* Days to deliver resources from single trades
* Percentage of max supplies that can be produced (using [total IC
- IC for CG] as a base) and traded away by auto-trade (0.20)
* Percentage of produced money that can be traded away by autotrade (0.20)
* Merge trade deals. 0 = do not merge, 1 = merge all active trade deals except
those that cannot be canceled
* Manual trade deals (players only, Diplomacy). -1 = Disable manual trade deals,
[0 to 100] = Offer value threshold - AI returns 0 accept chance if bellow this
* Percentage to over-import when below the desired threshold (0.20)
* Stockpile. Values: > 0.0 - extra import (Percentage) on top of what is needed
when "Stockpile" option is enabled for that resource, else export all other
exceeding resources in order to import more; -1 = export all exceeding
resources; -2 = export all exceeding resources and supplies; -3 = export all
exceeding resources and money; -4 = export all exceeding resources, supplies and
money; 0.30 #0.0
* puppets send supplies and money to masters. 0 - disabled; 1 - send only
supplies; > 1 -send supplies + money (when more then this value).
* Auto-merge trade deals (optional – misc.txt).
* Puppets max pool for oil, energy, metal and rare materials - give all above
this value to the master. Use negative number to set max pool as percentage of
the critical stockpile (for example -1.2 sets the max pool to 1.2 * critical
stockpile). -1.2 #1000
* Multiplier on puppets critical supply stockpile - all supplies above THIS *
puppet's critical supply stockpile can be sent to Master. Used when the previous
setting is above 0.1.5 #1.5
– New modifiers in misc.txt (trade):
* Critical oil stockpile threshold (in days). 30 # 1 month
* Critical supplies stockpile threshold (in days). 15
* Should puppets send supplies and money to masters? 0 - disabled; 1 - send only
supplies (NOTE – only for neighboring countries!) when above the desired
stockpile; > 1 -send supplies + money (when more then this value).0 # 0.
* Puppets max pool for oil, energy, metal and rare materials - give all above
this value to the master. 1000 # 1000

– New trade parameters in misc.txt (“diplomacy” section)


* Relationship hit for cancel of a trade deal. Not used for trades between
allies, puppet<->master, inactive trades or trades with efficiency less then
45%.
* Relationship hit for cancel by players of trade deals that are set as
permanent. Not used for trades between allies, puppet<->master, inactive trades
or trades with efficiency less then 45%.
* Force puppets to join their master's alliance (creating a new alliance if
Master is not already in one). Check alliances each day. 0 – No

– New modifiers in misc.txt (“economy” section):


* Peacetime Manpower Multiplier (multiplied on the other)1.0 #1.0
* Wartime Manpower Multiplier (multiplied on the other)1.0 #1.0
* Daily retired Manpower - percentage of the current MP pool0.0 #0.0
* Military Strength to Total IC ratio during Peacetime for AI countries (do not
build new units if above this ratio). Use -1.0 to disable this.-1.0 #-1.0
* Military Strength to Total IC ratio during Wartime for AI countries (do not
build new units if above this ratio). Use -1.0 to disable this.-1.0 #-1.0
* Military Strength to Total IC ratio for AI major countries (multiplied on the
other).1.0 #1.0
* Stockpile limit. -1 = Disable, else = stockpile for days.-1 # -1
* Over stockpile limit daily loss (percentage of the exceeding resource). 1.0 =
100%.0.0 # 0.0

– New/changed modifiers in misc.txt:


* Wartime Desired Stockpile multiplier - multiplier on the Desired Stockpile for
all resources and supplies when at war 1.0 # 1.0
* New trade deals min effectiveness threshold - do not make new trades if
effectiveness is bellow this value (0..100). Used by auto-trade 45 #45
* Cancel trade deals if effectiveness is bellow this value (0..100). Used by
auto-trade 33 #33
* Stockpile limit multiplier for industry resources (energy, metal, rare
materials). -1 = Disable, else = Desired Stockpile * this -1 # -1
* Stockpile limits multiplier for supplies and oil. -1 = Disable, else = desired
stockpile * this -1 # -1
* Extra import (Percentage) on top of what is needed when "Stockpile" is
selected for that resource. This also increases the Desired Stockpile for that
resource 0.30 #0.0
* Stockpile limit multiplier for industry resources (energy, metal, rare
materials). -1 = Disable, else = Desired Stockpile (unmodified) * this -1 # -1
* Stockpile limits multiplier for supplies and oil. -1 = Disable, else = Desired
Stockpile (unmodified) * this -1 # -1

– New modifiers in misc.txt (trade section)


* Peacetime modifier on desired oil import (it is a function of the max possible
daily consumption which in peacetime is about 10 times more then actual
consumption). 0.15 # 1.0
* Wartime modifier on desired oil import (it is a function of the max possible
daily consumption which in wartime is about 20-50% more then actual
consumption). 0.75 # 1.0
– Improved trade effectiveness recalculation for landlocked countries during war
(trading through neutral countries or ports) and use closest ports between
countries in the calculation. This model can be enabled from misc.txt (“mod”
section).

– New modifiers in misc.txt (mod section):


* Trade Efficiency calculation system and re-calculation interval selection. Any
negative integer is number of days between trade efficiency calculations using
default Armageddon system (-3 = 3 days). Any positive integer is the number of
days between trade efficiency calculations using the new more intelligent but
CPU demanding system. 0 is default Armageddon system, set to 1 day. 5 #0
* Merge and relocate provincial depots to the best province in the area. This is
new and more intelligent but CPU demanding system. 0 - Disabled (use the old
system). Any positive integer is the number of days between areas analyzing
using the new system. 7 #0

New modifiers in misc.txt (economy section):


* Max provincial energy/metal/rare materials depot size. 9999 #9999
* Max provincial oil/supplies depot size. 9999 #9999
* Max Manpower. 9999 #9999
* Desired provincial stockpiles for oil and supplies (needed to supply friendly
units in that area for X days). Used by autoconvoying. 7 #7
* Modifier on convoy transports capacity - higher this modifier is, more
resources could be transported. 1.0 #1.0

– New (modified) option in misc.txt (trade section) - Puppets max pool for oil,
energy, metal and rare materials - give all above this value to the master. Use
negative number to set max pool as percentage of the critical stockpile (for
example -1.2 sets the max pool to 1.2 * critical stockpile). -1.2 #1000
– New modifier in misc.txt (trade section):
* Multiplier on puppets critical supply stockpile - all supplies above THIS *
puppet's critical supply stockpile can be sent to Master. Used when the previous
setting is above 0. 1.5 #1.5
* Auto-trade (and AI) single resource trade deals (only at war when an ally
badly needs a resource/oil/supplies and trade effectiveness is high enough). 0 -
Disabled, 1…100 – Trade deal effectiveness threshold. 0.75 #0
DD17: Tech Tree Part 1
Today and next week we're going to introduce you to our new tech tree, with a good analysis that
I'm sure will help you on your first games.
Be aware that not everything is finalized now so there may be a few changes on the released
product.

Let's start from the infantry tech tree.

As you can see Infantry, Light Infantry and Cavalry start with a 1870 model. This has two reasons:
1. to represent countries that do not have up-to-date technologies at the beginning of WWI;
2. to be able to easily expand the timeline;
You'll see on the other tech trees that many techs have a date before 1914. We hope the modders out
there will appreciate it.

Light infantry represents earlier models of mountain infantry: they move slightly faster than regular
infantry, consume less supplies and are superior in harsh terrain, so they are ideal for colonial
warfare, but they also have low toughness and soft/hard attack. Marines are introduced in 1922
whereas Airborne Infantry in 1938. The first Motorized Infantry tech is introduced in 1935, as
historically the first motorized division were created around this time. Mechanized infantry has to
wait until 1942.
The first Engineer Brigade is introduced in 1911 and better models will also give other bonuses (to
TC and airbase construction for example).
Finally the techs of the Supply/Logistics/Repair branch go from 1910 (Army Logistics) to 1955
(Modern Repair). This branch has been reworked and gives many different bonuses.

Armor and Artillery


Artillery is obviously one of those techs with many models that goes from 1911 (Light Field
Artillery) to 1955 (Advanced Field Artillery), for a total of 14 models. Both Self-Propelled Artillery
and Tank Destroyers are introduced in 1940.
And now, something a bit different from the usual. The Anti-Tank Artillery branch will not create a
new brigade, but instead it will give bonuses to the hard-attack of the Artillery Brigade! So if you
want your Artillery Brigade to be effective against armored units you should research this branch.
Moreover, thanks to our engine changes, the hard-attack bonus is immediate and there's no need for
events to make it happen. We hope you will appreciate it.
Something similar happens with the Rocket and Self-Propelled Rocket branches. Researching
normal rockets will give a bonus to the soft-attack of the Artillery Brigade, whereas Self-Propelled
Rockets will give bonuses to the soft-attack of both Self-Propelled Artillery and Tank Destroyers
brigades.
The Armoured Cars technologies span from 1911 (Prewar Armoured Car) to 1954 (Modern
Armored Car), with 8 different models.
As you can see there are three different branches for the Anti-Air technologies:
• Static Anti-Air, which gives bonuses to the anti-aircraft guns that can built in every province
and to AA naval brigades;
• the usual Anti-Air Artillery brigade, which is introduced in 1918, near the end of WWI;
• the new Self-Propelled Anti-Air Artillery brigade, which is introduced in 1940;
And now, let's talk about tanks! There are a couple of other tech tabs involved, but it's better to give
you the complete picture here:
• first of all, the first Experimental Tank technology is placed in the Secret Weapons tab and
its purpose is only to enable the research of the Super heavy WW1 Tank tech (on the Secret
Weapons tab too): this tech will allow the building of the first model of the Super Heavy
Tank brigade;
• after researching the first two techs from the Secret Weapons tab, on the Armour Tab you
can research the Mid-Great War Tank 1917 tech, which disables the Super Heavy Tank
Brigades and allows the building of the Heavy Tank brigade;
• after that, the Late-Great War Tank 1918 technologies activates the Light Tank Brigade (this
change of brigade types can be confusing but we thinks it's a good and historical depiction
of the birth of tanks as weapons);
• the Post WW1 Tank techs will disable the Heavy Tank brigade and create new models of the
Light Tank Brigade;
• now we should take a look at the Land Doctrines tab: there you will find a tech called
“Armored Division formations”. This doctrines represent the idea of creating Tank Division
instead of Tank Brigades and is necessary for the creation of Light Armor and Medium Tank
Divisions;
• after researching the Armored Division formations doctrine, in the Armor Tab from 1936
onwards you can research the Light Tank Divisions and then from 1939 the Medium Tank
Divisions (which after WWII will evolve in the Main Battle Tank branch);
• from 1939 onwards it will also be possible to research a new Heavy Tank Brigade (5 models,
up to 1955);
• in 1944 there is also a tech to create a new Super Heavy Tank Brigade (to represent the Tiger
II for example), but there will be only this model;

Industry

The Agriculture, Manifacturing and Construction Engineering branches have been expanded to
cover the entire timeline (approximately 1910-1964). The Agricultural techs now give bonus to IC
and production of supplies rather than manpower. The Construction Engineering techs gives
bonuses also to the construction of Nuclear Reactors and Rocket Test Facilities.
The Census Tabulating Machine tech now is introduced in 1897 and this branch also activates and
upgrades the Fire Control Naval Brigade. The Encryption/Decryption branch is also extended to
cover the DH timeline.
The Radar branch starts with the 1936 tech Basic Decimetric Radar Warning Sites which enables
the new Air Scramble mission. Later techs of this branch activate the Radar Naval Brigades (and
enable the research of a new secret tech!).
The new Medicine branch, which starts in 1910, increases the quantity of available manpower
(relative manpower).
Finally, the new Specialised Equipment branch gives bonuses to the land units in frozen, tropical,
desert or rough terrain.
This is not yet set in stone, but there will probably be decisions linked to these techs. For example
researching winter equipment for both infantry and vehicles will enable the “Production of Winter
Equipment” decision that will give even better bonuses to your troops (given enough time). Beware
that it will be an expensive decision that should not be taken lightly!

Land Doctrines

First of all, there is a new branch of land doctrines dedicated to the Great War. There are two
different path, the Leading by Orders Path and Leading by Task Path. Both of them start before
WWI (in 1907) and lead to different post-WWI tech (in 1923), with the Specialized-branch tactical
experience and Cross-branch tactical experience techs.
Moreover, the 1926 Post Great War Unified Doctrines is a tech alternative to the whole WWI
branch. Basically a minor country can choose to follow the whole WWI path and research all those
doctrines or research only the Post Great War Unified Doctrines tech which gives almost the same
bonuses (researching the whole WWI branch gives better bonuses, but is obviously more
expensive).

Now let's take a look at the WW2 and post WW2 path. As you can see there are 5 different paths:
• Firepower Focus / Superior Firepower Path (US)
• Defensive Focus / Grand Battleplan Path (UK, FRA)
• Mobility Focus / Blitzkrieg Path (GER)
• Manpower Focus / Human Wave Path (SOV)
• Light Infantry Focus / Minor Countries Path
The Grand Battleplan Path after World War II is united with the Superior Firepower Path (with the
Modern Branch Interoperability tech). The Light Infantry Path post WWII gives access to only
some of the common techs of the other 3 main paths (Night Vision Tactis, Aircavalry Doctrine,
Special Forces Focus Doctrine).

The Armor Division Formation (necessary to activate the Light and Medium Tank Division, as
explained before) can be activated by different land doctrine techs from different branches. For
example in the Superior Firepower Path, it's the 1940 tech Integrated Support Doctrine that enables
the research of the Armor Division Formation, whereas in the Blitzkrieg Path it's the 1937 tech
Spearhead Doctrine that enables it.

And to close this Dev Diary, let's take a look at the extended tooltip: very useful to discover
required and unlocked technologies!
DD18: Tech Tree Part 2

Aircraft

The first unarmed airplanes for reconnaissance are introduced in 1910 and they soon evolve in the
first real Interceptors and MultiRole fighters during the Great War. Naval Torpedos Brigades are
also activated and upgraded by the Interceptors and the Multirole branches. There are 16 different
models for Interceptors and 13 for Multi-Role Fighters.
The first Tactical Bombers are introduced in 1911 whereas the first generation of four-engine
bombers are introduced in 1914 (and will evolve in Strategic Bombers and eventually
Intercontinental Strategic Bomber in 1958). There are 13 different models for Tactical Bombers and
10 for Strategic Bombers.
The first Naval Bombers are introduced in 1918 (9 models), the Air Transport Planes in 1926 (6
models) and the Close Air Support in 1934 (8 models).
We've also introduced the Seaplane as a new Naval Brigade which increases the reconnaissance
value of a ship. They are introduced in 1911 whereas the first Carrier Air Group is introduced in
1922 (9 CAG models).
Air Doctrines

The first Air Doctrines are introduced before the Great War, with the Powered Flight Concept
followed by the Reconnaissance Plane Utilisation, the Air Duel Doctrine and the Bombdropping
Doctrine.
With the start of WWI these doctrines are refined and evolve with the introduction of the Close
Airsupport Concept, the Naval Aerial Support and Maritime Attack Concepts and obviously the
Flying Circus Doctrine.
During the interwar period there are some doctrines that will lead you to the WWII doctrines which
are the known techs you're already familiar with, take a look at their names and you'll see. Even if
the names are familiar, they are not the same techs as they may have different bonus than what
you'd expect.
For the beginning of the cold War, we've created whole new branches of air doctrines. They are two
paths for the post-WWII techs for interceptors and multirole fighters:
- Defensive Air Superiority (Warsaw Pact and Asian States Doctrine)
- Offensive Air Superiority (NATO / Israeli Doctrine)
whereas for Tactical Bombers and CAS the following paths are available:
- Bomber priority (Target Destruction Doctrine)
- CAS priority (Land Units Destruction Focus, with focus on Jungle Operations)
There are also two different paths for Strategic Bombers and Missiles:
- Strategic Bomber Focus
- Strategic Missile Focus
The Airborne Assault and Naval Bombardment doctrines do not have differentiated paths, but they
both have their own post-WWII doctrines.
Naval

Destroyers starts as Torpedo Gunboats in 1885 and evolve into Missile Destroyers in 1955 (10
models).
Light Cruisers start in 1881 and evolve into Missile Light Cruisers in 1953 (9 models).
Heavy Cruisers start as Armored Frigates in 1873 and evolve intoMissile Heavy Cruisers in 1953 (9
models).
Battlecruisers are introduced in 1906 and evolve into Modern Battlecruisers in 1951 (only 6
models).
Battleships are introduced in 1874, become Dreadnoughts in 1904 and finally evolve in Modern
Battleship in 1947 (10 models). The Super Heavy Battleships are introduced in 1937 and have only
2 different models.
The first Converted Carrier are introduced in 1922 and evolve in the standard Carriers (8 models)
whereas the Seaplane Carriers are introduced in 1912 and evolve in the Light Carriers (7 models).
Submarines are introduced as Dive Boats in 1896 and evolve in Modern Submarines in 1955 (10
models).
There are 4 different models for Transport Ships (this will probably be subject to changes).
In this tab you can also see the ASW Naval Brigade (6 models) and the Naval Torpedos branch
which increases the Convoy Attack and Naval Attack of Destroyers, Submarines and sometimes
Naval Bombers (again, the bonus is immediate and no events/annexations are needed).
Naval Doctrines

The first Naval Doctrines are the Engagement Theories introduced in 1890. This branch will unlock
most of the other branches.
The Engagement Tactics branch is divided into two separated, mutually exclusive paths: Fleet-in-
Being and Indirect Approach. I guess you might have expected that.
Now, below Engagement Tactics you can find the Carrier Tactics, introduced in 1925. This is
divided into two paths too, but they are not mutually exclusive, you can research both. The Scouting
Focus path focuses on Carriers as part of a naval task force and the engagement with enemy fleet,
whereas the Aerial Supremacy focuses on the CAG and the missions it can perform (so for instance
it grants increased efficiency for Port Strike and Airbase Strike).
The Naval Supremacy branch is focused on the defence of convoys and therefore it gives bonus to
convoys, ASW and Naval Scramble. On the other hand, the Naval Interdiction branch is focused on
Convoy Raiding and Submarine Warfare.
Finally the Amphibious Warfare branch introduced in 1916 gives bonuses to Amphibious Assaults
(well, obviously! ) whereas the Logistic Support branch introduced in 1914 increases the range of
ships.
Secret Weapons

We've already talked about the first WWI Experimental Tanks in the previous Dev Diary. The other
Secret Technologies that can be discovered in this tab are: Rocket Interceptors, Flying Bombs and
Flying Rockets, Electronic Computers, Semiconductors and Transistors, Nuclear Bombs, Ships with
Nuclear Propulsion (Battleship, Super-heavy Battleships, Heavy and Light Cruisers, Submarines
and Carriers), Air Cavalry Divisions, Air-to-Surface Missile (ASM), Surface-to-Air Missile (SAM),
Mobile Mines and Teletanks. The Mobile Mines and Teletanks techs do not activate a new unit, but
give bonuses to Engineering and Light Armor Brigades respectively.

To close this Dev Diary, here are some information related to the new technologies and modding:
- added 10 new research types: avionics, munitions, vehicle_engineering,
carrier_design, submarine_design, fighter_design, bomber_design,
mountain_training, airborne_training, marine_training;
- Added 20 more Research Type (components): Maneuver Tactics, Blitzkrieg
Tactics, Static Defense Tactics and Medicine, rt_user_x (x = 1..16)

# Use new Technology page layout - allow for more techs and better view. 0 - use
vanilla; 1 - use new
1 #0 (Darkest Hour uses the new Technology page layout)
# Max active tech teams at a time (cannot be more then 50). Note: New Technology
page layout will be auto-set for values above 5!
5 #5
# Min active tech teams at a time (available teams regardless of current IC)
1 #1
# Required IC for each tech team above the min
20 #20

And of course, we've done a complete overhaul of all the tech teams for every nation, so expect new
and different tech teams!
DD19: Generic Decisions
Hello everyone, today we're going to talk about a new concept of Darkest Hour: the Generic
Decisions!

As the Head of State and leader of you country, you have the power to take some important
decisions that affect different aspects of your nation. The generic decisions (their name due to the
fact that they're usually not country specific) can be divided into 3 different categories:
1. economic decisions;
2. decisions regarding your domestic policy;
3. military decisions;

Before taking a closer look at the generic decisions, please let us explain why we decided to
introduce them:
• first of all, we wanted you to feel like an Head of State that has to take important decisions
for his country: you're at the helm and you have to guide your country through these dark
times!
• we also give to give more opportunities to medium and small nations: obviously they will
have a harder time to take some of these decisions, but they will help them grow and fill the
gap from the major powers!
• since these decisions usually require a good quantity of money, now money is a more
important resource, especially since it's also a good idea to invest money in espionage, at
least to have a better defense against the enemy;

So, let's see what important decisions you can take to lead your countries to victory!
Economy
• Issue Currency: you can print new money if you're don't have enough; however, this move
has the negative effect of increasing inflation which has the concrete effect of hurting your
industry;
• Money Devaluation: this is the reduction in the value of a currency with respect to those
goods, services or other monetary units with which that currency can be exchanged. As a
consequence, your economy would be more competitive in foreign markets, slightly
boosting your industry;
• Public jobs: this is an expensive program that aims at creating useful job for unskilled men.
Even if expensive, this will result not only in reducing the unemployment and therefore
pleasing the population, but also in creating new companies under the control of the
government; free market economies cannot take this decision;
• War Bonds: war bonds are debt securities issued by a government for the purpose of
financing military operations during times of war. War bonds generate capital for the
governments which therefore usually appeal to patriotism and conscience to get its citizens
to buy war bonds; this decision is available only for some specific countries;
• Ersatz Conversion: a shortage of rare materials can be overcome thanks to this process: the
Ersatz Conversion is a costly process to produce rare materials in times of need; this
decision is available only for some specific countries;

Domestic policy
• Press Censorship: democratic countries can enforce censorship in the press in times of war
in order to hold back information that may harm the government; this also allows the
government to exert control over the population and prevent free expression that might
foment rebellion;
• Invest in National Infrastructures: by investing in infrastructures, you're going to extend
your road and railroad networks; this is will not only help and please the population, but it
will also increase your capacity of transferring men and supplies for the Army in case of
war; you will be able to choose between a limited, a comprehensive and a large investment;
free market economies cannot take this decision;
• Invest in National Research: by investing in your universities and research centres, you
will provide your scientists with funds and state-of-the-art tools, thus increasing their ability
to discover new technologies; you will be able to choose between a limited, a
comprehensive and a large investment; free market economies cannot take this decision;

Military
• Purge the Army: forcing the disloyal and unreliable officers in your army to resign will
make sure that only the better and most trustworthy officers can lead your soldiers; this will
raise their morale, even if the public opinion will not like it; this decision can be taken only
by authoritarian governments (and not by Soviet Union if they've already taken the Great
Purge decision);
• Wargames: you can train the officers in our Army thanks to use of wargames like
Kriegsspiel; the simulations of war will make them increase their skills;
• Allow Foreign Volunteers: democratic countries can allow foreign volunteers in their army,
and thus increase the number of recruits and the quantity of available manpower; however,
these foreign recruits may have troubles integrating in their armies and this will lower the
morale of their units;
• Purchase Licensed Unit: purchasing licensed units means equipping your armies with
vehicles sold by other countries instead of produced by your own industry; this is a quick
solution to equip new units with materials that your industry is not able to build or doesn't
have the time to; this decision is not allowed for major countries (and for countries with
large armies) and will allow the purchase of a limited amount of motorized divisions, armor
divisions, interceptors wings and tactical bombers wings;
• War Propaganda: the aim of war propaganda is to influence the attitude of your population
toward the war; this will make them stand united to support the government and endure the
hardness of war and some of them will also be convinced to join the army;

And now a screenshot of a generic decision, with South America in the background.
Oh, the "Reform Military Service" decision that you can see there will be introduced in a further
DD as our mobilization system is based upon it.
DD20: Production screen & AI
It is time to talk about our enhacement to the Production screen and especially to the production
AI!
Here's a screenshot that will help you understand the changes (the red numbers are not in the game,
they're there to help us explain the changes):

So, let's start with the enhanced sliders. The first checkbox (1) simply enables or disables the AI
control over the production. You'll want this enabled 99% of the time.

The first set of checkboxes (2) are a further tuning to enable or disable IC allocation for the AI. So
if it is disabled, the AI will never allocate IC on that slider.
The second set of checkboxes (3) are very important and allow prioritizing some sliders over others.
In particular, the sliders are divided in two groups. It is possible to to prioritize Consumer Goods
over Supply Production and viceversa (in the screenshot, CG are prioritized). The AI will then use
this choice in combination with the stockpiles. For example, if the supplies are above the critical
thresold and CG are prioritized then more IC will be allocated to on CG (to produce money)
whereas Supply Production will get only the IC necessary to not lose supplies. On the other hand, if
Supplies are below the critical threshold, they still get some IC in order to reach the critical
threshold (as in the screenshot). Production, Reinforcements and Upgrades are considered another
group: in the screenshot above, Production and Reinforcements are prioritized over Upgrade. Since
Production is prioritized, it gets the necessary IC (if there is enough!). What's left is given to
Reinforcements and, if there's still some IC left, it is given to Upgrades. This system is easy to
master and will allow you to instruct the AI on how to allocate the IC, giving you enough control
without turning it in micromanagement hell. If for example you want money or supplies because
you want to enact a particular decision, you can prioritize CG or Supplies for a while until you've
reached the wanted quantity and then change the priorities.

Let's take a look at the Production Queue now.


First of all, it is possible to extend or shorten the serial production of units and building (4): in the
screenshot above, the Graf Spee would have been completed on January 7th 1936 but with a click I
extended the serial production of another Deutschland class cruiser (which will take 3 more years).
There are three shortcuts available, as you can see from the tooltip displayed above: Shift will
extended the serial build by 5 units, Control by 10 and Shift + Control to the maximum allowed
number of units (usually 99). Moreover the completion date of the current unit/building in the queue
for serial queues is now displayed (see red line).
Next to + and - buttons to extend or shorten the serial production, there is a checkbox (5) which
enables or disables the auto-upgrade of units. This means that if the checkbox is selected, then at the
completion of the current unit the next one will be built as the latest possible model (at the expense
of the gearing bonus). So for example, if the checkbox of the Graf Spee (Deutschland class cruiser,
CA model 5) is selected, at its completion on January 7th a new unit would be built; however, it
wouldn't be another Deutschland class cruiser, but the more advanced Admiral Hipper class (CA
model 6). This choice however would reduce the gearing bonus so instead of October 1939 it would
be completed on January 1940.
Lastly, since now the production queue is a bit more crowded, we don't want the players to cancel
the production of units because they clicked on the wrong button. So pressing on the cancel button
(6) a window will appear to confirm or cancel the deletion (as you can see in the bottom right of teh
screenshot).

As usual, we've added new tooltips to make it easier for the player to find the information he needs.
Here's an example:

Moreover, a tooltip on the unit or on the brigade icon will let you know exactly which model you're
producing. So for example you'll get information on the Deutschland class cruiser or on the Artilley
model you'll build. And a tooltip on the value of a unit will let you know exactly which value it is.
Now, let's talk a bit about the improvement in the Production AI. In fact, the real improvements
here are in the engine: the way it handles priorities and most importantly the way AI works with
sliders and utilizes its IC. It is greatly improved an enhanced, making the AI country stronger as
they are now able to make a better use of their IC and thus posing a better challenge to the human
player. Here are some examples:
• now IC is used only by units in the queue that requires Manpower, so when there is no
Manpower the AI will not allocated IC to units that require MP while keeping them in the
queue; this alone is a great improvement for the AI;
• now the AI will not insert countless divisions on top of the list filling up the queue way
beyond its IC and never completing anything;
• the AI that allocated IC to Supply production now take into account trades, extremely low
supply stockpile and maximum consumption;
• the supply production is halted if the Supply stockpile is over the desired supply threshold;
• new land units for production are prioritize only when its completion time is less then the
unit/building on top of the list;
• new console command: “unitinfo TAG/world” that saves in savedebug.txt all units by type
(deployed and in production) and also oil and supply estimated consumption (by own or
allied troops) for a country (TAG) or for all existing countries (world);
• fixed a bug on production cost calculation for units with 5 brigades (5th brigade was for
free);
• fixed a bug on production cost calculation – policy bonus was applied twice for brigades;
• allowed up to 10 items to be viewable at once in the production queue (was 8);
• fixed many AI bugs with production of provincial AA:
• AA_batteries = atwar and not_atwar are correctly read from AI files now (only
no/yes were read before);
• AA_provs was not used at all. Fixed so AA will be built only on provinces in that
list;
• max_AA_level was not used at all. It is taken into account now;
Here's another screenshot of the production screen, this time from 1914! See you next week!
EDIT (MartinBG)
We forgot to mention that the line upgrade/change option is fully moddable as it is usual for DH:
# Enable production line edit (auto-upgrade and serial builds lengths): 1 -
Enabled, 0 - Disabled
1 #0
# Gearing bonus loss per level of upgrade for unit. Values 0.0 (0% or no gearing
bonus lost) to 1.0 (100% or all gearing will be lost)
0.1 # -10% gearing bonus per level of upgrade
# Gearing bonus loss per level of brigade/attachment (added for every upgraded
br./att.). Values 0.0 (0% or no gearing bonus lost) to 1.0 (100% or all gearing
will be lost)
0.05 # -5% gearing bonus per level of upgrade

Here is another production panel screen showing some tool-tips, CTRL/Shift shortcuts in use as
well the correct unit stats (Org/Morale etc.) which use all current modifiers for the country so you
would know exactly how good this unit will be even before ordering its training.
DD21: Mobilization system
Today, we’ll introduce to our Mobilization System.

Since the biggest task in creating a game is balancing it, the issue of manpower had to be carefully
thought. Most previous systems using the Europa engine were more or less arbitrary for that reason,
something about which we felt uneasy. Deeming that using real-life values and concepts could help
(after all, a game is a – rather crude – model of the real world), we started to work on a new MP
system.

The first step was to change the MP distribution on the map. It now follows the actual distribution
of the world population around 1936 (at least between the countries, inner distribution is sometimes
less accurate, depending on the sources we found), something that can be easily modded with the
scenario files or the province.csv file. To make things simple, we used the ratio 1 on-map MP =
1,000,000 inhabitants IRL.
Once this was done, it was possible to set realistic recruitment and mobilization systems. Once we
logically agreed that 1 in-pool MP (the manpower actually used to make units) should stand for
1,000 men, we could make calculations to set realistic growth rates, and MP availability.

Nations of Darkest Hour’s era were mostly characterized by highly militarized societies. Many of
them enforced a mandatory military service, with reserves liable to mobilization, and those which
did not generally had an elaborated system of territorial forces, to make sure they could quickly
have a strong military force at hand in case of war. After many thoughts and debates, we decided to
take inspiration from this model.

For that purpose, we used the now defunct “professionalism/conscription” slider. Now called
“mobilization/demobilization”, it reflects the level of militarization of a country, ranging from
having no armed forces at all, to a fully mobilized population. Each step reflects a particular
military system:
1. Demilitarized: the country has no standing army, its defense generally relies only on police
forces or militia (i.e. Costa Rica).
2. Fully professional army: the country has a professional force of volunteers, it can build any
military unit (i.e. USA at the start of the game).
3. Selective conscription or part-time military service: only a part of a class of age is
incorporated for military service (i.e. USA after the Selective Service Act), or the whole
class but for short instruction periods (i.e. Switzerland).
4. Conscription – normal term: the situation of most European countries in 1936. A whole class
is incorporated for, generally, 1 year.
5. Conscription – extended term: the same as the previous but with a longer term – typically 2
years, (i.e. Germany from 1937 or 1938).
6. Conscription – long term: conscription of a whole class for 3 years (i.e. France in 1913) or
even longer (but in that case it was often coupled to a selective conscription, i.e. USSR or at
least Tsarist Russia IIRC).
7. Partial mobilization: often an immediate pre-war measure. Classes that had just
accomplished their military service term are recalled under the flag, as they are generally
liable for such a thing for a few years after the end of their term (in France it was called
“availability” and lasted three years). Some reserve units are activated, reservists are
sometimes called back too.
8. General mobilization: the standard wartime measure of that era. All men between 20 and
45/50 are mobilized (though in practice many remain in the civilian life, at least for some
time), all reserve units are activated.
9. Extended mobilization: a further effort to face the bloody needs of war. Men previously left
back in their factories are transferred to the front, age limits for military service is often
pushed to 18-50/55 years old.
10.Total mobilization: the supreme sacrifice, the last effort to put men on the battlefield. Every
man fit for military service is mustered in, with teenagers of 15/16 and old men up to 60 or
65 also incorporated – often as a militia.

Please note that daily MP growth is now extremely slow in peacetime. In any army, while young
men are regularly conscripted, others complete their active service duty and return to civilian life.
Therefore, the actual growth of militarily available men in peacetime is proportional to the growth
rate of the overall population – for the sake of simplicity we put it at the average, rounded value of
world population growth between 1920 and 1940: 1% per year, divided between 365 days… a very
low, but realistic growth, indeed.

The principle is that, when you need MP to expand your military and recruit new units while at
peace, you must extend the duration of the military service. By doing so, you’ll receive a new class
of age, that is, a small part of your male population that will be conscripted in your military – thus
being available to form new units (in exchange for some dissent of course). Thanks to the new on-
map distribution, the amount of manpower given by this will be proportional to the country’s
population. Also, the proportions used for these calculations are taken from data about the mid-30’s
armies, ensuring a more realistic system.

To accomplish this we improved the existing manpowerpool command: now it can add a percentage
of the total manpower available in all the controlled national provinces:
Improved manpowerpool command – added optional [when = 1/[0]] switch. When set 1
add the MP as percentage (value = x.x) of the MP in all controlled national
provinces.

So for example passing from one-year conscription (level 4) to two-years conscription (level 5) will
give you a quantity of manpower equal to 0.45% of the population of the national provinces under
your control.

To avoid adding complexity to the engine, these reforms of the military system are driven by
decisions, rather than by moving the slider directly. The generic decision will be available as soon
as you’ll run low on MP. In peacetime, you can’t go beyond partial mobilization. General
mobilization was an exceptional measure, only taken in case of serious crises, and the “mobilization
is not war” principle most often proved delusional, as in 1914. Thus, except in specific situations
simulated by events, you need to be at war to enact general mobilization and further steps.
Since the mobilization-demobilization slider should only be moved by events, we added the ability
to prevent a user from moving a slider:
Added another option to policy_effects.csv for each policy slider: MANUAL_OR_
BY_INFLUENCE _MOVES (0 – no slider moves are possible except by events, 1 –
manual slider moves are allowed too, 2 – moves by Influence are allowed too)

Modders will probably appreciate this possibility for their own projects.

But what can we do with all that MP? In real life, countries that mobilized their men at war often
formed reserve divisions with them, generally in a few weeks. Though inactive, those divisions
were generally in actual existence, merely as an administrative. Because in DH we previously chose
to extend build times for divisions to a realistic level, we included these reserve divisions in the
starting orders of battle. They appear severely understrength (to reflect their reserve nature) and
with outdated equipment (reserve divisions were generally armed with older weapons). It’s up to the
player/AI to reinforce these divisions once they mobilized.
This can be done thanks to a new command that lets you set, add or substract strenght to a unit and
take/return manpower to the pool. Here's the code:
Added new event command to change unit’s current STR (MP taken/returned from/to
the pool). Applies to unit in redeployment or sent as expeditionary forces too:
command = { type = strength which = all/land/air/naval/unit type when = 0/1
where = 0/1 [org = x.xx] value = +/- x.xx }
which - specifies unit type(s)
when - 0 – set STR value (if value = 0.0 then the this unit will be
instantly deleted), 1 – add to STR value (final STR cannot be less then 0.01 or
1% and more then max unit STR, usually 1.0 or 100%)
where - 0 – take/return MP from/to the pool. If there is not enough MP then
the command is skipped. 1 – Ignore MP pool (MP not taken/added to it).
value - 0.0 (0%) to 1.0 (100%). Can be negative if when = 1
org - Percentage of the current ORG that should remain if when = 0 (0.0 –
set ORG to 0%, 1.0 – keep current ORG unchanged. Default is 1.0. NOTE: This
value is modified by the actual STR change for each division). Set ORG to
percentage of max. Org if when = 1

It is a very powerful command, with many uses. First of all, it can add manpower to units and
subtracts it from the manpower pool and viceversa. Units are processed from a sorted list (ARM,
MECH, MOT and some others get priority; reinf. priority check-box is also taken into account) one
by one (some take MP, others could return MP, so the list is always processed to the end even if the
current MP is 0), so if you have enough manpower for only 10 divisions out of 50, then only 10 will
be reinforced. Moreover if a unit receives strenght it can lose organization (to simulate the arrival of
reserves), but this change is proportional to the strenght added: a division that receives only 10% of
its strenght will lose half the organization lost by a unit which receives 20% of its strenght.
Moreover, setting strenght = 0 will delete the units, so with a single command you can instantly
delete for example all the militias or all the air units of a country.

Here are some examples of how to use this new command:


action = {
name = "Set STR to 5% to land units"
command = { type = strength which = land when = 0 where = 0 org = 1.0
value = 0.05 } #org unchanged
}
action = {
name = "Set STR to 100% to land units"
command = { type = strength which = land when = 0 where = 0 org = 0 value
= 1 } #org reduced proportionally
}
action = {
name = "Set STR to 5% to naval units"
command = { type = strength which = naval when = 0 where = 0 org = 1.0
value = 0.05 } #org unchanged
}
action = {
name = "Set STR to 100% to naval units"
command = { type = strength which = naval when = 0 where = 0 org = 0 value
= 1 } #org reduced proportionally
}
action = {
name = "Set STR to 5% to air units"
command = { type = strength which = air when = 0 where = 0 org = 1.0 value
= 0.05 } #org unchanged
}
action = {
name = "Set STR to 100% to air units"
command = { type = strength which = air when = 0 where = 0 org = 0 value =
1 } #org reduced proportionally
}
action = {
name = "Set STR to 5% to all units"
command = { type = strength which = all when = 0 where = 0 org = 1.0 value
= 0.05 } #org unchanged
}
action = {
name = "Set STR to 100% to all units"
command = { type = strength which = all when = 0 where = 0 org = 0 value =
1 } #org unchanged
}
action = {
name = "Delete all submarines units"
command = { type = strength which = submarine when = 0 where = 0 org = 0
value = 0 } #org unchanged
}
action = {
name = "Add 5 STR to land units"
command = { type = strength which = land when = 1 where = 0 org = 1.0
value = 0.05 } #org unchanged
}
action = {
name = "Remove 10 str from all land units"
command = { type = strength which = land when = 1 where = 0 org = 0 value
= -0.1 } #org unchanged
}

That's all for now, but I'm sure you'll have a lot of questions about this, so feel free to ask them!

Here are a couple of screenshots showing how UK can increase its conscription level:
DD22: Countries Release and Rebel Systems
Today, we’ll introduce to our the changes and improvements that we made to the countries release
and rebel systems.

First of all, we got rid of some hard-coded limitations to the automatic release system:
• all government types can release puppets (previously only Democracies were allowed to
release countries);
• puppets can be released at war too, but with reduced chance (previously that was allowed
only in peace);
• removed requirement that no Axis countries should exist;
• fixed a bug preventing release of countries with Communist and Fascist intrinsic_gov_type
(set in Revolt.txt). Such countries can be released from only by Communist and Fascist
countries. Democratic countries (no intrinsic_gov_type set) can be released by any
countries.
And then we started making a few changes:
• AI can release as puppets only countries specified into its liberate list. Liberate chances are:
15% in peace, 10% in war, 5% for colonial countries;
• removed dissent hit for the AI from country releasing;
• only one country can be released at a time (checked every few days);
• added new AI parameter – liberate_nation = { }. It is similar to liberate = { }, but determines
which countries the AI is going to relieve from puppet status (give them independence);
These changes are optional, we've added a new parameter to misc.txt (“ai” section):
- Use new AI release rules – all countries can release puppets even when at war.
1 – Yes, 0 – No

Please note that now it is also possible to negotiate occupied, and not only owned provinces with
your allies.

And now, let's take a closer look at revolt.txt. We've added a few useful parameters:
• added countries list that can liberate that country (no other countries can liberate it): country
= { TAG1 TAG2 … TAGx };
• added a list of countries that prevent this country creation if any of those exist at the
moment: NOT= { TAG1 TAG2 … TAGx };
• added a parameter that prevent a country from being liberated (unless it revolts or is given
independence by event): liberate = no;
• added a list of claims that populates claimedprovinces list: claims = { PROV_ID …};
• min = X: allows release if at least X provinces of minimum list are controlled by releaser
country. By default (no entry or min = -1) it is equal to provinces in minimum list;
• min_extra = X: allows release if at least X provinces of extra list are controlled by releaser
country. By default (no min_ extra entry) it is 0;
• value = X.X (0.0 – 1.25): used by the old release model (when no min or min_extra are
defined). When “score” is above that value the country will be available for release. By
default (no value) it is 0.51.

And now a few words about the country release logic. First of all, we kept the old release model
which used a default score of 0.51. We've made this value moddable in revolt.txt and we've made a
few change and bug fixes to improve this old release model:
• new country capital is counted even if it is a core for the liberator (gives +25% chance for
liberation);
• non-controlled provinces can be used to trigger liberation even if all other provinces are
cores for the liberator
• a country will be available for liberation if it has at least 0.51 (can be changed in revolt.txt –
see above) final score (claims, cores and current capital excluded). Capital province gives
0.25 and (available minimum provinces / total minimum) provinces gives the rest;
• liberation takes into account liberator’s national and claimed provinces (these should not be
transferred to the liberated country);
• on liberation claimed by the new country provinces will be also seceded if these are not
claims, cores or current capital of the liberator and if they are owned (not just occupied);
We decided to keep the old model for compatibility reasons, but we've also also introduced a new,
more flexible model, based on the min and min_extra parameters that we added in revolt.txt.
• if a country owns or occupies a province which is a core for one of its allies (and is not a
core of a claim for the owner/occupier), it will automatically secede that province to its ally
over time;
• a country can be liberated if at least X provinces (where X is the min = X parameter set in
revolt.txt) from it's minimum = {} list are owned or occupied;
• no countries will be released if any of the provinces they need changed hands in the last
XXX days (set in misc.txt);
• if minimum list is empty, but extra is not, then extra list will be used in place of the
minimum. Otherwise extra list is not used.
• rebels still require all provinces in minimum = {…} list to be controlled by them to create
the country and at least one province must be controlled for at least XXX days (set in
misc.txt – this was hard-coded to 3 months);

We've also made quite a few changes to the rebel system. We've already introduced some of them
before, but we're always working on this, so don't be surprised if we add a few more tweaks before
the release.
• rebels army composition - chance for infantry over militia: 0 - only militia, 100 - only
infantry, 50 - 50%/50% and so on (new modifiers in misc.txt - mods section);
• rebels army tech level, based on the available model in the country that controls the province
(new modifiers in misc.txt - mods section):
• -1: only model 1
• 0: only the Latest model
• other positive values: random model in the range from (latest model - THIS) to
(latest model);
So, for example if the controlling country has infantry model 6 as its most advanced model
and in misc.txt we set value 2, the rebel unit will be assigned a random model in the range 4
- 6 (from latest model minus 2 models to the latest model). We hope it's clear enough, please
ask if you have doubts.
• revolt risk is now tied to province manpower: introduced max base (unmodified) revolt risk
(optional, set in misc.txt);
• higher chance to rebel next to rebellious province;
• occupied provinces have higher rebel chance too;
It might be worth to mention here that we also fixed a bug with lost air units on civil war outbreak
(destroyed all air fleets located on revolted provinces): air units will now switch side on air base
captured by revolted/regular ID countries.
In the first Dev. Diary, we said that Darkest Hour is a game by fans for the fans and that we wanted
to stay true to the community. Well, this week we've seen a few posts that supported the idea that
partisan activity should be dependent on the terrain type. We liked the idea and we decided to make
this completely moddable, to let you adjust the values to your heart's content.
Here's the complete list modifiers related to rebels that we've added to misc.txt (“mods” section):
- Rebels army min. STR on creation: 1.0-100.0 – 100.0 #100.0
- Rebels army max. STR on creation: 1.0-100.0- 100.0 #100.0
- Rebels ORG regain (including when in combat) - 0.2 #0.2
- Extra bonus for rebelling for every rebel controlled neighboring province - 5
#0
- Extra bonus for rebelling for occupied enemy provinces - 5 #0
- Extra rebel bonus for mountain terrain - 0 #0
- Extra rebel bonus for hill terrain - 0 #0
- Extra rebel bonus for forest terrain - 0 #0
- Extra rebel bonus for jungle terrain - 0 #0
- Extra rebel bonus for swamp terrain - 0 #0
- Extra rebel bonus for deserts - 0 #0
- Extra rebel bonus for plains terrain - 0 #0
- Extra rebel bonus for urban provinces - 0 #0
- Extra rebel bonus for provinces with Air or Naval bases - 0 #0
- Return rebellious province to the original owner after X months if there are
no rebel armies into the province anymore. - 30 #1000000 (never)

So, to sum up the content of this Development Diary, what you really need to know is:
1. we do not need events anymore to recreate post-war countries, the automatic release of
nations can take care of that on its own;
2. rebels are stronger now (infantry, latest models, organization regain, revolts spreading to
neighbouring provinces, etc.);
3. all is 100% moddable and fully optional. as always;

See you next week!


DD23: New Map 2.0 and Improved Logs
We've already introduced our new Map back in Dev Diary 2, on September 20th 2010 (it feels like a
lifetime ago!). Don't worry, we didn't decide to use another map, that's our map and we'll keep using
it. To be more precise, we've made a few changes in these past few months (some thanks to your
feedback), but it's only a few provinces here and there, nothing major. What we're going to
introduce now is a new, innovative improvement to our map: we added topographic layers!

As you probably know, there are 4 zoom levels in Darkest Hour (between whose you can switch
with the mouse cursor by the way). Here's what we've added:
• Zoom level 1: this is the closer zoom level, no changes here;
• Zoom level 2: this level shows topographic ocean with plain land (so that province names
can still be easily read);
• Zoom level 3: this level show both topographic ocean and topographic land, with slightly
wider country border and without black edge; the province names have been removed;
• Zoom level 4: this is the higher zoom level and shows both topographic ocean and
topographic land, without both province and country borders;

I have been trying to get ewphoenix123 to tell us a bit more about the new map, but it became
pretty obvious soon that what he can tell is probably too technical and boring for most of you. And
if we cut it down then it won't be not detailed enough to satisfy those few out there that are
interested in map modding.
Therefore as images are worth more than words, here we go, a picture from each zoom level!
Zoom level 1
Zoom level 2

Zoom level 3
Zoom level 4

We're always working on improving Darkest Hour and we're happy to have been able to introduce
this innovation since the release of DH! We hope you'll appreciate it!

And now, on a lighter note, something that will be appreciated by a far more restricted crowd
(which won't be disappointed anyway): Improved Logs.
We've added a new parameter in setting.cfg, which allows you to choose the level of debug written
in the file savedebug.txt:
0 # Extra debug logs (savedebug.txt): 0 = disabled, 1 = enabled, 2 = enabled +
extra map statistics

Level 0 is the default level used by the players: not a lot written at this stage, so gameplay won't be
affected in any way.
Level 1 on the other hand will write a comprehensive list of information, but not many regarding
the map. A decrease in performance can be noticed, so you should use this setting only to found
problems or check for possible mistakes. It's very useful: for example thanks to this the Kaiserreich
Team was able to find many wrong minister traits in their files, with a lot of misplaced ministers
traits or ids. Here's an example on the kind of informations you can find here:
Reading unit model files...{
infantry ('db\units\divisions\infantry.txt'): 18 model(s) loaded (0 to 17).
...
}
Loading minister personalities...
The generic minister personality is loaded and set.
Loading minister personalities DONE. 103 personalities loaded.
Calculating minister personality values...{ ... }

Reading distances from map\map_1\airdist.tbl... Done! (2760 provinces read in 16


ms)
Reading map\map_1\navaldist2.tbl... Done! (1378 naval provinces, Read distances
= 1898884)
Loading Ministers (Mods\Darkest Hour Full\db\ministers.txt)
{
Mods\Darkest Hour Full\db\ministers\ministers_afg.csv
...
}
Loading Leaders (Mods\Darkest Hour Full\db\leaders.txt)
{
Mods\Darkest Hour Full\db\leaders\afghanistan.csv
...
}

Parse events file: Mods\Darkest Hour Full\db\events\AI\AI_GER.txt...{


Loading event #3003001...
...
}

Scenario Validation (provinces)...Done. No errors found.

Loading Tech Teams (Mods\Darkest Hour Full\db\teams.txt)


{
Mods\Darkest Hour Full\db\tech\teams\teams_afg.csv
...
}
Processing (124) Decisions...
{
To Events (AI) (CHI): 'The Fading Sun' (2012004)
WARNING! Event'Produce Winter Equipment' (9000000) is set as DECISION,
but has no COUNTRY!!!
...
}
{Used MP
Country;Dep. Land;Dep. Navy;Dep. Air;Dep. Total;Prod. Land;Prod. Navy;Prod
Air;Prod. Total;MP Assigned Total;MP Pool;MP Total;
United
Kingdom;157.38;121.25;3.88;282.51;0.00;12.55;0.00;12.55;295.06;20.00;315.06;
...
}

{Setting up Abyssinia
Setting Capital Abyssinia
Goverment Abyssinia
Military Scores - Total(Army/Air/Naval): 92.80(90.47/2.33/0.00) , Total IC:
3.00, Ratio = 31.03
units done
Setting up Abyssinia DONE
}
{Setting up Afghanistan
...
}

Obviously there are no errors reported (just a warning, but it's correct, don't be afraid!).
But please trust us when we say that this will be a useful tool in tracking down problems and
mistakes.

Level 2 of the improved logs contains all the information of level 1 plus a lot more regarding the
map, starting with a detailed report on the connections and sea provinces assigned to each province:
####### ADJACENT PROVINCES REPORT #######
{
#0 ((Embarked)) - 0:

#1 (Reykjavik) - 2:
;3;Akureyri
;2664;The Westman Islands

#2 (Torshavn) - 1:
;2676;Faroe Islands

#3 (Akureyri) - 3:
;1;Reykjavik
;2664;The Westman Islands
;2665;Grimsey Island

#4 (Stornoway) - 2:
;2716;The Hebrides
;6;Inverness

#5 (Scapa Flow) - 2:
;6;Inverness
;2685;Orkney Islands

#6 (Inverness) - 6:
;5;Scapa Flow
;7;Aberdeen
;8;Fort William
;2685;Orkney Islands
;2716;The Hebrides
;4;Stornoway
...

This is followed by a LIST PROVINCES BY CONTINENTS report, a LIST PROVINCES BY


REGIONS report and a LIST PROVINCES BY AREAS report. No example here, their content is
obvious.
After those, there is a report on WORLD RESOURCES:
{
Copy and paste to a new file and change its extension to CSV.
Open in Excel and sort by columns
;
ID;Name;Area;Region;Continent;Controler;Owner;IC;MP;Oil;Metal;Energy;Rares;Infra
;AirF;Port;LF;CF;AA;Radar;Rocket;Nuclear;
;
1;Reykjavik;Iceland;Iceland;Europe;Denmark;Denmark;0.00;0;0.00;0.00;0.00;0.00;0.
40;4.00;4.00;0.0;0.0;1.0;0.0;0.0;0.0;
...
}

After that, there is another report called MAP AND PROVINCES ANALYZING, which is focused
on coordinates problems and will help you to track down errors in the province.csv like misplaced
map icons or wrong seazones:
Sea Zone Validation (ERRORS)
{
Province 1677 (Majuro) has Sea zone 2425 (Ratak Islands), but it is not
adjacent. No suitable sea zone could be found!!!
}
Provinces with beach, bit without a sea zone (ERRORS)
{
}
Wrong City position coordinates (ERRORS)
{
Province 9 (Lerwick) has City coordinates set in 2684 (Shetland Islands).
}
Wrong AA position coordinates (ERRORS)
{
}
It also contains a list of provinces by number of connections and a list of land provinces with 6 to 8
connections (to check the Holy Rule, you know - see Dev Diary 2 if you don't remember what it
is!). After that there are some reports on Distances to Neighbouring Provinces, divided by distance.
Finding two neighbouring land provinces distant 1500 Km is probably (but not always) a mistake!
Finally, the map report is closed by a list of distances to all neighbouring provinces:
#1 (Reykjavik) - 2:
252 km - #3 (Akureyri)
46 km - #2664 (The Westman Islands)

#2 (Torshavn) - 1:
114 km - #2676 (Faroe Islands)

#3 (Akureyri) - 3:
252 km - #1 (Reykjavik)
235 km - #2664 (The Westman Islands)
132 km - #2665 (Grimsey Island)

#4 (Stornoway) - 2:
140 km - #2716 (The Hebrides)
152 km - #6 (Inverness)
...

No, wait, that's not all!


There is also a Provinces Climate Analyzing report, that checks and suggest climates for each
province!
This is really the end, no more reports! Some of you may be bored, but the modders out there will
appreciate it and will use it to improve their mods, so even the casual player can benefit from this.

And to close this DD, here are other pictures from the new map (zoom level 3 and 4 respectively):

Você também pode gostar