Techtree - M2TW
Contents
Overview
Techtree buildings and slots are the mechanism in M2TW where buildings such as barracks and churches that are defined in export_descr_buildings.txt appear within the 3d models of settlements that have constructed those buildings. Most vanilla settlements have a variety of techtree slots with different category names and sizes.
When the game loads a campaign battle-map with a settlement it searches the pre-loaded .worldpkgdesc files for matches to the category name and size of slot, if available it will load the ones for the buildings that have been constructed at that settlement, if no EDB buildings are built or are available for a slot it will load the result of pkgs that match category name and size with slot_filler as the type.
When the game loads a custom battle battle-map with a settlement selected it loads the matching pkgs for the highest level of EDB building that can be built for that settlement level.
Editing TechTreeSlots
With Hex Editor
The picture at the top right shows the TechTreeSlot section of the .world file viewed in a hex editor. It would be possible to edit the TechTreeSlot name, size and location in the .world file, but please note that each string e.g. the 'market' name, is preceded by an integer that gives the count of characters, this must be correct or the game will CTD. The 'size' e.g. 64x64 is also a text string, so 64x64 requires a preceding integer of 5, and 128x64 an integer of 6. The location and rotation are given as float values. Attempting to add a new slot via hex-editor is not recommended.
With IWTE
The second image on the right shows a large town settlement open in IWTE with the 2d view of the world switched on and then 'View TechTrees and Change TechTree selected. The IWTE functions allow the location to be changed by dragging the selected techtree in the 2d view. Changes to the rotation, tech category, and tech tree size are made in the bottom left panel. Click the OK button (not shown) when done, and remember to go back to 'WorldFiles' tab and 'Save 3 binaries'. Techtree slots can also be added or deleted.
Slot Parameters
Techtree slots have only four parameters, name, size, location and rotation:
Slot name
This must match the 'category' in the .worldpkgdesc you want to load in the slot. Vanilla settlements use the following slot names:
- generic
- market
- smithy
- church
- guild
- tavern
- university
- cultural_building_small
- cultural_building_large
There is no correspondence between these names and EDB trees or buildings, or any other file except the .worldpkgdesc, so you can change these or add new names. The main purpose behind the slot/category names is to allow some urban planning, e.g. if you want your religious buildings to appear on a hill in the settlement, or if you want your 'large cultural buildings' to appear near the plaza, etc.
Size
The 'size' of the techtree slot is actually just a text string which needs to match the equivalent string in the .worldpkgdesc you want to load. The 'size' given does not make the building loaded scale to fit, or cut it off at the edges, so you can load a small building in a large slot, you'll just get space around it, and you can load a large building in a small slot, but that might mean it overlaps adjacent structures unless you've planned for it.
The standard sizes used in the vanilla settlements are:
- 32x32
- 64x32
- 64x64
- 128x64
Location
The location of the techtree slot is given as x,y coordinates to the center. Height is not given, the height of the building terrain that loads in the slot is established by the game in relation the height of the settlement terrain at that point. Note that if the techtree building has a large flat terrain area and the slot where it loads is on sloping terrain you will get 'cliff edges' around the flattened area.
Rotation
A rotation can also be applied to the techtree slot. Please note that masks applied to the terrain of a techtree building don't work when the slot is rotated, this appears to be an engine bug.
Use of Techtree Slots
Showing EDB buildings
slot_fillers
Other Uses
As well as the obvious use of allowing a barracks to appear as built within a settlement, a techtree can be used to load more-or-less anything! For instance, in certain TATW mods a techtree is used to load a dummy settlement outside the main actual settlement, to represent a closely adjacent settlement without having to import all the models manually. To achieve this (as the dummy settlement is obviously not built via EDB) the techtree slot is set up with a unique category name and size and a .worldpkgdesc created to match that category and size but with "slot_filler" as the 'type'. Note that settlements loaded in techtree slots lack some of the normal functionality such as plazas and firing arrow towers and whilst it is possible to get onto walls the AI will not use dummy settlements defensively.
Pathfinding
Normally the area under the techtree slot should be blocked in the settlement's .worldpathfinding file