Modding Technology Trees

  • Post author:
  • Post category:Guides
  • Disclaimer
  • Overview of an existing vanilla tree
  • Changing the effect of an existing technology
  • Adding a new technology to an existing tree
  • Clean Slate
  • Separate trees for factions within the same culture
  • Technology UI groups & Watermarks


This guide assumes a comfortable level of familiarity with RPFM and DB editing.

Overview of an existing vanilla tree

Modding technologies in TWW2 is very similar to modding Skills for agents. It follows a core definition of the technology with icons, a junction to effects and a similar Indent/Tier structure for layout.

The essentials…


The Technologies table defines the technology key used in the other tables, it further defines the icon displayed in the tree and it also contains a unique identifier.

Technology_effects is where you junction the technology key from the technologies table with the effect key from the effects table, alongside an effect scope and the value of the effect.

Technology nodes is where the technology key from technologies is junctioned to a faction’s technology node set key which defines the culture which will use the corresponding node set key.
The technology node set key is sadly, at this point of writing, locked behind the compiled startpos and it is not possible to change it, or assign different keys to different cultures or factions.
This poses a problem if you were interested in editing technology trees in such a way that different factions, within the same culture, have a different tree. There are some workarounds for this which will be described later on in the guide.

Technology nodes is also where we junction the technology key to a unique node key, which is used for the technology node links and technology ui groups to node junction table.

Technology node links is where we link technology node keys together, to create dependencies between various technologies in the tree.

As an example if we look at the vanilla technology tech_vmp_bones_02a we can see that in the local_en.pack it is the Risen Standard Bearers technology, also further hinted at by the use of the icon wh_main_vmp_risen_standard_bearers.
If we look in the technology nodes table, we can see it is positioned in Indent -1, Tier 1.

Indent & Tier overview

Similarly we can find tech_vmp_bones_06 aka Distribute Grave Gifts at 1,2.
If we look at the node links we can see tech_vmp_bones_06 points to tech_vmp_bones_05, with a Parent Link Position of 3 and a Child Link Position of 1, which in the image above creates that line between them.

The Link Positions goes from 1 on the top, 2 on the right, 3 on the bottom and 4 on the left.

If you start editing a technology tree, it’ll change for all factions which utilize that tree, because they are all sharing the same culture. That’s how it is defined in technology_node_sets_tables.

Changing the effect of an existing technology

Let us say we wanted to tweak or change the effect of the Vampire Counts technology Risen Champions.
After verifying that it is tech_vmp_bones_08, we can look in the technology effects junction table and see that it has the effect wh_main_effect_tech_unit_xp_levels_skeletons assigned, with an effect scope of faction_to_character_own_unseen and a value of 2.
If we look through the effect we can see that it matches up with the in game description, that it increases the Recruit Rank for a specific unit_set of units with the value of +2.
If we were to change the value to +5, those particular units would start at a subsequent higher rank when recruited.
We could also insert a different effect all together, with a different scope and change the outcome of that technology all together.

Adding a new technology to an existing technology tree

So adding a new technology is as previously mentioned, fairly similar to adding a new skill to an Agent.
We’ll start in the technologies table and define a key first.
We’ll call it vmp_tech_example, we’ll find an icon for it in the UI\campaign ui\technologies folder and we’ll pick tech_cst_command_02.
We’ll further give it a unique index number and fill in the remainder of the details as the vanilla technologies use.

It should look similar to this.

For the sake of simplicity we’ll repurpose the same effect used for tech_vmp_bones_08.

Now we need to figure out where on the tech tree we are going to position this new skill. We do so in a similar fashion as is done with the agent skill tree, using Indent and Tier positioning. We’ll need to find a location on the existing vanilla tree that isn’t currently occupied.
By looking at what is used in the technology nodes table we can see there is an empty spot in Indent 5, Tier 5.
We’ll set Research Points Required to 100, this corresponds to 1 turn, at a default research rate of 100%. If we set it to 500, it’ll be 5 turns, at 100% research rate.

Next we’ll add the corresponding loc files, in the technologies loc table, with three keys, technologies_onscreen_name_vmp_tech_example technologies_short_description_vmp_tech_example and technologies_long_description_vmp_tech_example.

