Technology Trees

From Total War Modding
Revision as of 17:17, 1 February 2021 by Aexrael (talk | contribs) (Technology tables)

Modding technologies is very similar to modding Skills for agents.


Overview of the tables

technology_node_sets_tables

technologies_tables

technology_effects_junction_tables

technology_node_links_tables

technology_nodes_tables

Technology Node Sets

Technology Node Sets table junctions a Technology Node Set Key with a Culture or Subculture, this is start possed?

Technology Table

The Technologies table defines the Technology Key used in the other tables, the icon shown in the tech tree and it also contains a unique identifier.

Technology Effects

The Technology Effects table is where you junction the Technology Key from the Technologies Table with the Effect Key from the Effects table, alongside a scope and a value for the effect.

Technology Nodes and Node Links

Technology nodes is where the technology key from the Technologies Table is junctioned to a faction’s technology node set key which defines.

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.

Indenttiertechtree.jpg

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.

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.

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.

Technology example1.jpg

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

Technology example2.jpg

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.

Technology example3.jpg

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.

Technology example4.jpg

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

Technology example5.jpg

It would look like this in game…

Technology example6.jpg

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.

Technology example7.jpg
Technology example8.jpg


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

Technology example9.jpg

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

Technology example10.jpg

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.

Technology example11.jpg

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.

Technology example12.jpg

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…

Technology example13.jpg
Technology example14.jpg

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…

Technology example15.jpg

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

Technology example23.jpg

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

Technology example17.jpg

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…

Carsteins/Vlad…

Technology example23.jpg

Vampire Counts/Mannfred…

Technology example19.jpg

Barrow Legion/Old man Heinrich…

Technology example24.jpg

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…

Technology example16.jpg

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…

Technology example20.jpg
Technology example21.jpg

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…

Technology example22.jpg

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