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

unmerged(90172)

Recruit
Jan 1, 2008
5
0
hi all. I was wondering how to go about making the divisions nation specific stat wise. ie German small arms where better then Cuban small arms yet in the game the infantry is all the same. if two countries of 1936 infantry their isn't any difference at all. Any suggestions would be welcome.
 

Fernando Torres

Darkest Hour Game Designer
48 Badges
Dec 2, 2006
10.182
39
rayan-nezzar.fr
  • Rome: Vae Victis
  • Penumbra - Black Plague
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Rome Gold
  • Semper Fi
  • Sengoku
  • Ship Simulator Extremes
  • Supreme Ruler 2020
  • Supreme Ruler: Cold War
  • Victoria 2
  • Victoria 2: A House Divided
  • Europa Universalis III Complete
  • 500k Club
  • Crusader Kings II: Holy Knight (pre-order)
  • Elven Legacy Collection
  • Hearts of Iron II: Beta
  • Pride of Nations
  • Rise of Prussia
  • Mount & Blade: Warband
  • Mount & Blade: With Fire and Sword
  • Achtung Panzer
  • Hearts of Iron IV Sign-up
  • Hearts of Iron IV: Cadet
  • For The Glory
  • Hearts of Iron II: Armageddon
  • Cities in Motion
  • Crusader Kings II
  • Commander: Conquest of the Americas
  • Darkest Hour
  • Deus Vult
  • East India Company
  • East India Company Collection
  • Europa Universalis III: Chronicles
  • Europa Universalis III Complete
  • Europa Universalis IV
  • Arsenal of Democracy
  • For the Motherland
  • Hearts of Iron III
  • Heir to the Throne
  • Europa Universalis III Complete
  • Iron Cross
  • Legio
  • The Kings Crusade
  • Lost Empire - Immortals
  • Magicka
  • Majesty 2
  • March of the Eagles
You have to make a model for each doctrine.
What we are going to make for arm ie is :
- 5 models for Blitzkrieg doctrine
- 3 models for SOV doctrine
- 3 models for Combined Arms Doctrine
- 3 models for Uk Doctrine
- 2 models for Infantry Support
- 2 models for Others

We will use ARM and L ARM slots.
Then you have to allow the models build via techs.
 

UberFelix

First Lieutenant
6 Badges
Dec 9, 2005
259
0
  • Europa Universalis III Complete
  • Hearts of Iron III
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Europa Universalis: Rome
  • 500k Club
mikesnake said:
hi all. I was wondering how to go about making the divisions nation specific stat wise. ie German small arms where better then Cuban small arms yet in the game the infantry is all the same. if two countries of 1936 infantry their isn't any difference at all. Any suggestions would be welcome.

I'm interested in this as well.
The Japanese Navy had the long lance torpedoes which allowed their destroyers to engage US ships at long distances. In the battles in the Solomons, the Japanese destroyers dished out a lot of pain to the US ships. Admiral Tanaka scored a particularly impressive victory.
http://en.wikipedia.org/wiki/Battle_of_Tassafaronga
8 Japanese DD took on an American task force of 5 CA and 4DD and kicked their ass. In HOI, this would NEVER happen. Part of the fun of playing a WW2 simulation is to have a realistic simulation...

The other navies were not even close to developing a long lance torpedo.
 

unmerged(71491)

Sergeant
Mar 12, 2007
67
0
Well, taking an idea from HSR could you manage this through events? Like to show German and other general European nations superiority of small arms over, lets say... Nepal or Columbia, make an event giving european nations a +2 Soft Attack or something? Could this work?
 

Zuckergußgebäck

Den ökända hästen från Troja
11 Badges
Jan 7, 2004
8.851
2
  • Hearts of Iron II: Armageddon
  • Deus Vult
  • Europa Universalis III
  • Heir to the Throne
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Victoria: Revolutions
  • Victoria 2
  • Victoria 2: A House Divided
  • 500k Club
  • Hearts of Iron IV Sign-up
