Total War: WARHAMMER

Total War: WARHAMMER

42 ratings
Advanced Tutorials for Terry
By Frodo45127 and 1 collaborators
Learn to do complicated things like gates and garrisonable walls in Terry!
   
Award
Favorite
Favorited
Unfavorite
0. Before we begin
Originally posted by The Wazard God:
NOTE: TO USE THE LINKS IN THIS GUIDE YOU NEED TO COPY/PASTE THEM AND DELETE THE "." IN "me.ga". THAT'S BECAUSE IF I DON'T DO THAT, STEAM DELETES THEM.

Hi, and wellcome to this pack of... "Advanced Tutorials for Terry".

First, as these tutorials are a bit advanced, I'll asume you are a bit familiar with Terry. If words like "entities", "layers" and "no-go regions" sounds weird to you, please stop and watch a basic tutorial about Terry.

Second, it's highly recommended that you download this fix:
https://me.ga.nz/#!20IhwQrS!WXo7GBmdgqQYVokSBbehTDE47aZUFpxX9WNfK-22K0g

It will allow you to use disabled-by-default buildings like gates, walls, etc... in Terry. Just drop that pack file in "whereyouhaveinstalledTotalWarWarhammer/data".
To check if it's working, just open Terry and click on "Buildings". Some new towers should have appeared in the bottom of the list.

Also, it's also recommended that you download this map for Terry (unpack it in Total War WARHAMMER\assembly_kit\raw_data\terrain\tiles\battle\_assembly_kit):
https://me.ga.nz/#!mpRlmZBJ!XKQOPGW1B_k3yV5AhhkaEqnWXJOg4v4aseF8ObY_LAM
This map contains some simple examples of the things on this tutorials.
How to make Capture Zones
  1. Open the map with Terry.
  2. Create a No-Go Region in the exact same position and with the same shape of the Capture Zone you want to create, like this:

  3. Save the map.
  4. Put the mouse over the "File Layer" entity that holds your zones (the floppy disk of the screenshot), an remember the name it will popup:


  5. Open the map folder with the "Show in Explorer" button.
  6. Open the "xxx.layer" file with the name of the popup.
  7. Search the no-go regions you just added. It should look like this:


  8. And now, for every no-go region you've added, replace:
    <ECNoGoRegion/>
    with (where the hearts are write "C.L.I.T" without the dots):
    <ECCaptureLocation importance="CLIT_MINOR" type="capture_point_gate_only" flag_position="0 0" min_players="2" max_players="8" flag_facing_direction="0"/>
  9. Reopen the map (click "discard" if ask to save anything) and, after it opened you should have this instead of the No-Go Regions:
As you can see, now we have capture zones, and the old no-go region is yellow instead of red. Now let's take a look at the properties of the capture zone:

  • Importance:
    • Major: these are the ones that shows up in the top of the screen and in the minimap. Use it for Victory zones.
    • Minor: gates, towers,.... everything else.
  • Type: the type of the capture point. The names are pretty much self-explanatory.
  • Flag Position: The point in the map where the flag of the zone will be. It's coordinates are local, not global. It's shown in the editor by a square with a little arrow.
  • Min/Max Players: Self-explanatory.
  • Flag Facing Direction: I'm pretty sure this does nothing.
The rest is similar to other entities.

The last step to make Capture Zones work is to tell them what buildings they need to control. To do this, you need to click in the building you want to control, and change his "Capture Location" from "Empty" to the Capture Zone.

This is a bit tricky, because all the zones that do the same will be called by the same name. Before doing this, change the type and importance of the zone you want to use to another to diferentiate it from the others and, after setting it as the capture zone of X building, change his type and importance back. In the end, the building controlled by the capture zone should look like this:

Warnings:
  • The zones only show up if the buildings are not destroyed.
How to make Garrisonable Walls
  1. Open the map with Terry.
  2. Go to "Settings" and enable "Building collision outlines".
  3. Put on the map the walls you want to be garrisonable.
  4. Create a No-Go Region surrounding the walls, following the pink border of the walls, like this:


  5. Save the map.
  6. Put the mouse over the "File Layer" entity that holds your zones (the floppy disk of the screenshot), an remember the name it will popup.


  7. Open the map folder with the "Show in Explorer" button.
  8. Open the "xxx.layer" file with the name of the popup.
  9. Search the no-go regions you just added. It should look like this:


  10. And now, for every no-go region you've added, replace
    <ECNoGoRegion/>
    with
    <ECBattlefieldZone/>
  11. Reopen the map (click "discard" if ask to save anything) and, after it opened you should have this instead of the No-Go Regions:


  12. Save the map and it's done. When you export the map the walls inside the now called "Battlefield Zone" will be garrisonable.
