0% found this document useful (0 votes)
41 views

Guide To Darkest Hour

This document provides an overview of new concepts and changes introduced in Darkest Hour compared to Hearts of Iron 2 Armageddon. Key points include: - Claims can now be made on provinces for diplomatic purposes but do not provide economic benefits or reduce revolt risk. - Decisions allow players to model important historical or speculative decisions. - Spying and intelligence gathering was overhauled with a new system. - Trade, stockpiles, and mobilization systems were improved for a more realistic experience. - Rebels and released nations now behave more accurately. - Events can be configured to only allow one action or save a date for historical accuracy. - Modding was updated to enable new features

Uploaded by

Fergus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Guide To Darkest Hour

This document provides an overview of new concepts and changes introduced in Darkest Hour compared to Hearts of Iron 2 Armageddon. Key points include: - Claims can now be made on provinces for diplomatic purposes but do not provide economic benefits or reduce revolt risk. - Decisions allow players to model important historical or speculative decisions. - Spying and intelligence gathering was overhauled with a new system. - Trade, stockpiles, and mobilization systems were improved for a more realistic experience. - Rebels and released nations now behave more accurately. - Events can be configured to only allow one action or save a date for historical accuracy. - Modding was updated to enable new features

Uploaded by

Fergus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

Guide to Darkest Hour

Index
Introduction......................................................................................................................................................4
New concepts...................................................................................................................................................5
Claims.........................................................................................................................................................5
Decisions.....................................................................................................................................................6
New Spying System....................................................................................................................................7
Improved trade system and stockpiles........................................................................................................8
Mobilization system....................................................................................................................................8
Automatic release of nations.....................................................................................................................10
Changes to the rebel system......................................................................................................................11
Actions and commands with triggers........................................................................................................11
Events with only one action......................................................................................................................12
Events with saved date..............................................................................................................................13
Hints & Tips..............................................................................................................................................13
Changes in modding from HOI2 Armageddon..............................................................................................14
Changes to setting.cfg...............................................................................................................................14
Changes to misc.txt...................................................................................................................................14
Economy...............................................................................................................................................14
Diplomacy / Government.....................................................................................................................19
Intelligence...........................................................................................................................................20
Combat / Missions................................................................................................................................20
Units.....................................................................................................................................................24
AI..........................................................................................................................................................25
Map.......................................................................................................................................................26
Other changes to misc.txt.....................................................................................................................27
Changes to diplo_costs.txt........................................................................................................................29
Changes to spy_costs.txt...........................................................................................................................29
Changes to policy_effects.csv...................................................................................................................29
Changes to Triggers...................................................................................................................................30
Changes to Commands..............................................................................................................................34
Decisions...................................................................................................................................................36
Other Changes...........................................................................................................................................38
Map................................................................................................................................................................47
DH specifics for map editing....................................................................................................................47
DH specifics for distance.csv....................................................................................................................47
DH specifics for province number............................................................................................................48
DH specifics for map debug logs..............................................................................................................48
How to port a HOI2 Arma Mod to Darkest Hour..........................................................................................49
The Darkest Hour Mods Pack...................................................................................................................49
Usual 1.3 Mods porting steps....................................................................................................................50
Introduction
Darkest Hour: A Hearts of Iron Game, or DH, is a grand strategy wargame that is based on Paradox
Interactive's Europa engine. It is described as a 1914-1964 Grand Strategy Game and it allows the player to
take control of and manage nearly any nation-state during the 1914-1964 timeframe including its political,
diplomatic, espionage, economic, military, and technological aspects.
Darkest Hour is, at its core, an evolution of Heart of Iron 2 Armageddon. The DH Development Team took
this decision in order to make it easy to port community-made modifications from HOI2 to DH. This
means the Core version of the game has many of its new features disabled or set as close as possible to
HOI2 Arma values. However, to take full advantage of the many new features and improvements, two
mods have been created by the DH Team to use the full potential of the new code right from scratch,
"Darkest Hour Light" and "Darkest Hour Full":
• Darkest Hour (core game): this version is focused on compatibility with Heart of Iron 2
Armageddon and all mods available for it. The number of changed files has been kept as low as
possible and all new options are disabled or set as close as possible to the original settings.
• Darkest Hour Light: this version is available as a mod with only a few changes from HOI2, but
nearly all new features are enabled.
• Darkest Hour Full: this version is available as a mod without any compatibility with HOI2 and
implements or reworks many new features, the most visible difference being the new map.
Another important characteristic of Darkest Hour is full Moddir support. Thanks to its launcher, it is
possible to choose a specific Mod before launching the game, without having to make multiple installation:
a single installation of Darkest Hour will be enough to choose each time among different mods.

The following chapters will contain useful information on these subjects:


– the new concepts introduced with Darkest Hour;
– the changes in modding introduced by Darkest Hour;
– the new map;
– instructions on how to port a Mod from HOI2 Arma to Darkest Hour;
New concepts
Darkest Hour introduces some new interesting concepts:
– claims
– decisions
– new spying system
– improved trade system and stockpiles
– mobilization system
– automatic release of nations
– changes to the rebel system
– actions and commands with triggers
– events with only one action
– events with saved date
– hints & tips

Claims
Claims have been introduced. 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.
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.
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;

This new concept of course requires new triggers, commands and configurations:
– Manual claims can be enabled or disabled from misc.txt (diplomacy section :
Allow manual claims change in-game for players: 1 - Enabled, 0 – Disabled );
– 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 provinces list named "claimedprovinces" available for countries
which can be set in scenario (INC) files and in revolt.txt (claims = { } list);
– New trigger: claims = { province = a [data = tag ] } # check if that province
is claimed by TAG (or country in question if not specified);
– New event command: type = addclaim which = [prov id] # Add province to country
claims;
– New event command: type = removeclaim which = [prov id] # Remove province from
country claims;
– Added restrictions to demand and set new claims:
* new claims can be set to war enemies or allies/puppets/masters
* new claims can be set to neutral countries only if policy allows that (new
policy modifier in policy_effects.csv)
* claims cannot be demanded from guaranteed at the same time countries

Decisions
Darkest Hour implements a unique “Policy decisions” concept 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.
From the point of view of the code, a decision is an event with two new clauses:
- decision = { ... insert normal triggers here ... } : if these triggers are fullfilled the decision appears in the
decision list for the human player;
- decision_trigger = { ... insert normal triggers here ... } : if these triggers are fullfilled the decision can be
taken by the human player;
When the decision is taken, it fires as a normal event. 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,
so that part of the code must always be compiled too!
Here are more technical informations on decisions:

Decisions concept:
* new modifier in misc.txt (“mod” section): #Enable decisions for players. 0
- Disabled, 1 – Enabled
Basics
1. Decisions will be just slightly modified events.
2. They will differ from regular event only by the presence of a new
section: decision = {}
3. New entry in the event : decision_trigger = { }. It is optional and will
be used instead of trigger = { }. When it is true the decisions will be
active for selection. When not present trigger = {} section will be used
for that.
4. Decisions will be treated as regular events by the AI (only the trigger =
{} section will be checked).
5. Players will have the power to choose when a decision could be applied.
6. Decisions will be hidden until all triggers in decision = { } section is
true.
7. Decision will be available for selection when all triggers in
decision_trigger = { } section (if available, otherwise trigger = {}) in
the event are true.
8. Once selected the decisions will fire as regular event via standard event
window with all the usual information and actions on it.
9. Decisions will be logged in event history as regular events.
10. Decisions list will be populated on game start and updated daily.
11. Decisions can be enabled/disabled via a new setting in misc.txt ("mod"
section).
12. New entry in the event : decision_desc = "....", optional decision
specific text (used on tool-tips instead of event description).
13. New entry in the event : decision_picture = "picture_name.bmp". Optional
(there will be a generic picture loaded by default -
gfx\event_pics\decisions_empty.bmp), placedon the decision plate
UI
1. Available decisions will be listed in a new list similar to
units/provinces list.
2. Decisions list can be selected via a new button (next to
Provinces/Army... buttons).
3. Decisions that cannot yet be taken will have a red X to mark them.
4. Active decisions can be selected and applied.
5. Tool tips:
a) Decision Name = event title
b) Decision description = event text
c) Triggers - already valid triggers will have a green "+" or "*" as
prefix, while inactive will have a red one.
d) Action name + effects.
e) Decision only text - specified in the event as decision_text =
"....". Optional, will be used in place of decision description text
on the tool-tip.
6. There will be notification when new decision is added to the list.
7. The deicision list button should change state to inactive when
there are no visible decisions.
8. The deicision list button should not be visible when Decisions are
disabled from misc.txt.
9. Add decision mini-picture - optional, specified in the event
(decision_gfx = "picture_name.bmp")
10. Added cancel button to decision's event panel.
Limitations
1. Decisions should not use random elements in any triggers so tool-tips to
be correct. EDIT No problem to use random trigger in AI only actions or
commands
2. For better formatting on tool-tips NOT = { trigger1 ... triggerX } should
be used for individual triggers only NOT = { trigger1 } ... NOT = { triggerX
}