Note: Long description isn’t used, but for the sake of the future and following vanilla strictly, it’s better to include it.

If we load up the game we can see that the new custom tech shows up on the vampire counts technology tree, in position 5,5.

We could position it elsewhere, say 0,4 and use the technology node links table to make it dependent on the Risen Champions technology.

It would look like this in game…

Clean Slate

So while we cannot create a new node set key and overwrite the vanilla technology trees in that fashion, there is a workaround we can employ which produces a similar result.

Firstly we’ll clean out technology nodes except for all the vanilla vampire count technologies.
Then we are going to assign them all the same Indent and Tier coordinates at 0,0.
Then we’ll assign them all the custom technology we created earlier, while we delete the assigned effect from the technology effects junction table.

Further more we can lock the technology behind a building using technology required building levels junction table.

In game it shows up like this, with the building required shown in the banner above the technology.

This is obviously an imperial building, which Vampire Counts will never have access to, effectively making this technology unavailable.
Similarly you could use technology required building levels junction table to create a fully custom tech tree which, in this example’s use of the vampire counts, would create dependencies for their buildings to unlock the technologies.

It could look something like this.

Here all the vanilla technologies are masked under Master of the Putrid Horde. It’s a simpler tech tree, because there are no node links used at all.
Under this setup, the custom Master of the Putrid Horde technology key is used across all the vanilla technologies with the same Indent, Tier coordinates and cost for all the technology nodes. Furthermore, the various technologies in the tree are restricted to various vampire counts buildings.

It gets a little trickier if you want to do this in a technology tree with node links attached.

Here Master of the Swarm hides all the vanilla technology nodes.
All vanilla technologies shares the same Indent, Tier, they were all assigned the same technology key for Master of the Swarm and all are linked to Corruptor of the Forests in the node links table.

It looks something like this in the DB…

This method also effectively removes the necessity for a separate rogue dummy technology node on the tree.
It’s unfortunately essential that all the vanilla technologies share the same technology key, because otherwise it wouldn’t be possible to mask them like this.
If you were to put a dummy blank technology key on all the vanilla nodes, under an actual custom technology, chances are one of the multitude of vanilla technologies would be the one that comes out on top, regardless of table or technology key naming conventions. Doing it this way does however not appear to have any adverse effects in terms of gameplay.

Separate trees for factions within the same culture

As mentioned earlier under overview, if you start rearranging the vanilla technology nodes around, it changes the tree for all factions of the same race because they all share the same culture and thus the same technology node set. There is however a way around that.

First we’ll rearrange all the vanilla techs in 0,0 coordinates and assign them a dummy technology key, with no effects and zero out their cost.

It’ll look something like this…

Then we’ll create new custom technologies and arrange them like so…

But we’ll assign them to a specific faction, in this example we’ll use wh_main_vmp_schwartzhafen aka the Carsteins.

Then we’ll do something similar for another faction, say wh_main_vmp_vampire_counts aka Vampire Counts lead by Mannfred. We’ll repurpose the vanilla technologies for him.

In game this will then look like this…


Vampire Counts/Mannfred…

Barrow Legion/Old man Heinrich…

This way you effectively have different technology trees for separate factions. This however requires setting up a technology tree for all factions of the same culture in the game, otherwise some will be left without technologies.

This method also sadly requires the dummy technology being shown, because attempts to mask it in coordinates other than 0,0 causes inexplicable crashes.

Technology UI groups & Watermarks

Some of the later added or changed technology trees uses technology UI groupings to group a selection of technologies together.

As seen here…

This can be done with two tables…
technology_ui_groups_tables and technology_ui_groups_to_technology_nodes_junctions_tables

And looks something like this…

It uses the top left and bottom right technologies in the tree to define the bounding.

Note: That the colors aren’t standard RGB, it is not known precisely what color coding they follow.

Some of the vanilla technology trees like Tomb Kings also have watermarks in their technology ui groupings, they can look like this obelisk…

With images stored in ui\skins\default and configured as Optional Background Image in technology_ui_groups_tables.