I actually devised a way of making models for specific nations recently. I haven´t got the strength or sence of game balance to do it myself, but here´s how:

Say that you want to make the T34 much better than the vanilla medium tank. You therefore create a new model in Hearts os Iron 2\db\units\divisions\armor.txt. Put a blank model in between, so that the semi-modern tank doesn´t upgrade to a T34. Something like this:

Code:
# 5 - Semi-Modern Tank
model = {
	cost 					= 29
	buildtime	 			= 185
	manpower 				= 7
	maxspeed 				= 11
	defaultorganisation 	= 30
	morale					= 30
	defensiveness 			= 24
	toughness				= 35
	softness				= 30
	suppression				= 1
	airdefence				= 5
	softattack				= 16
	hardattack				= 16
	airattack				= 4
	transportweight			= 45
	supplyconsumption 		= 3.0
	fuelconsumption			= 7
	speed_cap_art			= 12
	speed_cap_eng			= 12
	speed_cap_at			= 12
	speed_cap_aa			= 12
	upgrade_time_factor = 0.5
	upgrade_cost_factor = 1.0
}

# 6 - Placeholder
model = {
	cost 					= 29
	buildtime	 			= 185
	manpower 				= 7
	maxspeed 				= 11
	defaultorganisation 	= 30
	morale					= 30
	defensiveness 			= 24
	toughness				= 35
	softness				= 30
	suppression				= 1
	airdefence				= 5
	softattack				= 16
	hardattack				= 16
	airattack				= 4
	transportweight			= 45
	supplyconsumption 		= 3.0
	fuelconsumption			= 7
	speed_cap_art			= 12
	speed_cap_eng			= 12
	speed_cap_at			= 12
	speed_cap_aa			= 12
	upgrade_time_factor = 0.5
	upgrade_cost_factor = 1.0
}

# 7 - T34
model = {
	cost 					= 29
	buildtime	 			= 185
	manpower 				= 7
	maxspeed 				= 11
	defaultorganisation 	= 30
	morale					= 30
	defensiveness 			= 24
	toughness				= 35
	softness				= 30
	suppression				= 1
	airdefence				= 5
	softattack				= 16
	hardattack				= 16
	airattack				= 4
	transportweight			= 45
	supplyconsumption 		= 3.0
	fuelconsumption			= 7
	speed_cap_art			= 12
	speed_cap_eng			= 12
	speed_cap_at			= 12
	speed_cap_aa			= 12
	upgrade_time_factor = 0.5
	upgrade_cost_factor = 1.0
}
Of course you modify values accordingly.

Next, you create a new event file in Hearts of Iron 2\db\events and name it something like tankmodels.txt

In the file Hearts of Iron 2\db\events.txt you add a line at the bottom saying
Code:
event = "db\events\tankmodels.txt"

So far so good, now, go into the file tankmodels.txt and add an event looking something like this:

Code:
#########################################################################
#  T34
#########################################################################
event = {
	id = 999999999
	random = no
        country = SOV

	trigger = {
		technology = 2080 #Improved Medium tank
	}

	name = "We have researched the T34"
	desc = "Our scientists have designed a new tank"
	picture = "scientist"
	style = 0

	date = { day = 1 month = january year = 1936 }
	offset = 3 
	deathdate = { day = 30 month = december year = 1947 }

	action_a = {
		name = "Good"
		command = { type = new_model which = armor value = 7 }
	        command = { type = scrap_model which = armor value = 3 }
	}
}