New Spying System


Darkest Hour's Spying System is based on the Arma 1.3 Spying System, but is further improved and
enhanced. Its main features are:
– fixed spying AI - it can do any mission now
– send/kill spies missions removed and replaced with Spy Network levels (0...20)
– increased game speed
– all modifiers exported for better modding!
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 HOI2 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. 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.
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 than threashold)
– 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:
– Convoy/Escorts
– Resources
– Submarines, Transports
– HQ

Improved trade system and stockpiles


In the Trade Policies section it is possible to 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.
Each resource (with the exception of money) cannot be stockpiled ad infinitum anymore, but 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.

Mobilization system
The ManPower distribution on the map in DH 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.
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.
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.
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

Once the country mobilizes, its reserve units are filled with soldiers (if they have enough manpower). 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:

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.

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. No more bundled by fixed events, the AI will be able to release
nations as soon as possible.
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).
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);

Changes to the rebel system


• 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;
• chance of rebellion is also influenced by the terrain type and the presence of airbases and
navalbases (see misc.txt)
• rebellious province return to the original owner after X months if there are no rebel armies into the
province anymore. - 30

Actions and commands with triggers


This means that you can add triggers to actions or even single commands. This is very useful to avoid
writing many events to take into account every possible situation.
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
}

Events with only one action


This means that when this option is selected, 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.
Example: 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:
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"
...
}
}
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 }
}

Hints & Tips


About event AI chances calculation
– 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)

Here are some performance hints that should be taken into account when events are created
1. Triggers (no matter if these are for events, actions or commands) should be as simple as possible
and those that are most likely to fail should be first.
2. If there is at least one action that has no own triggers it should be on top of the actions - that's
because action triggers are now considered as continuation of the event trigger and there should be
at least one valid action in order for the event to fire. Actions without triggers are considered as
always valid (no matter what commands they have in opposite to 1.2/1.3).
3. If all actions has triggers, actions with triggers that are most likely to be true should be on top. This
will allow for faster event validation (if main trigger is true and there is at least one valid action the
event is good to go).
The following two rules have smaller impact, but should be followed too as a good practice.
4. Commands in actions should be arranged so most likely to be valid commands to be on top of the
list.
command = { type = addcore which = 300 } #Invalid for Germany. Province #300 is Berlin
command = { type = money value = 10 } # Always valid command - good to have it on top!
5. Command without own triggers should be prioritized in commands list over commands using
triggers.
Changes in modding from HOI2 Armageddon

Changes to setting.cfg
– New settings in settings.cfg:
1) Display resolution: 0 = do not change (default: 1024x768), 1 =
1152x864, 2 = 1280x768, 3 = 1280x1024, 4 = 1440x900, 5 =
1600x1024, 6 = user specified - see bellow; NOTE: Some of these
works only in Windowed mode and other might not work at all;
load_user.bmp is used for all new resolutions.
2) Screen Width (used if 6 is selected as screen resolution - see
above) - For advanced users only! Change on your risk!
3) Screen Height (used if 6 is selected as screen resolution - see
above) - For advanced users only! Change on your risk!
4) Display mode: 0 = do not change (default: full screen), 1 =
windowed.
5) Start-up movie: 0 = skip it, 1 = play it (default).
6) Extra debug logs (savedebug.txt): 0 = disabled (default), 1 =
enabled, 2 = enabled + extra map statistics.
7) Enable/Disable game sounds: 0 = no sounds, 1 = load sounds
(default).
8) Enable/Disable unit sprites: 0 = no sprites, 1 = load unit
sprites (default).
9) Enable/Disable country specific unit and brigade
pictures/models: 0 = load only generic pictures/models, 1 = load
all available (default).
10) Refresh map on resolutions higher then 1024x768 when not on
Map mode. Enabling this will decrease game speed a bit (on higher
resolutions only!), but resolves some cosmetic problems. 1 =
Enabled (default), 0 = Disabled
– Added MODDIR entry to settings.cfg. Mods should be placed in a
sub-folder to “Mods” folder. It will be used if no moddir is
specified from command prompt. Delete the entry or use “#” as
first character to disable it
* Mods #MODDIR folder. Default is Mods
* Darkest Hour Full # Selected mod (must be a folder into MODDIR)

Changes to misc.txt

