Because both Stronghold 2 & Stronghold Legends use essentially the same engine, it is possible to add unit skins into Stronghold 2 from Stronghold Legends and vice versa. However, it is not possible to add them as new units into the game and instead must modify the skins of existing units.
To understand how this process works however, you need to understand what the files from each game actually do. There are several types of files, depending on exactly what you would like to transfer. We have:
Before we begin, a few important points to note:
First of all, you need to locate the Stronghold Legends\meshes\units directory. From here, choose which unit you would like to transfer into Stronghold 2. I will be using Vlad in this tutorial. As you will see, you can find a file called vlad.uni in this folder. Copy this into the Stronghold 2\meshes\units folder and open it with a text editor such as Notepad ++. What you'll see is something along the lines of the following, depending on which file you have chosen:
Searching through the file, look for all occurrences of readable text - these are individual files which are required for this unit to successfully transfer into Stronghold 2. All of these files are located in the Stronghold Legends\meshes\units\models folder. If for some reason a file is not located in this folder, double check the Stronghold 2 version, located at Stronghold 2\meshes\units\models. They will likely be in there. Some files, such as low.gr2 in this image, bizarrely don't contain a full name. In this instance, I found the file vlad.low.gr2 which resembled this file.
Once you have found all of the files, copy these into the Stronghold 2 folder: Stronghold 2\meshes\units\models. After you have copied these files into Stronghold 2, open up one of the copied gr2 files in Granny Viewer 2, and select the 'Texture list' tab.
This section provides a list of all textures which are loaded directly from the gr2 file, if any, at the time the model was created. Note however, that the file path is incorrect and represented the file path only at the time of the compilation. The file at the end of the path is present in the Stronghold Legends\meshes\units\models folder. In this specific case, we had missed two files - vlad_helmet.dds and armour_evil.dds. As neither file exists in Stronghold 2, without first copying both these files into the Stronghold 2\meshes\units\models folder, the unit you are changing in Stronghold 2 would appear invisible. The most likely reason for any unit, or any part of a unit, in Stronghold 2 appearing invisible is as a result of missing dds files.
Once you have copied these files into Stronghold 2, have a final scan of the Stronghold Legends models directory to make sure you haven't missed something obvious, such as a missing file containing the character's name. It's now time to head back into the Stronghold 2\meshes\units folder. Think of a character you would like to change Vlad to - in this case I am changing the Lord - and simply rename the uni files!
If you'd like to use the audio from Stronghold Legends, this is stored in the folder Stronghold Legends\fx\military speech with a sub-folder of whichever unit you are using. Stronghold 2 speech is stored in the folder Stronghold 2\fx\military speech. You will have to listen to each audio file and rename them accordingly so that the new audio from Stronghold Legends plays in Stronghold 2 for each individual event. If there are more sets of audio in Stronghold 2 than were used in Stronghold Legends for a specific event (e.g. digging the moat), duplicate a piece of audio from Stronghold Legends and rename it to cover the audio which needs to be used. This is because the game randomly chooses a set of audio from a list to avoid playing the same file every time. Once you've done this, have a final check over before closing down all these folders.
Now load up the game, and see the new result!
I have compiled a table below which shows the files required for some of the most commonly used units. This tells you exactly which files need copying into Stronghold 2 in order for the unit to show correctly.
|Mordred||mordred.uni, mordred.gr2, shield_mordred.gr2, shield_mordred_2.gr2, mace_maceman.gr2, shield_gawain.gr2, mordred.dds, mordred.normalmap.dds|
|Vlad||vlad.uni, vlad.gr2, vlad.low.gr2, vlad.high.gr2, vlad_weapon.gr2, vlad_head.dds, vlad_helmet.dds, armour_evil.dds|