This will sleep the default improved medium tank and instead use your own T34 stats. The final tuch is of course adding a model name in Hearts of Iron 2\config\models.csv
Edit the file in Notepad, and add the text
Code:
MODEL_SOV_5_7;T-34 m.41;T-34 m.41;T-34 m.41;T-34 m.41;T-34 m.41;T-34 m.41;;;;;X
in the appropriate place (toether with the other soviet model names.

Using this system will allow you to create your own stats for tanks and pretty much everything, using these custom stats for great powers, while still using the default models for minors. Just make sure that you put the tanks in the correct upgrade order and have a placeholder between the tanks for each country, you can customize the game enormously.



If you want the country to use your custom models on startup, this is what you do.

First of all, you want to prevent the activation events from triggering on startup. This is done by adding the event id's (in the case 999999999) to the line saying "sleepevent" in the file Hearts of Iron 2\scenarios\whateverthescenarioiscalled.eug.

Making sure that the right units show up is a little more tricky. Here´s what is to be done:

Add this to the country file before the closing bracket:

Code:
models = { 
        artillery = { 0 7 6 5 4 3 2 1 } 
        sp_artillery = { 0 3 2 1 } 
        rocket_artillery = { 0 } 
        sp_rct_artillery = { 0 } 
        anti_tank = { 0 4 3 2 1 } 
        tank_destroyer = { 0 4 3 2 1 } 
        light_armor_brigade = { 0 } 
        heavy_armor = { 0 2 1 } 
        super_heavy_armor = { 0 } 
        armored_car = { 0 } 
        anti_air = { 0 3 2 1 } 
        police = { 0 } 
        engineer = { 0 } 
        cag = { 0 4 3 2 1 } 
        infantry = { 0 5 4 3 2 1 } 
        cavalry = { 0 3 2 1 } 
        motorized = { 0 2 1 } 
        mechanized = { 0 } 
        light_armor = { 0 2 1 } 
        armor = { 0 5 4 3 2 1 } 
        paratrooper = { 0 2 1 } 
        marine = { 0 1 } 
        bergsjaeger = { 0 } 
        garrison = { 0 2 1 } 
        hq = { 0 2 1 } 
        militia = { 0 1 } 
        escort = { 0 } 
        multi_role = { 0 2 1 } 
        interceptor = { 0 4 3 2 1 } 
        strategic_bomber = { 0 2 1 } 
        tactical_bomber = { 0 4 3 2 1 } 
        naval_bomber = { 0 2 1 } 
        cas = { 0 } 
        transport_plane = { 0 } 
        flying_bomb = { 0 } 
        flying_rocket = { 0 } 
        battleship = { 0 3 2 1 } 
        light_cruiser = { 0 5 4 3 2 1 } 
        heavy_cruiser = { 0 5 4 3 2 1 } 
        battlecruiser = { 0 2 1 } 
        destroyer = { 0 5 4 3 2 1 } 
        carrier = { 0 4 3 2 1 } 
        submarine = { 0 2 1 } 
        transport = { 0 } 
        } 
    obsolete_models = { 
        artillery = { 0 1 2 3 4 5 6 } 
        sp_artillery = { 0 1 2 } 
        anti_tank = { 0 1 2 3 } 
        tank_destroyer = { 0 1 2 3 } 
        heavy_armor = { 0 1 } 
        anti_air = { 0 1 2 } 
        cag = { 0 1 } 
        infantry = { 0 1 2 3 4 } 
        cavalry = { 0 1 2 } 
        motorized = { 0 1 } 
        light_armor = { 0 1 } 
        armor = { 0 1 2 3 4 } 
        paratrooper = { 0 1 } 
        marine = { 0 } 
        garrison = { 0 1 } 
        hq = { 0 1 } 
        militia = { 0 } 
        multi_role = { 0 1 } 
        interceptor = { 0 1 2 3 } 
        strategic_bomber = { 0 1 } 
        tactical_bomber = { 0 1 2 3 } 
        naval_bomber = { 0 1 } 
        battleship = { 0 1 } 
        light_cruiser = { 0 1 2 3 } 
        heavy_cruiser = { 0 1 2 3 } 
        battlecruiser = { 0 } 
        destroyer = { 0 1 2 3 } 
        submarine = { 0 } 
        }

and modify model numbers accordingly. In this case, I think that you can be content with just keeping the line referring to armor, making it look something like this:

Code:
models = { 
        armor = { 0 5 4 3 2 1 6 7 } 
        } 
obsolete_models = { 
        armor = { 0 1 2 3 4 5 6 } 
        }

This will override the models otherwise activated by the tech tree, and give room for your own models. (which are number 7 and up). Other unit types (such as infantry) are not affected.

I hope this can be of some use...
 

Zuckergußgebäck

Den ökända hästen från Troja
11 Badges
Jan 7, 2004
8.851
2
  • Hearts of Iron II: Armageddon
  • Deus Vult
  • Europa Universalis III
  • Heir to the Throne
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Victoria: Revolutions
  • Victoria 2
  • Victoria 2: A House Divided
  • 500k Club
  • Hearts of Iron IV Sign-up
Bumbar said:
Won't this prevent t34, from being upgraded, like normal arm-3 would be?
Unless you add other, more advanced units later, it won´t be upgraded. But I didn´t make this just to give the T-34 more advanced stats - one could add all soviet tanks ever produced to the file.
 
Last edited:

madprofmike

Major
31 Badges
May 28, 2006
701
3
  • Europa Universalis IV: Pre-order
  • Stellaris: Federations
  • Stellaris: Lithoids
  • Stellaris: Ancient Relics
  • Stellaris: Megacorp
  • Stellaris: Distant Stars
  • Stellaris: Apocalypse
  • Stellaris: Humanoids Species Pack
  • Stellaris: Synthetic Dawn
  • Stellaris - Path to Destruction bundle
  • Stellaris: Leviathans Story Pack
  • Stellaris: Digital Anniversary Edition
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV Sign-up
  • Stellaris: Galaxy Edition
  • Stellaris
  • Arsenal of Democracy
  • 500k Club
  • Victoria 2: A House Divided
  • Victoria 2
  • Semper Fi
  • Iron Cross
  • Hearts of Iron III Collection
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis IV
  • Europa Universalis III: Chronicles
  • Darkest Hour
  • Crusader Kings II
  • Hearts of Iron II: Armageddon
i have been putting a lot of thought into this i have been trying (but having some trouble with the commands codes but the idea is that nations can research "Advance Design Study" techs which improve the divisions so as a player you can make the choice of quality verses quantity for eq. german tanks were better then american and russian tanks but both russia and the usa went with more is better and it work, most time the german tanks had to take on 5 or more of the enemy tanks at a time on a one on one batter they kicked ass but they never got the numbers needed.

# Advance Armor Design Study
application =
{ id = 5210
name = TECH_APP_INDUSTRY_21_NAME
desc = TECH_APP_INDUSTRY_21_DESC
position = { x = 1 y = 370 }
year = 1936
component = { id = 5211 name = TECH_CMP_INDUSTRY_21_1_NAME type = artillery difficulty = 10 }
component = { id = 5212 name = TECH_CMP_INDUSTRY_21_2_NAME type = mechanics difficulty = 10 }
component = { id = 5213 name = TECH_CMP_INDUSTRY_21_3_NAME type = general_equipment difficulty = 10 }
component = { id = 5214 name = TECH_CMP_INDUSTRY_21_4_NAME type = technical_efficiency difficulty = 10 }
component = { id = 5215 name = TECH_CMP_INDUSTRY_21_5_NAME type = industrial_engineering difficulty = 10 }
required = { }
effects =
{
command = { type = defensiveness which = armor value = 3 }
command = { type = defensiveness which = light_armor value = 3 }
command = { type = defensiveness which = mechanized value = 3 }
command = { type = defensiveness which = light_armor_brigade value = 3 }
command = { type = defensiveness which = armored_car value = 3 }
command = { type = defensiveness which = heavy_armor value = 3 }
command = { type = defensiveness which = super_heavy_armor value = 3 }
command = { type = defensiveness which = tank_destroyer value = 3 }
command = { type = defensiveness which = sp_artillery value = 3 }
command = { type = defensiveness which = sp_rct_artillery value = 3 }
command = { type = air_defense which = armor value = 1 }
command = { type = air_defense which = light_armor value = 1 }
command = { type = air_defense which = mechanized value = 1 }
command = { type = air_defense which = light_armor_brigade value = 1 }
command = { type = air_defense which = armored_car value = 1 }
command = { type = air_defense which = heavy_armor value = 1 }
command = { type = air_defense which = super_heavy_armor value = 1 }
command = { type = air_defense which = tank_destroyer value = 1 }
command = { type = air_defense which = sp_artillery value = 1 }
command = { type = air_defense which = sp_rct_artillery value = 1 }
command = { type = hard_attack which = armor value = 2 }
command = { type = hard_attack which = light_armor value = 2 }
command = { type = hard_attack which = mechanized value = 2 }
command = { type = hard_attack which = light_armor_brigade value = 2 }
command = { type = hard_attack which = armored_car value = 2 }
command = { type = hard_attack which = heavy_armor value = 2 }
command = { type = hard_attack which = super_heavy_armor value = 2 }
command = { type = hard_attack which = tank_destroyer value = 2 }
command = { type = hard_attack which = sp_artillery value = 2 }
command = { type = hard_attack which = sp_rct_artillery value = 2 }
command = { type = soft_attack which = armor value = 1 }
command = { type = soft_attack which = light_armor value = 1 }
command = { type = soft_attack which = mechanized value = 1 }
command = { type = soft_attack which = light_armor_brigade value = 1 }
command = { type = soft_attack which = armored_car value = 1 }
command = { type = soft_attack which = heavy_armor value = 1 }
command = { type = soft_attack which = super_heavy_armor value = 1 }
command = { type = soft_attack which = tank_destroyer value = 1 }
command = { type = soft_attack which = sp_artillery value = 1 }
command = { type = soft_attack which = sp_rct_artillery value = 1 }
command = { type = supply_consumption which = armor value = 0.1 }
command = { type = fuel_consumption which = armor value = 0.1 }
command = { type = supply_consumption which = light_armor value = 0.1 }
command = { type = fuel_consumption which = light_armor value = 0.1 }
command = { type = supply_consumption which = mechanized value = 0.1 }
command = { type = fuel_consumption which = mechanized value = 0.1 }
command = { type = build_cost which = armor value = 2 }
command = { type = build_cost which = light_armor value = 2 }
command = { type = build_cost which = mechanized value = 2 }
command = { type = build_cost which = light_armor_brigade value = 2 }
command = { type = build_cost which = armored_car value = 2 }
command = { type = build_cost which = heavy_armor value = 2 }
command = { type = build_cost which = super_heavy_armor value = 2 }
command = { type = build_cost which = tank_destroyer value = 2 }
command = { type = build_cost which = sp_artillery value = 2 }
command = { type = build_cost which = sp_rct_artillery value = 2 }
command = { type = build_time which = armor value = 20 }
command = { type = build_time which = light_armor value = 20 }
command = { type = build_time which = mechanized value = 20 }
command = { type = build_time which = light_armor_brigade value = 10 }
command = { type = build_time which = armored_car value = 10 }
command = { type = build_time which = heavy_armor value = 10 }
command = { type = build_time which = super_heavy_armor value = 10 }
command = { type = build_time which = tank_destroyer value = 10 }
command = { type = build_time which = sp_artillery value = 10 }
command = { type = build_time which = sp_rct_artillery value = 10 }
command = { type = max_organization which = armor value = 10 }
command = { type = morale which = armor value = 10 }
command = { type = max_organization which = light_armor value = 10 }
command = { type = morale which = light_armor value = 10 }
command = { type = max_organization which = mechanized value = 10 }
command = { type = morale which = mechanized value = 10 }
}
}



i have developed ones for air units naval and so on but i am debugging them right now

and i added a event to deactivate the tech by 1940 so that so as you can not build a bunch of armor at the lower cost then have them upgrade at no cost so this choice of quality vs quantity is made before the war (wish i could have it happen at any point but i cant figure out how to do it). unless anyone knows how to have them upgrade and add the cost (much like build times and cost works)