Economy
– Trades that cannot be canceled by AI now can be canceled by
players only by diplomatic deal that reduces relationships (set in
misc.txt).
– Resources from single trades can now be delivered in X days
(specified in misc.txt) instead instantly. To avoid exploits
cancellation is disabled for non-cancelable trades that will
expire in less then days required for delivering resources from
single trade deals. Delay treaty with 1 day for each day treaty is
inactive because resource lacking.
– 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 auto-
trade (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 auto-
convoying. 7 #7
* Modifier on convoy transports capacity - higher this modifier
is, more resources could be transported. 1.0 #1.0
– Corrections to auto-trade oil and supply needs calculation – these
are based on the actual needs now (multiplied by modifiers from
misc.txt) instead on the max possible consumption.
– 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
– New modifiers in misc.txt (economy section):
* Land Units - supply consumption modifier 1.0 #1.0
* Land Units - supply consumption modifier when in combat 1.0 #1.0
* Land Units - fuel consumption modifier 1.0 #1.0
* Land Units - fuel consumption modifier when in combat or in
bombardment 1.0 #1.0
* Air Units - supply consumption modifier 1.0 #1.0
* Air Units - supply consumption modifier when in combat or in
bombardment 1.0 #1.0
* Air Units - fuel consumption modifier 1.0 #1.0
* Air Units - fuel consumption modifier when in combat or in
bombardment 1.0 #1.0
* Naval Units - supply consumption modifier 1.0 #1.0
* Naval Units - supply consumption modifier when in combat 1.0
#1.0
* Naval Units - fuel consumption modifier 1.0 #1.0
* Naval Units - fuel consumption modifier when in combat or in
bombardment 1.0 #1.0
– Code optimizations to current fuel and supply consumptions
functions. Changed some of the supply and fuel modifiers in
misc.txt:
* Land Units - supply consumption modifier when in redeployment
pool or not moving 1.0 #1.0
* Land Units - supply consumption modifier when in combat 2.0 #1.0
* Land Units - fuel consumption modifier when not moving 0.25
#0.25
* Land Units - fuel consumption modifier when in combat or in
bombardment 2.0 #1.0
* Air Units - supply consumption modifier when in redeployment
pool or at air base 1.0 #1.0
* Air Units - supply consumption modifier when in combat or in
bombardment 1.5 #1.0
* Air and Naval Units - fuel consumption modifier when at air base
or port 0.01 #0.01
* Air Units - fuel consumption modifier when in combat or in
bombardment 3.0 #1.0
* Naval Units - supply consumption modifier when in redeployment
pool or in port 0.5 #0.5
* Naval Units - supply consumption modifier when in combat 2.0
#1.0
*- Naval Units - fuel consumption modifier when not moving and not
in port 0.25 #0.25
*- Naval Units - fuel consumption modifier when in combat or in
bombardment 3.0 #1.0
– New parameter in misc.txt (“economy” section):
* If Blue Prints can be sold to non-allied countries. 0 = No, 1 =
Yes (player could offer BP), 2 = Yes (player could offer and ask
for BPs) 0 #0
* 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
– Fixed bugged misc.txt parameter: “If units can be sold/transferred
to non allied countries”. Changed to:
* If units can be sold/transferred to non allied countries. 0 =
No, 1 = Yes (player could offer units to all countries and ask for
units from allied countries), 2 = Yes (player could offer and ask
for units from all countries) 1 #1
– New parameter in misc.txt (“trade” section):
* Limit new trade deals to allies, preferred countries (AI),
current trade partners or neighbors for X days on every game start
or reload. 5 #0
– New modifiers in misc.txt (“economy” section):
* Min. Available IC as percentage of the final IC (applied in case
of resource lack) 0 #0
* Min. final Available IC (modified by negative free IC only) 0.0
#0.0
* TP to convoy transports conversion ratio 0 #0
* DD to convoy escorts conversion ratio 0 #0
* CL to convoy escorts conversion ratio 0 #0
* CVL to convoy escorts conversion ratio 0 #0
* Nationalism per MP (added to stating value) 0.0 # 0.0
* Max unmodified nationalism = starting + MP*mod + added by events
or partisan funds 20 # 30
* Max final province revolt risk = THIS + current country dissent
40 # 100
– New modifiers in misc.txt (“economy” section):
* IC multiplier for puppets 0.3 #1.0
* Resource multiplier for non-national provinces 0.5 #0.5
* Resource multiplier for occupied provinces (overrides non-
national) 0.4 #0.4
* Resource multiplier for non-national provinces for AI countries
(replaces both above). Use -1 disable this AI cheat. -1 #0.75
* Resource multiplier for puppets 0.5 #1.0
* MP multiplier for puppets (multiplied on the other) 0.4 #1.0
– New modifiers in misc.txt (“economy” section):
* Modifier on dissent reduction – higher this modifier is, longer
it will take to reduce dissent. – 4.0 #4.0
* Modifier on dissent taken from nukes in national provinces.
Dissent = (MP + IC*0.5) * Nuke Power * THIS. – 0.5 #0.5

Diplomacy / Government
– Make alliance between puppets and masters – checked daily. This
can be disabled from misc.txt. Disabled “Ban from alliance” option
for puppet states.
– Each minister personality has a value that can be either auto-
calculated on game start or can be specified in
minister_personalities.txt. This value is used by AI to target
ministers for assassinations and to assign best ministers to posts
(optional - set from misc.txt)
– Ministers are assigned to Gov. Positions based on their
personality value (optional – set from misc.txt)
– Added a new modifier in misc.txt for days between diplomatic
missions.
– Puppets with neutrality 150+ (set in misc.txt – see #617) that are
not allied to their master will not join automatically master’s
wars anymore
– New modifiers in misc.txt (“ai” section):
* 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 misc.txt parameter (“diplomacy” section):
* Masters become master of new puppet’s puppets too. 1 – Yes, 0 –
No
– New parameter in misc.txt ("economy" section): - # 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).
– New modifiers in misc.txt (“diplomacy” section):
* Allow manual claims change in-game for players: 1 - Enabled, 0 –
Disabled
* Added belligerence for every manually claimed non-national and
not owned province. Does not apply for owned by enemies or claimed
province via event command. 0.2 #0.0
* Added belligerence on manual claims removal for every not owned
province. Does not apply for owned by an enemy province or when
claims are removed via event command. -0.1 #0.0
– New option on misc.txt (“diplomacy” section):
* Should not aligned countries join automatically Allies/Axis when
DoW by Axis/Allies and both alliances are at war? 1 = Yes, 0 = No

Intelligence
– Added new key in misc.txt and to select mode of IC modifier on spy
mission cost (enabled/disabled + 2 IC modes).
– New modifier in misc.txt (intelligence section):
* percentage_on_spies to money modifier #100.0

Combat / Missions
– New parameter in misc.txt – movement bonus on terrain trait when
moving on such terrain (jungle rat in jungles and marshes, hills
fighter on fills and so on) or weather (winter specialist gives
bonus on frozen, snowing and blizzard weather)
– New parameter in misc.txt – movement bonus on terrain trait when
moving on similar terrain (Ranger in jungles, Mountaineer on Hills
and so on)
– New parameter in misc.txt – combat bonus from terrain traits on
similar terrain (Ranger in jungles, Mountaineer on Hills and so
on)
– Added a new combat modifier in misc.txt: Days in offensive supply
(was hard-coded at 30).
– Added a new combat modifier in misc.txt: Hours for Air-to-Air
battles (was hard-coded at 4).
– Added a new combat modifier in misc.txt: Hours for Naval and Port
bombing (was hard-coded at 5).
– Added a new combat modifier in misc.txt: Hours for Strategic
bombing (was hard-coded at 5).
– Added a new combat modifier in misc.txt: Hours for Ground attack
bombing (was hard-coded at 4).
– Added a new combat modifier in misc.txt: Wartime oversea MP
modifier (was hard-coded at 0).
– Moved “Requirement for Influence Nation" from economy to diplomacy
section in misc.txt.
– Added a new combat modifier in misc.txt: Should fleets on convoy
riding missions return to port because of low Organization or not.
– New combat modifiers in misc.txt:
* Land vs. Land - Org dmg - Increasing this will increase ORG
damage land unit takes in battle with other land units
* Land vs. Land - Str dmg - Increasing this will increase STR
damage land unit takes in battle with other land units
* Air vs. Air - Org dmg - Increasing this will increase ORG damage
air unit takes in battle with other air units
* Air vs. Air - Str dmg - Increasing this will increase STR damage
air unit takes in battle with other air units
* Air vs. Land - Org dmg - Increasing this will increase ORG
damage land unit takes from air units
* Air vs. Land - Str dmg - Increasing this will increase STR
damage land unit takes from air units
* Air vs. Land - Ground Attack Org dmg - Increasing this will
increase ORG dmg land units take from Air unit on this mission
* Air vs. Land - Ground Attack Str dmg - Increasing this will
increase STR dmg land units take from Air unit on this mission
* Air vs. Land - Interdiction Org dmg - Increasing this will
increase ORG dmg land units take from Air unit on this mission
* Air vs. Land - Interdiction Str dmg - Increasing this will
increase STR dmg land units take from Air unit on this mission
* Air vs. Navy - Org dmg - Increasing this will increase ORG
damage naval units take from air units
* Air vs. Navy - Str dmg - Increasing this will increase STR
damage naval units takes from air units
* Air vs. Subs - Extra ORG damage multiplier to subs in combat vs.
air units
* Air vs. Subs - Extra STR damage multiplier to subs in combat vs.
air units
* Navy vs. Air - Org dmg - Increasing this will increase ORG
damage air units take from naval units
* Navy vs. Air - Str dmg - Increasing this will increase STR
damage air units take from naval units
* Navy vs. Navy - Org dmg - Increasing this will increase ORG
damage naval units take from other naval units
* Navy vs. Navy - Str dmg - Increasing this will increase STR
damage naval units take from other naval units
* AA to Air - Org dmg - Increasing this will increase ORG damage
air units take from province AA
* AA to Air - Str dmg - Increasing this will increase STR damage
air units take from province AA
New economy, diplomacy and research modifiers in misc.txt:
* Province buildings repair modifier - how fast damaged or just
built province buildings will reach max level
* Province resource repair modifier - how fast resources output is
increasing to the max (after bombing or conquering)
* Days between policy slider moves
* Research Post-Historical Date Mod (1 + value * days post
historical year). Highest possible value is equal to Blueprint
Bonus. This bonus do not apply on Nuclear or Rocketry components
research time
– New parameter in misc.txt (“combat” section):
* AA to Air night modifier. 1 – no change, 0 – no attack, 0.5 –
50% effectiveness and so on 1 #1
* AA to Air Radar bonus. (1 + Radar size * Radar Efficiency *
THIS). 0 – no radar bonus 0 #0
– New modifiers in misc.txt (combat section)
* Naval units range modifier when on Sea transport mission. 3.0
#3.0
* Naval units range modifier when on Convoy raiding mission. 2.0
#2.0
– New modifiers in misc.txt (combat section):
* Organization regain bonus for units on friendly soil. It depends
on infra and is capped (see below) (infra*2 + THIS <= cap). [0.0 =
0%, 1.0 = 100%] 0.0 #0.0
* Organization regain bonus for units on friendly soil cap. 1.2
– New parameter in misc.txt (combat section):
* AA to Air firing rules: 0 - fire only to passing enemy units on
bombing missions, 1 - fire to all passing enemy units: 1 #0
– New modifiers in misc.txt (combat section):
* Movement speed modifier to land units in combat 1.0
* Movement speed modifier to land units in bombardment 1.0
* 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 0 #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 0 #0
* Allow single province and region targeting for air and naval
units (players only): 0 - disabled, 1 – enabled 0 #0
* Removed # Should fleets on convoy raiding missions return to
port because of low Organization or not: 1 = yes, 0 = no (return
only for low strength) 1#1 – The Project 0.5
* Night hours during winter - used in land unit speed
calculations. Values: 0.0 (Disabled) to 24.0 14 #0 – Addition to *
Night hours during spring and fall - used in land unit speed
calculations. Values: 0.0 (Disabled) to 24.0 12 #0
* Night hours during summer - used in land unit speed
calculations. Values: 0.0 (Disabled) to 24.0 8 #0 – Addition to *
Fleet size range penalty - for every ship above the max threshold
(see below) 0.0 #0.0
* Fleet size range penalty - apply for every ship in the fleet
above this. -1 = Disabled -1 #-1
* Fleet size range penalty - max penalty value. 0.0 to 1.0 (no
penalty) 0.5
* Apply air and naval unit's range limits on missions to Areas and
Regions. 0 = Disabled, 1 = Enabled, 2 = enabled for Ai countries
too (Not recommended!!!) 0 #0
* Radar bonus on detection - used to guide friendly air units on
Air Superiority and Scramble missions (This * Radar level * Radar
efficiency). Higher the better5.0 #0.0
* Bonus on detection of enemy air units when they are over a
friendly province (added to radar and mission bonuses) - used to
guide friendly air units on Air Superiority and Scramble missions.
Higher the better 10 # 0.0
– Exported all mission modifiers to misc.txt (new section
“mission”):
* mission availability at game start (1/0)
* default (starting) mission efficiency (0.05 – 10.0)
* detection modifiers to Convoy Raiding, Sea Transport, Naval
Rebase and Sneak move
* detection bonus to Air Scramble and Air Supperiority
* distance modifier to Convoy Raiding, Sea Transport and Sneak
move
* speed modifier to Attack, Support Attack, Reserves, Support
Defense and Naval Scramble
* suppression modifier to Anti partisan duties
* Org. and Str. Damage for Interdiction and Ground Attack (moved
from “combat” section)
* Shore Bombardment multiplier (moved from “combat” section)
– misc.txt – transferred to “mission” section modifiers from other
sections:
* Combat Modifier: Shore Bombardment Multiplier (Applies to the SB
value of ships for org damage)
* Naval units range modifier when on Sea transport mission.
* Naval units range modifier when on Convoy raiding mission.
* Air vs. Land - Ground Attack Org dmg - Increasing this will
increase ORG dmg land units takes from Air unit on this mission
* Air vs. Land - Ground Attack Str dmg - Increasing this will
increase STR dmg land units takes from Air unit on this mission
* Air vs. Land - Interdiction Org dmg - Increasing this will
increase ORG dmg land units takes from Air unit on this mission
* Air vs. Land - Interdiction Str dmg - Increasing this will
increase STR dmg land units takes from Air unit on this mission
– Refined enemy detection for units on Air Superiority missions –
see new mission and radar modifiers in misc.txt
– New modifiers in misc.txt (combat section):
* Air dogfight XP gain factor 1.5 #1.5 – use that one for air
combats
* Recalculate land units arrival times when not in combat. 0 -
Disabled, 1 - recalculate each hour and so on. (see #409) 0 #0
– Mission control (air and naval units) – added colors to provinces
covered by selected mission. Unit’s ranges are taken into account
too (when set so in misc.txt).
– New modifiers in misc.txt (“combat” section):
* "Synchronize arrival" time modifier - Players only! (Stack
arrival time = slowest unit move time * THIS). 1.5 #1.0
* "Synchronize arrival" time modifier - AI only! (Stack arrival
time = slowest unit move time * THIS). 1.0 #1.0
* Recalculate arrival times for units in "Sync. arrival time" mode
after combat/bombardment. NOTE: enabling this could de-synchronize
arrival times! 0 - Disabled, 1 - Enabled for players only, 2 -
Enabled for players and AI. 0 #0
* AA to Naval - Org dmg - Increasing this will increase ORG damage
a fleet takes from province AA. 0.15 #0.15
– New optional (misc.txt, ai section) conquer province rules. AI
masters can be set to get all provinces conquered by AI puppets:
* #AI masters get all provinces conquered by AI puppets. 1 – Yes,
0 – No (old rules) 1 #0
* Note: This setting is only about who will get control over a
newly conquered province. Provinces conquered by puppets will be
actually instantly given to master when this setting is On.
Cores/claims would be most probably given back to allied countries
later.

Units
– New parameter in misc.txt used to modify convoy escorts models in
convoy battles (using researched DD model as a base)
– The hard-coded 50% penalty for hard units (Softness < 50%) on
attacking urban provinces was moved as parameter in misc.txt
– New option in misc.txt about interaction between division and
brigade minister bonuses: 1 = use division bonus if any else
brigade; 2 = Use average of both; 3 = use Sum of all; 4 = Use min;
5 = use Max
– New parameter in misc.txt (“mod” section):
* Allow brigade attaching as long as the unit is in supply no
matter on whom territory it is. 1 - Enabled, 0 - Disabled
(default): 1 #0
* Multiple deployment - preferred unit size for armies. This could
be overridden in-game by holding SHIFT (deploy all in a single
group) or CONTROL (deploy each in own group) keys. 3
* Multiple deployment - preferred unit size for fleets. This could
be overridden in-game by holding SHIFT (deploy all in a single
group) or CONTROL (deploy each in own group) keys. 6
* Multiple deployment - preferred unit size for air. This could be
overridden in-game by holding SHIFT (try to deploy all in a single
group) or CONTROL (deploy each in own group) keys. 2
– New modifiers in misc.txt (“mod” section):
* 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).
AI
– New section in misc.txt for AI modifiers (ai):
* Overproduce of supplies when bellow desired supplies level
(percentage of max needed supplies)
* Multiplier on overproduce supplies when at war
* 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.
* 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.
* Military Strength to Total IC ratio for AI major countries
(multiplied on the other).
* Disables AI Peacetime offensive spy missions: 0 = all are
allowed; 1 = Assassination, Coup, Fund Partisans and Nuclear
sabotage are disabled; 2 = (1) + Delay TT and Disrupt Prod. are
disabled.
* AI spy missions cost modifier: 1.0 = No change; 0.5 = 50%
discount; 2.0 = doubled cost.
* AI diplo missions cost modifier: 1.0 = No discount; 0.5 = 50%
discount; 2.0 = doubled cost. Note: Demand territory and Trade
deals are for free.
* AI influence modifier. Reduce or increase number of Influence
missions AI does: 1 = no change; 0 = No influence missions; 2 =
doubled.
– New modifiers in misc.txt (ai section):
* Do not produce supplies when current supply stockpile is greater
then THIS * max supply production. This overrides all other
settings. 7.0 # 10000
* Do not start producing any new units when more then THIS
percentage of the total IC is needed to supply existing units (0.0
to 1.0; 1.0 = 100%, disabled). Enabling this will encourage AI to
build more IC when this ratio is exceeded.
– New modifiers in misc.txt (ai section):
* Do not use Offensive supply when supplies stockpile is below
THIS * critical supply threshold. 1.0 #1.0
* Do not use Offensive supply when oil stockpile is below THIS *
critical oil threshold. 1.0 #1.0
* Do not Offensive supply unit if its ESE is greater then THIS.
0.8 #0.8
* Do not Offensive supply unit if its average (for all divisions)
ORG or STR damage (in % of max) is above THIS. 0.2 #0.2
* New DoW rules (AI only) - disallow DoW between alliance members
if alliance leaders have NAP. Disallow DoW to or by puppets. 1 -
Enabled, 0 – Disabled. 0 #0
– Improved event AI chances calculation (misc.txt):
* 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
– New modifiers in misc.txt (“ai” section) AI events action
selection rules:
* 0-100 : Chance for the first valid action to be chosen.
Remaining valid actions have equal chances. Used for events that
do not have valid action with AI chance set, else AI chances are
used
* -1 : Random - every valid action has the same chance. Used for
events that do not have valid action with AI chance set, else AI
chances are used
* -2 : Historical - First valid action is always selected. Used
for events that do not have valid action with AI chance set, else
AI chances are used
* -3 : Forced historical - First valid action is always selected
if there is no AI chances set for a valid action, else - (first)
valid action with the highest AI chance set is selected
– New modifiers in misc.txt (“mod” section):
* Auto reply to events (players). 0 - Disabled, 1 - Enabled (using
AI event action selection rules - see "ai" section) 0 #0
* Force actions to show even if there are no valid commands as
long as action trigger is valid (or there is no action trigger at
all). Ignored for random and persistent events!
# 0 – Disabled
# 1 – Enabled only for actions that have valid triggers
# 2 – Enabled for actions without triggers too
– New modifiers in misc.txt (“ai” section):
* Force strategic redeployment if movement time is longer then X
hours. This setting will override default AI settings. -1 –
Disable, Else time in hours
* Use quick area check (Garrison AI) - could be inaccurate in some
rare cases. 1 - Enabled, 0 – Disabled 1 # 0
– Added new modifier in misc.txt (ai section):
* min. days after last province controller change required for the
AI to release a country using that province.

Map
– New section in misc.txt – “map”:
* Total provinces. There is a hard-coded limit to 10000.
adjacent.tbl must be updated after any change here (just
rename/delete it and restart the game) 2608 #2608
* Distance calculation model. 0 - use the old, map based
calculation (slower and incorrect); 1 - use real world distances
from airdist.tbl (based on distances.csv) and navaldist2.tbl files
1 #0
* Map Width. Should be multiple of 32! NOT USED YET! 29952 #29952
* Map Height. Should be multiple of 32! NOT USED YET! 11520 #11520
– Map provinces limit change. Max provinces are set to 10000, but
currently used provinces are set in misc.txt. Except for increased
memory usage (up to 10MB), there is no performance drop.
– Selectable game maps:
* load all map related files including province.csv,
province_names.csv from a user defined folder (map\Map_X)
* load all province and city pictures from a user defined folder
(map\Map_X\gfx)
* set used map in misc.txt (0 – use default map, 1 – load map from
map\Map_1 and so on)
– New modifier in misc.txt (“map” section):
* Map: 0 - use default map, else load a new map from "map\map_X"
folder where X = THIS.

Other changes to misc.txt


– Two new sections in misc.txt: intelligence and diplomacy.
– New section in misc.txt for modding tools (mod)
* AI spy (LogSpyAI.csv) and diplomatic (LogDiploAI.csv) mission
loggers: 0 = disabled (default), 1 = enabled
* Country logger (LogCountry.csv): 0 = disabled (default), >0 =
enabled, days between logs, -1 = log only player's country
– New modifiers in misc.txt (mod section):
* Use new auto-save file format:
AutoSave_Country_Year_Month_Day.eug. 1 - Enabled, 0 – Disabled. 1
#0
* Load new AI settings on AI file switching to all clients in MP
games. 1 - Enabled, 0 – Disabled. 0 #0
* - Switched AI files logger (SwitchAI.txt): 0 - Disabled, 1 –
Enabled. 1 #0
– New modifiers in misc.txt (“mod” section):
* In-game losses logging (statistics). 0 - Disabled, 1 – Enabled:
1 #0
– New parameter in misc.txt (“mod” section):
* Allow unique pictures to all land provinces. 1 - Enabled, 0 -
Disabled (only urban provinces may have unique pictures) 1 #0
– Optional (misc.txt) - Fixed a bug preventing an action in event to
show if all commands in it are invalid. This sometimes prevented
the entire event from firing.
– New policy modifiers in policy_effects.csv:
* MODIFIER_RELATIONSHIPS_DOW – Additive. Relationship needed to
DoW – new, enabled from misc.txt
– New misc.txt parameters (“ai” section):
* Use new AI release rules – all countries can release puppets
even when at war. 1 – Yes, 0 – No
– Max active tech teams made moddable from misc.txt (up to 50).
– New modifiers in misc.txt (“research” section):
* 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 1# 1
* Required IC for each tech team above the min 20 #20
– Tie revolt risk to province MP. Introduced max base (unmodified)
revolt risk. Optional, set in misc.txt
– Decisions concept:
* new modifier in misc.txt (“mod” section): #Enable decisions for
players. 0 - Disabled, 1 – Enabled
– New setting in misc.txt (Mods section): Use new minister files
format and End years for ministers; All minister files should have
End Year column (after "Pool"); Pool should use absolute year
(1936 instead of 36): 0 - Disabled, 1 – Enabled 0 #0
– New modifiers in 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)
– Exported many starting values of country modifiers to misc.txt.
New section “country”:
* Land Fort Efficiency - 1.0 #1.0
* Coastal Fort Efficiency - 1.0 #1.0
* Ground Defense Efficiency - 0.8 #0.8
* Convoy Defense Efficiency - 0.0 #0.0
* MP boost - 0.9 #09
* Transport Capacity modifier - 1.0 #1.0
* Transport Capacity (occupied) modifier - 1.0 #1.0
* Attrition modifier - 1.0 #1.0
* MP Trickle back modifier - 1.0 #1.0
* Supply distance modifier - 1.0 #1.0
* Repair modifier - 1.0 #1.0
* Research modifier - 1.0 #1.0
* Radar efficiency - 1.0 #1.0
* HQ Supply efficiency bonus - 0.01 #0.01
* HQ Combat events bonus - 1.0 #1.0
* Combat event chances: 0.01 = 1%, 1.0 = 100% - 0.01 #0.01
* Friendly army detection chance - 40 #40
* Enemy army detection chance - 80 #80
* Friendly intelligence chance - 50 #50
* Enemy intelligence chance - 50 #50
* Max amphibious army size - 3 #3
* Energy to Oil - 0.0 #0.0
* Total production efficiency - 1.0 #1.0
* Supply production efficiency - 0.0 #0.0
* AA power - 0.1 #0.1
* Air surprise chance - 1.0 #1.0
* Land surprise chance - 1.0 #1.0
* Naval surprise chance - 1.0 #1.0
* Peacetime IC mod - 1.0 #1.0
* Wartime IC mod - 1.0 #1.0
* Buildings production mod (applied to all buildings!) - 1.0 #1.0
* Convoys production mod (applied to both convoy transports and
escorts) - 1.0 #1.0
* Min ships positioning in battle (applied to all naval units!) -
0.1 #0.1
* Max ships positioning in battle (applied to all naval units!) -
0.2 #0.2
* Peacetime modifier on stockpiles for industry resources - 1.0
#1.0
* Wartime modifier on stockpiles for industry resources - 1.0 #1.0
* Peacetime modifier on stockpiles for oil and supplies - 1.0 #1.0
* Wartime modifier on stockpiles for oil and supplies - 1.0 #1.0
– Added new settings in misc.txt (“mods” section):
* Load sprites from Moddir only. Setting this to 1 prevents
reading of sprite files from the main game folder. 0 #0
* Load unit icons from Moddir only. Setting this to 1 prevents
reading of unit icon files from the main game folder. 0 #0
* Load unit pictures from Moddir only. Setting this to 1 prevents
reading of unit picture files from the main game folder (except
for the generic ones - ill_YYY_XX_0.bmp). 0 #0
* Load AI files from Moddir only. Setting this to 1 prevents
reading of AI files from the main game folder. 0 #0

Changes to diplo_costs.txt
– Changed diplomatic costs to positive numbers.

Changes to spy_costs.txt
– Changed “diplomacy” section name in spy_costs.txt to
“intelligence”. A bug on error reporting on parsing has been
fixed.
– spy_costs.txt format has been optimized. Most of the new spy
system modifiers were moved to misc.txt.

Changes to policy_effects.csv
– All policy modifiers are moddable from policy_effects.csv. (Use
“policy_effects.csv” file in game checksum calculation.)
– Added new policy modifier _MODIFIER_RESEARCH_SPEED_.
– Added new policy modifier _MODIFIER_INTEL_COST_.
– Added new policy modifier _MODIFIER_INTEL_MAINTENANCE_.
– _MODIFIER_UPGRADE_TIME_AND_COST_ modifier was split in two:
_MODIFIER_UPGRADE_TIME_ and _MODIFIER_UPGRADE_COST_.
– _MODIFIER_PRODUCTION_TIME_ AND_COST_ modifier was split in two:
_MODIFIER_PRODUCTION_TIME_ and _MODIFIER_PRODUCTION_COST_.
– Enabled _MODIFIER_RESOURCE_PROD_ modifier.
– Policy modifier on stockpiles limit MODIFIER_STOCKPILES – set is
policy_effects.csv
– New policy modifiers in policy_effects.csv:
* MODIFIER_USE_BELLIGERENCE_FOR_DOW - Additive. Use belligerence
in “is DoW allowed” calculation – replacing old hard-coded
threshold (democracy >=5 -> use belligerence based on
Interventionism). Use Belligerence when sum of all sliders for is
above 1.
* MODIFIER_BELLIGERENCE_DOW – Additive. Belligerence needed to
DoW. Used only when MODIFIER_USE_BELLIGERENCE_FOR_DOW is greater
then 1
* MODIFIER_RELATIONSHIPS_DOW – Additive. Relationship needed to
DoW – new, enabled from misc.txt
* MODIFIER_COUNTERINTELLIGENCE - Additive. Used as bonus to
current counter-intelligence. The recommended max value from all
sliders is 15!
* MODIFIER_INTELLIGENCE - Additive. Added to spy levels in
distance calculations. Higher it is – distance will have less
impact on mission chances. The recommended current values from all
sliders are from -5 to +4!
– 603. New policy modifiers in policy_effects.csv:
* MODIFIER_RELATIONSHIPS_DOW - Starting value: -200
– Added new policy modifiers in policy_effects.csv:
* CAN_ALLY_WHILE_AT_PEACE
* CAN_ADD_CLAIMS_TO_NEUTRALS
* CAN_DEMAND_CLAIMS
* CAN_BREAK_NAP
* CAN_GUARANTEE
– Added restrictions to demand and set new claims:
* new claims can be set to neutral countries only if policy allows
that (new policy modifier in policy_effects.csv)
– 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)

Changes to Triggers
– Trigger: access = { country = TAG } # check if the country in
question has access to TAG
– Trigger: alliance = { country = TAG } # check if the country in
question is allied to TAG
– 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: capital = { province = a [data = tag] } # check if that
province is the capital of TAG (or country in question if not
specified)
– Trigger: claims = { province = a [data = tag ] } # check if that
province is claimed by TAG (or country in question if not
specified)
– 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: 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: escortpool = X # changed to check for total escorts
instead just for unassigned
– Trigger: guarantee = { country = TAG } # check if the country in
question has GoI by TAG
– 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: 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: ispuppet = [yes/no/TAG] # improved trigger, use ispuppet
= yes to check if the country in question is puppet to another
country.
– 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: military_control = { country = TAG1 [country = TAG2] } #
True if TAG1 has military control over TAG2, or country in
question has military control over TAG1 (when no TAG2)
– Trigger: non_aggression = { country = TAG } # check if the country
in question has NA pact with TAG
– 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 more
the 1 nukes
* nuked = 1 # True if that country has used at least one nuke
against any country
* nuked = { country = FRA country = GER data = 1 where = 300 } #
True if France(FRA) has used at least 1 nuke to Germany (GER) 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: 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: 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: puppet = { country = TAG } # check if the country in
question has country TAG as puppet
– 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: trade = { country = TAG } # check if the country in
question has a trade deal with TAG
– Trigger: war = { country = TAG } # check if the country in
question is at war with TAG
– 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.
– 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] }
– 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.
– Additions to event trigger: event = { id = EVENT_ID days = X } #
Check if event with EVENT_ID has fired at least X days ago
– Added (optional) triggers to individual commands or event actions.
Example 1: action = {
trigger = {
NOT = { war = { country = GER country = AUS } }
}
...
Example 2: action = {
command = { trigger = { ai = no } type = dissent
value = 10 }
...
}

Changes to 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 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.
- type = inherit which = [tag] [value = 1/0 (default)]
– 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: type = addclaim which = [prov id] # Add
province to country claims
– New event command: type = removeclaim which = [prov id] # Remove
province from country claims
– 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
– 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)
– Added a new command to change major alliances name, strings,
pictures: command = { type = alliance_name which = “XXXXX” where =
1/2/3 } #sets Axis (where = 1), Allies (where = 2) or Comintern
(where = 3) name to defined as ALLIANCE_XXXXX in a CSV file,
victory string - GAME_END_XXXXX_VICTORY, total victory string -
GAME_END_XXXXX_TOTAL, alliance picture used on game quit/scenario
end - gfx\interface\XXXXX_ledg.bmp and background picture used on
alliance victory - gfx\interface\frontend\endgame_XXXXX.bmp
– Added new command to increase leader skill: command = { type =
add_leader_skill which = [leader id/-1] value = [X] }
– Added new event command to change unit’s current STR (MP taken
from / returned 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
– Changed independence command to not transfer leaders attached to
units to new countries anymore. Those units are permanently
transferred now.

Decisions
– Decisions concept:
* new modifier in misc.txt (“mod” section): #Enable decisions for
players. 0 - Disabled, 1 – Enabled

Basics
1. Decisions will be just slightly modified events.
2. They will differ from regular event only by the presence of a
new section - decision
3. Decisions will be treated as regular events by the AI.
4. Players will have the power to choose when a decision could
be applied.
5. Decisions will be hidden until all triggers in decision = { }
section is true.
6. Decision will be available for selection when all triggers in
trigger = { } section in the event are true.
7. Once selected the decisions will fire as regular event via
standard event window with all the usual information and actions
on it.
8. Decisions will be logged in event history as regular events.
9. Decisions list will be populated on game start and updated
daily.
10. Decisions can be enabled/disabled via a new setting in
misc.txt ("mod" section).
11. New entry in the event : decision_desc = "....", optional
decision specific text (used on tool-tips instead of event
description).
12. New entry in the event : decision_picture =
"picture_name.bmp". Optional (there will be a generic picture
loaded by default - gfx\event_pics\decisions_empty.bmp), placed
on the decision plate
13. New entry in the event : decision_trigger = { }. It is
optional and will be used instead of trigger = { }. When it is
true the decisions will be active for selection. When not
present trigger = {} section will be used for that.
UI
1. Available decisions will be listed in a new list similar to
units/provinces list.
2. Decisions list can be selected via a new button (next to
Provinces/Army... buttons).
3. Inactive decisions will be grayed out.
4. Active decisions can be selected and applied.
5. Tool tips:
a) Decision Name = event title
b) Decision description = event text
c) Triggers - already valid triggers will have a green "+" or
"*" as prefix, while inactive will have a red one.
d) Action name + effects.
e) Decision only text - specified in the event as
decision_text = "....". Optional, will be used in place of
decision description text on the tool-tip.
6. There will be notification when new decision is added to the
list.
7. The button should change state to inactive when there are no
visible decisions.
8. The button should not be visible when Decisions are disabled
from misc.txt.
9. Add decision mini-picture - optional, specified in the event
(decision_gfx = "picture_name.bmp")
10. Added cancel button to decision's event panel.

