How to modify the Technology Tree
Hello and welcome to this guide. This guide is here to show you how to modify the technology tree. We will look at what the technology tree files looks like and then I shall separate the data and explain to you what they mean. Using this guide will allow you to make your own technology without getting confused. The actual process will not be explained till later as I am currently unable to edit/create pictures. (Photoshop is on a different computer and I'm on holiday.)
Here is the first 42 lines of the Aircraft_tech file:
Code:
[FONT=Arial][SIZE=1]technology =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ id = 4[/SIZE][/FONT]
[FONT=Arial][SIZE=1]category = aircraft[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name = TECH_AIRCRAFT_NAME # Localized name[/SIZE][/FONT]
[FONT=Arial][SIZE=1]desc = TECH_AIRCRAFT_DESC # Localized description[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# label =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# { tag = TECH_CAT_SINGLE[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# position = { x = 60 y = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# label =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# { tag = TECH_CAT_DOUBLE[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# position = { x = 340 y = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# } [/SIZE][/FONT]
[FONT=Arial][SIZE=1]#### WW1 Era Single engine ###[/SIZE][/FONT]
[FONT=Arial][SIZE=1]label =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ tag = TECH_CAT_fighters[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 10 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1] # Prewar unarmed Reconaisence[/SIZE][/FONT]
[FONT=Arial][SIZE=1]application =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ id = 4500[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name = TECH_APP_AIRCRAFT_50_NAME[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 24 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "DH1910"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1910[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Interwar Short Range Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4501 name = TECH_CMP_AIRCRAFT_50_1_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Interwar Fighter Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4502 name = TECH_CMP_AIRCRAFT_50_2_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# ???[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4503 name = TECH_CMP_AIRCRAFT_50_3_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Optical Signaling[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4504 name = TECH_CMP_AIRCRAFT_50_4_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Interwar Fighter Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4505 name = TECH_CMP_AIRCRAFT_50_5_NAME type = aircraft_testing difficulty = 4 double_time = yes }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]required = { }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ command = { type = activate_unit_type which = interceptor }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command = { type = new_model which = interceptor value = 0 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
Now it looks very complex but don't worry. Everything will be explained soon. The first thing you see is the most important one but you do not edit this at all else the game will break:
Code:
[FONT=Arial][SIZE=1]id = 4[/SIZE][/FONT]
[FONT=Arial][SIZE=1]category = aircraft[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name = TECH_AIRCRAFT_NAME # Localized name[/SIZE][/FONT]
[FONT=Arial][SIZE=1]desc = TECH_AIRCRAFT_DESC # Localized description[/SIZE][/FONT]
Code:
[FONT=Arial][SIZE=1]# label =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# { tag = TECH_CAT_SINGLE[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# position = { x = 60 y = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# label =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# { tag = TECH_CAT_DOUBLE[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# position = { x = 340 y = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# } [/SIZE][/FONT]
Before we get to main part I feel I should explain what the X and Y really means. X is length and Y is hight. The Label is always 12 pixels high so that means that if you want a technology button right underneath it, just add 12 on to the Y.
So this is the Label position:
Code:
[FONT=Arial][SIZE=1]position = { x = 60 y = 4 }[/SIZE][/FONT]
Code:
[FONT=Arial][SIZE=1]position = { x = 60 y = 16 }[/SIZE][/FONT]
Also note that the technology button is 116 pixels wide and 16 pixels high. So that means 116X and 16Y. Let's show you how it's done:
Let's say this is the button A current position
Code:
[FONT=Arial][SIZE=1]position = { x = 60 y = 4 }[/SIZE][/FONT]
Code:
[FONT=Arial][SIZE=1]position = { x = 176 y = 20 }[/SIZE][/FONT]
So Button B will be in this position instead.
Code:
[FONT=Arial][SIZE=1]position = { x = 178 y = 22 }[/SIZE][/FONT]
Please note this is will only be accurate with the DH Full Technology buttons. The HOI2 or a custom made version will not be as large or tall. Adjust accordingly. Now that you know how to do positioning we should move on to the actual technology itself! Let's look at the first part of it now:
Code:
[FONT=Arial][SIZE=1]# Prewar unarmed Reconaisence[/SIZE][/FONT]
[FONT=Arial][SIZE=1]application =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ id = 4500[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name = TECH_APP_AIRCRAFT_50_NAME[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 24 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "DH1910"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1910[/SIZE][/FONT]
Application tells the game to prepare to read this technology.
ID tells the game what it is. It must be unique otherwise it will make the game crash!
Name gives it the Long Name of the technology button. There is 2 names that you must fill in if your making a new one. The Long Name is what shows up when you click on it. It's also used when you start researching it.
The Short Name is used to show the text on the button. You will not see the short name here as the developers of HOI2 have already given it a Short Name and the DH developers just changed the Long Name.
Position have already been explained above.
Picture is not that important but it does make it look professional though. You can use the same picture for most of the technology but that's just being lazy. In the tech pictures folder, you cannot have them in a bunch of folders as the game will only looks what's in the tech pictures folder. Nothing else. So no fancy Aircraft technology pictures in one folder and Tanks in another.
Year is very important for players as it will make them decide when to research it. You can put anything number in it from 1 to 9999. I don't know if you can go higher or lower but I don't want to try.
Let's look at the second part now:
Code:
[FONT=Arial][SIZE=1]# Interwar Short Range Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4501 name = TECH_CMP_AIRCRAFT_50_1_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Interwar Fighter Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4502 name = TECH_CMP_AIRCRAFT_50_2_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# ???[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4503 name = TECH_CMP_AIRCRAFT_50_3_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Optical Signaling[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4504 name = TECH_CMP_AIRCRAFT_50_4_NAME type = aeronautics difficulty = 4 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]# Interwar Fighter Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component = { id = 4505 name = TECH_CMP_AIRCRAFT_50_5_NAME type = aircraft_testing difficulty = 4 double_time = yes }[/SIZE][/FONT]
Components are the real deal as without it the tech will not work at all. Each components will need 3 things, ID, Name , Type and Difficulty. I will only explain the type and difficulty as I think you know what the ID and Name is by now.
Type is the technology components that is recirued to research the technology itself. The list of what technology components you can use should be in your Modding Documentation folder.
Difficulty is simply how hard it is to research The higher number, the harder. The player may use a team that with a skill level 8 and it can research this technology faster than a team with a skill level 4 will. Make sure it's reasonable. A difficulty of 50 means it will take forever to research while a difficulty of 1 will make it very easy.
Lastly you will notice the Double_Time at the end. That tells to game to speed the research up. This is normally used in the last segment to pretend that a prototype is being tested. You can use this anywhere within the components sections.
Now we will look at the Last part of the technology:
Code:
[FONT=Arial][SIZE=1]required = { }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects =[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{ command = { type = activate_unit_type which = interceptor }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command = { type = new_model which = interceptor value = 0 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
The Effects is what makes the technology do stuff. As you can see this technology will allow you to build Interceptors! If you want to know what effects you can use, then look at the event commands file. 90% of the event commands can be used in the technology effects as well.
MAKE SURE TO CLOSE YOUR BRACKETS! This is one of the biggest causes of errors when modifying anything in this game. Before you finish make sure to check the brackets are closed.
Part2: Adding a new technology.
We will now add a 1973 CAS unit. To see how to add a new model you will need to look at a different guide as I will only be focusing on the technology side of it.
As you can see, I have already changed and added some more technology into the Aircraft Tree as a proof of concept.
Now we got a nice look at the technology tree in-game, we will now look at the technology tree out-game.
I always copy and paste the technology that I aim to add to. It reduces the amount of time it will take to make one. I have now changed the Long Name, ID and the Picture. I have also changed the Comment as well.
Code:
[FONT=Arial][SIZE=1]#Mid Coldwar Close Air Support Aircraft[/SIZE][/FONT]
[FONT=Arial][SIZE=1]application=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{id = 95140[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name= TECH_APP_AIRCRAFT_210_NAME # new[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 456 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "CW95140"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1974[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Short-Range Bomber Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15131 name = TECH_CMP_AIRCRAFT_113_1_NAME type =fighter_design difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15132 name = TECH_CMP_AIRCRAFT_113_2_NAME type = aeronauticsdifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Napalm Bombs[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15133 name = TECH_CMP_AIRCRAFT_113_3_NAME type =general_equipment difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Improved Centimetric Airborne Radar Navigation[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15134 name = TECH_CMP_AIRCRAFT_113_4_NAME type = rocketrydifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15135 name = TECH_CMP_AIRCRAFT_113_5_NAME type =aircraft_testing difficulty = 8 double_time = yes }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]required = { 15120 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{command = { type = new_model which = cas value = 6 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command= { type = scrap_model which = cas value = 5 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
Code:
[FONT=Arial][SIZE=1]#Mid Coldwar Close Air Support Aircraft[/SIZE][/FONT]
[FONT=Arial][SIZE=1]application=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{id = 95140[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name= TECH_APP_AIRCRAFT_210_NAME # new[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 456 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "CW95140"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1974[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Short-Range Bomber Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15131 name = TECH_CMP_AIRCRAFT_113_1_NAME type =fighter_design difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15132 name = TECH_CMP_AIRCRAFT_113_2_NAME type = aeronauticsdifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Napalm Bombs[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15133 name = TECH_CMP_AIRCRAFT_113_3_NAME type =general_equipment difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Improved Centimetric Airborne Radar Navigation[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15134 name = TECH_CMP_AIRCRAFT_113_4_NAME type = rocketrydifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 15135 name = TECH_CMP_AIRCRAFT_113_5_NAME type =aircraft_testing difficulty = 8 double_time = yes }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]required = { 15120 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{command = { type = new_model which = cas value = 7 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command= { type = scrap_model which = cas value = 6 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
Code:
[FONT=Arial][SIZE=1]#Mid Coldwar Close Air Support Aircraft[/SIZE][/FONT]
[FONT=Arial][SIZE=1]application=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{id = 95140[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name= TECH_APP_AIRCRAFT_210_NAME # new[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 456 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "CW95140"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1974[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Short-Range Bomber Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95141 name = TECH_CMP_AIRCRAFT_113_1_NAME type =fighter_design difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95142 name = TECH_CMP_AIRCRAFT_113_2_NAME type = aeronauticsdifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Napalm Bombs[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95143 name = TECH_CMP_AIRCRAFT_113_3_NAME type =general_equipment difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Improved Centimetric Airborne Radar Navigation[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95144 name = TECH_CMP_AIRCRAFT_113_4_NAME type = rocketrydifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95145 name = TECH_CMP_AIRCRAFT_113_5_NAME type =aircraft_testing difficulty = 8 double_time = yes }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]required = { 15130 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{command = { type = new_model which = cas value = 7 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command= { type = scrap_model which = cas value = 6 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
Code:
[FONT=Times New Roman][SIZE=3][FONT=Arial][SIZE=1]#Mid Coldwar Close Air Support Aircraft[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=1]application=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{id = 95140[/SIZE][/FONT]
[FONT=Arial][SIZE=1]name= TECH_APP_AIRCRAFT_210_NAME # new[/SIZE][/FONT]
[FONT=Arial][SIZE=1]position = { x = 3 y = 472 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1] picture = "CW95140"[/SIZE][/FONT]
[FONT=Arial][SIZE=1]year = 1974[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Short-Range Bomber Engine[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95141 name = TECH_CMP_AIRCRAFT_113_1_NAME type =fighter_design difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Airframe[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95142 name = TECH_CMP_AIRCRAFT_113_2_NAME type = aeronauticsdifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Napalm Bombs[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95143 name = TECH_CMP_AIRCRAFT_113_3_NAME type =general_equipment difficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Improved Centimetric Airborne Radar Navigation[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95144 name = TECH_CMP_AIRCRAFT_113_4_NAME type = rocketrydifficulty = 8 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]#Advanced Light Bomber Prototype Tests[/SIZE][/FONT]
[FONT=Arial][SIZE=1]component= { id = 95145 name = TECH_CMP_AIRCRAFT_113_5_NAME type =aircraft_testing difficulty = 8 double_time = yes }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]required = { 15130 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]effects=[/SIZE][/FONT]
[FONT=Arial][SIZE=1]{command = { type = new_model which = cas value = 7 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]command= { type = scrap_model which = cas value = 6 }[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
[FONT=Arial][SIZE=1]}[/SIZE][/FONT]
As you can see the technology is “touching” the one above. It doesn't look that nice to me. So I will add 2 to the Y.
It looks a lot nicer now! Let's start researching it!
Now that we have done it, we will need to look at the unit panel to see if it worked.
You have just made a new technology! What you have learned here can be used in any technology tree and have fun!
Thank you for reading this guide. Let me know if I left anything out or any errors made in this.
Last edited: