Guide To Darkest Hour
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.
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
}
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.
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.
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
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!!
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.
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.
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.
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