That's all.
How to make Towers that shoot
This tutorial is a very simplified version of how to create towers that can shoot, like the ones in the main game. Therefore is only valid for towers with 4 shooting points (places from where the tower shoots) or less. Let's start:
  1. Open the map with Terry.
  2. Put the mouse over the "File Layer" entity that you want to be holding your yet-to-be-created towers (the floppy disk of the screenshot), an remember the name it will popup.


  3. Open the map folder with the "Show in Explorer" button.
  4. Open the "xxx.layer" file with the name of the popup with a text editor.
  5. Paste the following pieces of code in that file in the following position:
    • Paste this just before the line that says "</entities>":
      <entity id="15b0dc5ba0bc668"> <ECBuilding key="emp_wall_tower_02" damage="0" indestructible="false" toggleable="false" capture_location="" export_as_prop="false" allow_in_outfield_as_prop="false"/> <ECMeshRenderSettings cast_shadow="true"/> <ECTransform position="1000 0 1000" rotation="0 0 0" scale="0.999999106 1 0.999999106"/> <ECTerrainClamp active="false" clamp_to_sea_level="false" terrain_oriented="false"/> </entity> <entity id="15b0db1ea818ff2"> <ECBuildingProjectileEmitter/> <ECTransform position="6.00006104 23.9999962 -22.000061" rotation="0 90 0" scale="0.999999702 1 0.999999702"/> </entity> <entity id="15b0db1ea818ff3"> <ECBuildingProjectileEmitter/> <ECTransform position="12 24 -22.000061" rotation="0 90 0" scale="0.999999642 1 0.999999642"/> </entity> <entity id="15b0db1ea818ff4"> <ECBuildingProjectileEmitter/> <ECTransform position="8.00006104 23.9999981 -22.000061" rotation="0 90 0" scale="0.999999523 1 0.999999523"/> </entity> <entity id="15b0db1ea818ff5"> <ECBuildingProjectileEmitter/> <ECTransform position="14 24 -22" rotation="0 90 0" scale="1 1 1"/> </entity>
    • Paste this just before the line that says "</Logical>":
      <from id="15b0dc5ba0bc668"> <to id="15b0db1ea818ff2"/> <to id="15b0db1ea818ff3"/> <to id="15b0db1ea818ff4"/> <to id="15b0db1ea818ff5"/> </from>
    • Delete the line that says "<Transform/>" and paste this in his place:
      <Transform> <from id="15b0dc5ba0bc668"> <to id="15b0db1ea818ff2"/> <to id="15b0db1ea818ff3"/> <to id="15b0db1ea818ff4"/> <to id="15b0db1ea818ff5"/> </from> </Transform>
  6. Here is an example of where to paste the code if you are confused (NOTE: this is in an empty map. A map with things in it will have a lot more lines in this file):


  7. Reopen the map (click "discard" if ask to save anything) and, after it opened you should have an empire level 3 tower with 4 white arrows near the center of the map (coordinates: 1000 0 1000).
That's it. Now put that tower wherever you want, give it a Capture Zone aaand it's done. If you want more towers, copy and paste that one. Now let's see how we can customize the tower.

If you look at the tower in the scene hierarchy, you will see it has a little arrow in the left of his name. Click it and you will see something like this:


Those "Building Projectile Emitter" are the places where the projectiles come from. Move them around (NOTE: their coordinates are relative to the tower, NOT GLOBAL.) to the place you want to shoot from, or delete them if you want, for example, the tower to shoot 2 proyectiles instead of 4.

The next thing we can customize is the faction of the tower. By default, the tower is a level 3 empire tower. We can change it to other faction's tower by going into the properties of the tower and changing the first 3 letters of the field "key" with the code of the faction you want. The codes for the diferent factions are:
  • Empire: "emp".
  • Bretonnia: "brt".
  • Dwarfs: "dwf".
  • Orks: "grn" (this tower doesn't work, don't know why).
  • Vampires: "vmp".
Here you have an example:
  • Empire Tower:


  • Dwarf Tower:
And the last thing we can customize is the level of the tower. There are 4 levels: arrows, better arrows, cannon balls and dynamite balls. In the same way we can change the first 3 letters of the "key" field in the properties of the tower to change the tower's faction, we can change the last 3 letters to change his level:
  • Level 1: "xxx_wall_tower"
  • Level 2: "xxx_wall_tower_01"
  • Level 3: "xxx_wall_tower_02"
  • Level 4: "xxx_wall_tower_03"
For example, a level 2 vampire tower that shoot from 3 diferent places will be like this:
How to use hidden ground textures
In Terry you can use several textures as ground (from left to right): forest01, grass01, grass02, mud01, mud02, scree01 and scree02.


But there are more textures hidden in the game:


Some textures of this list don't work, while others are pretty good (tiles01 is perfect for roads). And it's pretty easy to use them in your maps:
  1. Open the map with Terry.
  2. Open the map folder with the "Show in Explorer" button.
  3. Open the "xxx.terry" file with a text editor.
  4. Go to the fifth line, and replace
    texture_8=""
    with
    texture_8="thetextureyouwanttousefromthelistabove"


  5. Reopen the map (click "discard" if ask to save anything) and, after it opened you should have a new texture to use in painting the ground:

As an advice, the textures "tiles01" and "tiles02" are diferent depending of your vista, and they're what vanilla city maps use for the ground of various cities. No more weird roads with decals that don't blend properly with the terrain! :)

WARNING: When you change your vista or your enviroment Terry will delete that ' texture_8="" '. Remember to set it again after changing the vista or the enviroment, or Terry will start complaining about data in channel 7 with no texture assigned.

How to make the AI work properly in a Siege Battle (Part 1)
In this tutorial we will learn how the "Siege AI" system works, and how to implement it in our map. The "Siege AI" system is a bit complex, so first we'll have a theory lesson.

When we fight a land battle the AI will try to attack us forming a line and will try to flank us with cavalry, but in a city street you can't form lines, so normal AI doesn't work properly. To fix that, CA use in their maps the "Siege AI" system, a group of nodes and connections that will... describe the city to the AI, so it can work with independent groups, defending plazas, gates and victory points. Until now, if we tried to implement the same system in our maps, the result was a crash because the system requires certain hints we cannot put in Terry in a... normal way. Until now. Now that you now what the "Siege AI" is, let see how it works.

The parts that compose the "Siege AI" system are:
  • SiegeAINode: these are the central part of the system. There are 4 types of node and every one of them requires a boundary linked to them (more info on this later, for now just know they need it):
    • Area Node: this is the main node. You will put this node in gates, plazas,... It's where the AI tend to deploy his forces and where the AI will try to defend instead of attack.
    • Intersection Node: as the name says, you need to put this node where three or more streets met.
    • Wall Area Node: the game maps doesn't use it (as far as I've seen) and in my tests the AI doesn't do anything special on them.
    • Entry Node: you put this in unfortified entries, but in the tests looked like the AI was ignoring them. Use Area Nodes if these doesn't work.
  • SiegeAIEdge: these are the lines that connect the SiegeAINodes. There are also 4 types with diferent requirements:
    • Street Edge: this is the line that you'll use to connect almost every Area/Intersection/Entry node with the rest. It needs 2 linked boundaries.
    • Area Connection Edge: imagine you have a great city with 2 districts, separated by a river. You will use this line to connect one district with the other in the bridge. It's a connection between two big "Siege AI Networks". It needs 2 linked boundaries.
    • Wall Edge: this one is simple. Just make this line run from one extreme of your walls to the other. It's to make the AI know were are the walls and to delimit the borders of the fort. It doesn't need any linked boundaries. WARNING: there is a bug that cause the AI to ignore every wall edge but the first one you create, so it only use the first wall you covered with a wall edge. To fix it, just make only one wall edge that goes through all the walls in your map and one AISeparator that complete the encirclement, instead of making one wall edge for every zone of walls and one AISeparator for every space between walls.
    • Palisade Edge: you can forget this one.
  • AISeparator: this is a line used to delimit the borders of the fort in parts where there is no wall. There are several types, but we only need to use the "Fort Link" type. You need to set up this as a line going from the end of a Wall Edge to the start of another (or the same, if you only have one wall). Basically, you need to enclose the entire fort combining Wall Edges and AISeparators.
  • AIHints: there are one AI_Hint needed for this system to work (FORT_PERIMETER) but Terry doesn't allow us to use it, so we load it in a special way.

And that's all the theory. It can be a bit hard to understand (and I suck at explaining things), but once you see how it works in a map, you'll realise is not that hard to use. Now the "Practical" part of the tutorial.

First, you need something: The Siege nodes and edges. As Terry doesn't let you create easely and it's a pain in the... back to create them manually, here you have a "Template File Layer" with one of every part of the Siege AI system created, so you just need to copy/paste/resize/move them to set up the system. To install it, download the file, create a new file layer in your map, save your map, click the "Open in Explorer" button in Terry, open with a text editor the .layer file you just created and copypaste all the contents from the file you've downloaded into your layer file, replacing everything. Next time you open your map it should have a copy of everything you need it to set up the Siege AI system. You can download the file from here: https://me.ga.nz/#!28hFhLKD!dqACuzkf2kfIm-uUx-J4XAfMr5R07VmIybk8lyTxsbw


Now with the basics. This is an example of how a "Siege AI" system should look:


This is how it looks without the buildings:


First, do you see that pink line that go for one extreme of the wall to the other? That's a Wall Edge. Pretty simple to set up. Next, the orange line that goes from one extreme of the Wall Edge to the other is the AISeparator. This one needs to cross the Wall Edge as you can see in both extremes. Together the define the borders of the fort.

Next, from the left we have this:


This is an Entry Node. As you can see, it's set up in the only unfortified entrance to the fort. All nodes are formed by two parts:
  • The node himself: the bright pink line. It's a rectangle. It's the space where the AI will put the units, so make it big enought for the AI to make formations inside.
  • The boundary: the dark pink line. It defines the exact limits of the node. This doesn't need to be a rectangle.

More to the right we have this:


The little square in the middle is an Intersection Node. The other three are "Street Edge". The street edge (and the Area Connection Edge) are formed by 3 parts:
  • The edge: is the bright pink line. It must go from inside a node to inside another node, following the route of your street.
  • The 2 boundaries: the dark pink lines. It defines the lateral limits of the street. They need to go from inside the boundary of a node to inside the boundary of another node.
In the end, as you can see in the screenshots, you need to have the edges of the streets joining the nodes, and the boundaries of the streets forming wide connections between the boundaries of the nodes.

And more to the right we have this:


These two are Area Nodes joined by an Street Edge. The left Area is where the Victory Point is, the right one is where the gate is. Those are two positions you want actively defended, so an Area Node is the best for them. Also, as you can see, both are far bigger than the other nodes. That is because in these nodes is where the AI will deploy most of their forces. Do them big or the AI will deploy in long column formations.

