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...