Limitations
1. Decisions should not use random elements in any triggers so
tool-tips to be correct. EDIT No problem to use random trigger
in AI only actions or commands
2. Preferable decisions should have only one action. EDIT No
problem to have many actions
3. Triggers for action(s) should be avoided. EDIT No problem to
have triggers
4. Triggers for commands should be avoided. EDIT No problem to
have triggers
5. For better formatting on tool-tips NOT = { trigger1 ...
triggerX } should be used for individual triggers only NOT =
{ trigger1 } ... NOT = { triggerX } NEW

Notes
1. Limitations - these are not stoned yet and most probably they
could be ignored when this is needed, but as a rule should be
avoided and when used should be extensively tested to ensure
correct in-game results.

Other Changes
– Changed absolute game years from 1935/1965 to 1/3000
– Hide triggered AI_EVENT events on tool-tips (decisions, events).
– Unlimited* event actions (* - limited by screen size only): action
= { … }
– Added new option to events and decision used to define countries
which this event/decision is available for. No country = TAG
should be specified for such events/decisions. Format: tag =
{ TAG1 TAG2 TAG3 … TAGX }. The event/decision will be available
only for the specified countries. This will greatly improve game
speed when a lot of generic events are used for just few countries
(set in event’s triggers).
– New event settings:
* save_date = yes / no (default); If set saves date when this
event has fired and that date can be used as a trigger by other
events (delay event B to fire at least X days after event A).
NOTE!!! Valid event IDs range is 0 to 2,147,483,647!!!
* one_action = yes / no (default); If set show just one (random)
action to the player. The action is chosen based on AI chances (if
present), else it is random using the same rules as for the AI
(set in misc.txt).
– Added 8 new event display sizes: paper_400_576.bmp,
paper_400_624.bmp, paper_400_672.bmp, paper_400_736.bmp,
paper_400_800.bmp, paper_400_864.bmp, paper_400_928.bmp,
paper_400_992.bmp
– New event display format:
* style = 1 - allow bigger pictures to be used
* smaller action buttons
– Added new event style (style = 2 in events):
* Header picture 400 x 48 pixels. Generic (news_header.bmp) or
country specific (news_header_TAG.bmp)
* Display current game date and capital name
* Event picture
* Event title
* Event text
* Event Effects – if only one action with less then 5 effects
* Event Action buttons
– New country IC modifier - wartime_ic_mod. Works like
peacetime_ic_mod, but when at war.
– 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.
– Made upgrade to model and type moddable for every brigade/unit:
* Upgrade type and model can be specified in brigade/division
files. For example to upgrade LArm-2 to ARM-2 add armor = 2 into
the model = { } entry for L-Arm-2 in light_armor.txt:
# 2 - Improved Light Tank
model = {
armor = 2 # Upgrade to ARM-2
...
}
* This is optional and can be skipped. By default every
unit/brigade is upgradeable to the next model of the same type
with 2 exceptions:
1. LArm-2 by default upgrades to ARM-2
2. All ships by default do not upgrade
* It is possible to specify upgrade to a model of the same type
too. For example INT-4 can be set to upgrade to INT-7 directly and
skip the two rocket interceptor models in interceptor.txt:
model = { # Advanced Interceptor – 4
interceptor = 7 # Upgrade to Basic Turbojet Interceptor –
7 directly
...
}
* It is also possible to forbid a specific model to be upgraded at
all. To do that set its upgrade model to -2. For example INT-6
could be set as non-upgradeable event if there is INT-7 model:
model = { # Improved Rocket Interceptor - 6
interceptor = -2 # Forbid upgrading of that model
...
}
model = { # Basic Turbojet Interceptor – 7
...
}
– Added new optional division/brigades models parameter:
upgrade_time_boost = yes/no. When it is set to yes (default value)
upgrade time for models 2 or more levels obsolete will be reduced
(as in vanilla). When set to NO there will be no upgrade time
reduction for older models. Useful with the options added above to
prevent too cheap upgrades of really obsolete models.
– Changed default values of upgrade_time_factor and
upgrade_cost_factor from 0.0 to 1.0.
– 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)
– activate_unit_type and deactivate_unit_type effects are now
reversible on doctrine abandon.
– Added new optional parameter for technology applications: picture
= "file_name" (max name length is 64 characters, no file
extension!). If not specified the old picture naming will be used
(picture name = TechApplicationID.bmp)
– Added possibility to define new minister personalities with unique
effects, including personalities that could be assigned to all
government positions.
– All minister modifiers are moved to a moddable file
(db\ministers\minister_personalities.txt; used also in game
checksum calculation). 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)
– Minister modifier on stockpiles:
* stockpile - modifiers on stockpiles limit
* which = industry / supplies (used for oil too) / all (default)
* when = war / peace / all (default)
* value = x.xxxx
– Added optional End Date column to minister files:
* new setting in misc.txt (Mods section): Use new minister files
format and End years for ministers; All minister files should have
End Year column (after "Pool"); Pool should use absolute year
(1936 instead of 36): 0 - Disabled, 1 – Enabled 0 #0
* ministers won’t be loaded if End year is less or equal to the
current game year or Start year is greater then scenario End year.
No need to set such ministers as dormant anymore
* Pool column (start year) in minister files should have absolute
year like 1936 instead of just 36; This allows any valid year to
be used
* End Year column should be present in all minister files when
this option is enabled. It is right after “Pool” column and should
have absolute year like 1936 instead of just 36.
– Difficulty modifier on stockpiles limit STOCKPILES – set in
difficulty.csv
– Modified, new text CSV files (config folder):
* mods.csv - for use by modders
* expansion_core.csv (renamed expansion.csv) – used for strings
required by Darkest Hour’s core
* expansion_extra.csv – used for new techs, minister traits
descriptions and events
– Added Famous Quotes to loading screen (config\famous_quotes.csv)
– Increased predefined map colors from 26 to 32 (UserColor1 to
UserColor6 in “map\colosrcalses.csv”)
– Added HQ icon to units in units list (icon_unit_HQ_active.bmp and
icon_unit_HQ_inactive.bmp)
– 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 4 buttons to show/hide leaders in Available leaders list by
rank (btn_medium.bmp).
– Replaced buttons on production screen check-boxes with smaller one
(btn_small.bmp).
– Replaced buttons on policy auto-slider check-boxes with smaller
one (btn_small.bmp).
– Replaced buttons for Auto-promote and Auto-assign leaders with
smaller one (btn_small.bmp).
– 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
– 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)
– 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)
– 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)
– Added extra Escort icon for air wings having at least one ESC
brigade attached (icon_unit_air_escort.bmp)
– 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)
– Added extra FTR icon for mixed INT/FTR only air wings
(icon_unit_air_ftr.bmp)
– '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 between EF/MC forces
(icon_unit_EF_shade.bmp, icon_unit_MC_shade.bmp)
– Added new province category and list: claimedprovinces = { PROV_ID
…}
– Added second frame to gfx\interface\map_circle.bmp which to be
used for claimed provinces in Diplomacy map mode.
– Added restrictions to demand and set new claims:
* new claims can be set to war enemies or allies/puppets/masters
* new claims can be set to neutral countries only if policy allows
that (new policy modifier in policy_effects.csv)
* claims cannot be demanded from guaranteed at the same time
countries
– 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). Liberate
chances are: 15% in peace, 10% in war, 5% for colonial countries.
– 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.
– Added to country revolt record (revolt.txt) a list of countries
that can liberate that country (no other countries can liberate
it): country = { TAG1 TAG2 … TAGx }
– Added to country revolt record (revolt.txt) a list of countries
that prevent this country creation if any of those exist at the
moment (so if one of the countries in the NOT list exists in the
entry for a country, that country cannot be liberates – e.g. You
can't liberate VIC if FRA exists). not = { TAG1 TAG2 … TAGx }
– Allowed (optional) unique province capital/city icons.
Gfx\map\city_PROVID.bmp (city_55.bmp for Paris and so on). Code
optimization.
– 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\).
– Added options to major alliances (Axis, Allies, Comintern):
* new optional alliance parameter: name = “XXXXX”. It is used to
set alliance name defined as ALLIANCE_XXXXX in a CSV file, victory
string - GAME_END_XXXXX_VICTORY, total victory string -
GAME_END_XXXXX_TOTAL, alliance picture used on game quit/scenario
end - gfx\interface\XXXXX_ledg.bmp and background picture used on
alliance victory - gfx\interface\frontend\endgame_XXXXX.bmp
* skip inexistent major alliances on scenario end statistics
screen.
– 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.
– Tweaked AI IC builds rules:
* replaced min 20 MP requirement with check for just available MP
to start the build
* added extra penalty for building IC in non-national provinces
(even if those are into the IC list of the AI)
– Tweaked Nuke AI targeting:
* nukestriketolerance now is used as starting value in Nuke
evaluation - higher it is, more often the AI will use nukes. It is
recommended to be set a bit under 0.0 to order AI to nuke bigger
enemy core provinces. Good values: -50 to -20
* check if NukeStrikeDesirability is less or equal to 0 and do not
use nukes if so.
* Starting value set to -100
* National provinces get targeting bonus equal to: (MP + IC/2)*0.5
*10
* Provinces with Nuclear reactors get target bonus equal to:
Reactor Size * 20.0
* Units in province target bonus = Total Units * 0.5
* Only if result target bonus is > 0:
# multiply it by sqrt(total IC of the targeted country)
# if province owner is allied, multiply by 0.2 – reduced
chance to bomb allied provinces
* If result target bonus is less or equal to 0 skip province
* Multiple target bonus by NukeStrikeDesirability and return the
final value. Good value for NukeStrikeDesirability seems to be
about 50.0. If set to 0.0 or less AI will not use nukes.
– Added 10 new areas and 4 new regions in European Russia:
* Areas: Belgorod, Kola, Petrozavodsk, Mozyr, Poltava, Nalchik,
Groznyi, Engels, Orenburg, Vorkuta
* Regions: Eastern Russia, Western Russia, Southern Russia,
Northern Russia
– Removed Fog of War for Masters over Puppets’ provinces even when
the puppet is not allied to the master.
– Removed hard-coded Min/Max positioning for SSN (was set to be
equal to SS) and CVL (was set to be equal to CV). NOTE: Modders
should check and update doctrines!!!!
– Fixed a bug with lost air units on civil war outbreak (destroyed
all air fleets located on revolted provinces). Air units will
switch side on air base capture by revolted/regular ID countries.
– Allow province name change (the one used on tool-tips/events, not
on the map!) from province records in scenario files. The name can
be stored in a csv file and can be set in the inc files of a
scenario. Example: PROV_PETROGRAD;Petrograd;;;;;;;;;;X is stored
in darkest_hour.csv. In 1914\bases.inc the following line sets the
name of the province: (province = { id = 553 name =
"PROV_PETROGRAD" } # Leningrad to Petrograd)
Map

DH specifics for map editing


The general editing for DH is identical to all other Europa-engine games, but we did some changes to the
folder structure in regard to map files that make it easier for "normal" mods to use new maps, and also cuts
down on the size of the game.
All in all a great improvement for everyone except for those working on the map, but when you can handle
the mapmaker you can handle this too. All map related files are now in the map folder, or in the subfolders
there.
If you want to use the object editor to edit a new map in a subfolder, you need to move the db files to their
vanilla location, province.csv to db, province_names.csv to the configfolder, and the mapfiles out of the
subfolder directly to the /map folder.
Make a backup before you do that or mods using the vanilla map will no longer work!!
The object editor doesn't work with the topographic map for DH, it simply can't handled a patchwork of
different maps without throwing errors around. As a workaround you have to use a Zoom level 1 full map
and use it for the work with the object editor. Remember to save all your files from Zoom 1.
You can find the additional layers of the DH Full map in the Map Modding thread in our modding forums:
http://forum.paradoxplaza.com/forum/for ... ifications

You should alread have copied the mapfiles from the /map/map_1 folder to the /map folder, now copy the
three layers in the archive into the /map folder as well. If you have setup your maptools right (pointing at
the Darkest Hour root folder). If you have done everything right, you can now use the object editor, and the
mapextractor again.
Remember to copy the changed province.csv back to the map/map_x subfolder once you are finished!!
Remember to copy your backup of the /map folder back once you are finished!!

DH specifics for distance.csv


This is something new for DH, it means a lot of extra work for you, but it's worth it in the long run. At the
end of the misc.txt you will find the following line:
# Distance calculation model. 0 - use the old, map based
calculation (slower and incorrect); 1 - use real world distances
from airdist.tbl (based on distances.csv) and navaldist2.tbl files
0 #0
If you leave it at 0 you won't need a distance.csv file at all, so this is basically how other games work, the
distance are calculated via pixel distance. This means however that you have totally wrong distances in the
oceans and everywhere else where provinces are scaled up for better playability. This gets more extreme in
mods that use new scenario maps for individual regions.
The new calculation model also handles distance calcualtions considerably faster, which means the game
run faster in situations with lots of units moving around. Mid-war situation like when the allied bombing
campaings start will benefit from this.

When you turn it to 1 in the misc.txt you will need a distance.csv file. It's pretty straight forward:
2761;Total Provinces;ID;ENG;Region
Latitude;Longitude;;;
0.00000000;0.00000000;PROV0;(Embarked);Embarked
63.15248611;-21.05238056;PROV1;Reykjavik;Iceland
62.01770833;-6.77187778;PROV2;Torshavn;Iceland
65.01720000;-18.10212778;PROV3;Akureyri;Iceland
58.21600000;-6.38593056;PROV4;Stornoway;Scotland
58.98036944;-2.95631389;PROV5;Scapa Flow;Scotland

Simply get the necessary data out of goggle earth or your prefered GIS. Once you are finished, delete the
airdist.tbl and the navaldist2.tbl from your map/map_x folder. Once you start the game, the exe will
generate a new airdist.tbl. This should be pretty quick, but might take a few minutes depending on your
hardware. Once you load a scenario, the exe will generate a new navaldist2.tbl. This will take some time,
even on a fast system around 5 minutes, or considerable longer on old systems.
WARNING: the engine will also recompile the navaldist2.tbl when you change seaprovinces assigned to
landprovinces and harbors in the province.csv.

DH specifics for province number


There are three values that need to be IDENTICAL.

Maptools folder:
/settings.txt
#The max province number
MaxProvinceNumber=XYZW
Example: MaxProvinceNumber=2761
/mods/x/db/misc.txt
# Total provinces. There is a hard-coded limit to 10000.
adjacent.tbl must be updated after any change
XYZW
Example: 2761
/map/map_x/distances.csv
XYZW;Total Provinces;ID;ENG;Region
Example: 2761;Total Provinces;ID;ENG;Region

The distances.csv file will only work when its not longer then XYZW+3 lines.
So when you have a map with 2761 provinces, the distance.csv has to be 2764 lines long.

DH specifics for map debug logs


In file settings.cfg you can activate debug logs specifically added for map editing.
2 # Extra debug logs (savedebug.txt): 0 = disabled, 1 = enabled, 2 = enabled + extra map statistics

This will give you pretty much all the information you will need while setting up your db files properly:
– warnings when map icons like AA and forts are placed in the wrong provinces;
– warnings when coastal provinces have no or the wrong seaprovince defined;
– warnings when something is wrong with the distance between two provinces;
– warnings when the amount of connections for a province seems wrong;
– warnings when a province ID is not used on the map;
– and many more useful reports (even on resources and climates!);
How to port a HOI2 Arma Mod to Darkest Hour
Porting a HOI2 Armageddon Mod to Darkest Hour is very simple, because DH Core is fully compatible
with Armageddon. There are only a few things that need to be changed for a mod to start properly
because some bugfixes and new features introduced by DH were not possible without modification that
affect basic files.

The Darkest Hour Mods Pack


In the main folder of Darkest Hour there is a folder called Modding documentation which, among many
useful things (this Guide included!), contains another folder called Darkest Hour Mods Pack 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.bmp - 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 Mods 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;

You might also like