And that's all the part 1. With that info, you should be able to make more complex "Siege AI" networks that fit your map. As an advice, before doing anything related with the "Siege AI" hide all the height layers so you can clearly see the lines.
How to make the AI work properly in a Siege Battle (Part 2)
If you complete your Siege AI system as explained in part 1, you will found that the game will crash when you try to play it. That's because there is one more thing to do. The map needs an AI hint called "AIH_FORT_PERIMETER". With this hint the AI can see where is the fort and use siege towers, ladders,.... properly. Without it, the game will crash. But we cannot add it through Terry or manually because Bob and Terry will rename it to "AIH_DEFENSIVE_HILL" or to "AIH_DEFAULT_DEPLOYMENT_ZONE". So we are going to make a little trick. For that trick we need an Hexadecimal editor (I use HxD) and Pack File Manager (PFM), so download them first. Now, the steps:
  1. Open your map in Terry.
  2. Delete every "defensive hill" hints you have (they don't work when the game use the siege AI).
  3. Draw a "defensive hill" hint surrounding your fortress, like this (I hide the buildings so you can see it better, but you can clearly see where the walls are):


  4. Save and export the map.
  5. When Terry ends exporting the map go to "Total War WARHAMMER\assembly_kit\working_data\terrain\tiles\battle\_assembly_kit\your_map" and open the file "bmd_data.bin" with the Hex editor of your choice. The file will look like this in the Hex editor:


  6. Now, search "DEFENSIVE_HILL" (should be only one result). Change it to "FORT_PERIMETER". In HxD will look like this:


  7. Save the file and exit from the Hex editor.
  8. Open the pack file of your map with PFM, go to "terrain\tiles\battle\_assembly_kit\your_map" and delete the file "bmd_data.bin".
  9. Now add to the same place the "bmd_data.bin" file you have modified in the Hex editor and save the pack file.
  10. Your map should work now.

The only problem of this method is you need to do it every time after you export the map, so my recommendation is that you disable all the Siege AI stuff (put it in a layer and disable the exportation of that layer), and only enable it when you want to test the AI or publish the map.
How to make you custom map show up as a Siege Battle map in custom battles
This tutorial is not about Terry but, as is related with how custom maps works, it fits here. You need two things for this tutorial: Pack File Manager and Photoshop or Gimp (or any program that can edit a tga file). Now, the steps are really simple:
  1. Download this example .pack file: https://me.ga.nz/#!q5AxnTYD!5RkVS8ImVr-VnTZTk58RbeWfkS3gZGb1ATfjaAAMzLI
  2. Open your map's pack file, and add to it all the contents of the example pack file.
  3. Under db/battles/ change the name of "rename_this" with whatever you want, and take a look at that table. The fields are already configured for a siege battle, but you need to change some of them:
    • key: this has to be a unique key for your map.
    • specification: this is where your map is, and for custom maps done with Terry it's "terrain/battles/yourmap".
    • screenshot_path: this is where you put the screenshot that will show up with your map in custom battle mode. In here put: "ui/frontend ui/battle_map_images/yourmap.tga". I think it also accept .png images.
  4. Now under "text/db" rename the file "rename_this.loc" to whatever you want (just keep the .loc at the end and, in the file change where it says "xxx_example_city" with "xxx_you_key_from_last_step". And of course, in this file you can change the name and description of your map. It's pretty selfexplanatory.
  5. At last, under the last folder there is a .tga file with a fixed size. Edit it so it shows a screenshot of your map.
  6. Save the pack file. Next time you load your map in Warhammer, it should show up in Custom Battles, under Siege Battle category.
No screenshots for this one. It's just copypaste and replace a couple of fields.
66 Comments
The Spanish Inquisition! Mar 15, 2021 @ 11:46am 
Damn. I have no words to show how grateful I am for your help. I have already been fixing all the problems I had. I hope that one day you can take a look at the map (and future maps that I will make), and that you give me your opinion, since you are the best at this. I would love to integrate the maps into the campaign in the future. Again, thank you very much!
Frodo45127  [author] Mar 13, 2021 @ 9:42am 
For siege towers to work you need to make a siege AI graph and patch the map with RPFM. https://tw-modding.com/index.php/Battle_Maps:Siege_Battle_Maps_(WH2) here's a link with a tutorial to make a full siege map with SiegeAI and working siege towers.
The Spanish Inquisition! Mar 12, 2021 @ 3:39pm 
I am very grateful to you! I did what you told me and it works now! Only the siege towers fail, the tower troops do not storm the walls.
Frodo45127  [author] Mar 10, 2021 @ 8:30am 
Units stuck in walls means walls not aligned properly. And unclimbable ladders usually means the ground in front of the wall is uneven. Make sure the ground in front of the wall is exactly 15m below the wall (if the wall is at 65, make sure the ground is plain at exactly 50).
The Spanish Inquisition! Mar 8, 2021 @ 12:04pm 
Hello! First to say what an excellent job, I have learned a lot through your guide, and the truth is that I have already invested a long time in creating maps thanks to you. But I have a little problem, and I hope you can help me. I have problems with the walls, the units get stuck in them, and some have problems with the stairs, not all of them can be climbed, the units place the ladders but they pile up and do not climb them. I hope you can help me, thank you guys very much.
†.Scarlet Carson.† Jun 27, 2019 @ 11:34am 
You are right Frodo45127
It was SO BIG that I had just read over the part.
Unfortunately, I come straight to the next problem:
I can't open any map folders with the "Show in Explorer" button, because the option (button) is gray (not deposited / selectable) in my Terry.
Frodo45127  [author] Jun 21, 2019 @ 10:07am 
Please, READ THE FIRST BIG PARAGRAPH OF THE TUTORIAL AND THEN TRY THE LINKS. Seems like no one reads it.....
†.Scarlet Carson.† Jun 19, 2019 @ 12:14pm 
Hello Frodo!
Thanks for answering
I mean the links You introduced at the beginning: "0. Before we begin"

``...
Second, it's highly recommended that you download this fix:
https://me.ga.nz/#!20IhwQrS!WXo7GBmdgqQYVokSBbehTDE47aZUFpxX9WNfK-22K0g

It will allow you to use disabled-by-default buildings like gates, walls, etc... in Terry. Just drop that pack file in "whereyouhaveinstalledTotalWarWarhammer/data".
To check if it's working, just open Terry and click on "Buildings". Some new towers should have appeared in the bottom of the list.

Also, it's also recommended that you download this map for Terry (unpack it in Total War WARHAMMER\assembly_kit\raw_data\terrain\tiles\battle\_assembly_kit):
https://me.ga.nz/#!mpRlmZBJ!XKQOPGW1B_k3yV5AhhkaEqnWXJOg4v4aseF8ObY_LAM
This map contains some simple examples of the things on this tutorials.´´

These links don't work anymore
Frodo45127  [author] Jun 19, 2019 @ 10:08am 
What links?
†.Scarlet Carson.† Jun 19, 2019 @ 8:04am 
@Maruka
Dear friend
I've recently discovered creating maps and I'd love to create immersive landscapes.
Unfortunately, the links on this page are out of date and I would like to ask You to re-deploy the tools.
Dear greetings from Germany,
Tobi