Before I begin, I would just like to give ALL credit to Copernicus for this discovery. I am just putting it into written form so that people can use it!
Step 1:
Extract all desired .bsc files with Corsix Mod Studio.
Example:
data\sound\speech\mp\panzerelite\fsj
Step 2:
Replace the first letter of each .bsc file with the speechcode your faction uses. I recommend Rename Master for this task, as it has programmable batch renaming capabilities.
Example:
data\sound\speech\mp\panzerelite\fsj\events\abilitycomplete\pb_fsj_abc_iflgen_li_s.bsc
TO
data\sound\speech\mp\axis\fsj\events\abilitycomplete\xb_fsj_abc_iflgen_li_s.bsc
p = panzerelite
x = wehrmacht
Make sure to copy these files over to the other faction's parent folder, as bolded above.
Step 3:
Using the tool provided by Copernicus here, add the renamed .bsc files to a SpeechManager.cache file of your choice. If this is the first time you are doing this, I would recommend extracting the Relic .cache file using Corsix Mod Studio. The Relic version is located here:
data\sound\speech\mp\speechmanagercoh.cache
You need to rename it to something other than that, so I would recommend something like this:
SpeechManagerMyMod.cache
Then, place the tool you downloaded above in your mod's main root directory. Run the tool there, select the .cache file you just made, and then find the folder that your .bsc files are in. Run the program. It should have amended the file with your new .bsc files at the end.
You will also have to change your .module file to point to this new .cache file, so be sure to find the line where it says:
SpeechManagerCache = SpeechManagerCOH.cache
and change it to:
SpeechManagerCache = SpeechManagerMyMod.cache
Step 4:
All you need to do now is change your SpeechTuning.lua file to give this faction its new speechcodes. The file is located here:
data\game\speechtuning.lua
View as text file or Corsix will crash when you edit entries. Find the line for your faction and then copy/paste the speechcodes from the other faction into your faction's table.
And that is that! You now have another factions speech files working in game!
If anything needs to be added/changed in this tutorial, let me know and I will try to make it more concise. Again, all credit goes to Copernicus, I am just writing this guide based on my experience using his instructions.
Keep in mind that some speechcodes may already exist in a faction, especially between Wehrmacht and Panzer Elite, so you may run into conflicts. I am not sure at this time how to solve these conflicts, and will make an addendum to this post with anything I find out about them.
Also, if you are not sure which units use which speechcodes, I would recommend looking through the SpeechTuning.lua for the fastest and easiest way to figure it out. There are comments next to each speechcode's line in the .lua explaining which unit(s) they belong to. Some of them are self-explanatory, like FSJ = Fallschirmjäger, etc.
Additional Notes:
I have been messing around with conflicts, and it appears that there are enough unique sounds in Panzer Elite files to be used alongside Wehrmacht ones. This is both a good thing and a bad thing. The good comes from the fact that all Panzer Elite units will have their unique voices, but the bad comes from the fact that you will occasionally hear a Wehrmacht voice where you didn't before.
The most annoying one yet is where Hummels will have an entirely different voice actor speak every now and then because they share the speechcode with Tigers and Panthers.
Here is a full list of possible conflicts:
However, even with these so-called conflicts, they all work.Code:{ "AT1", { CAT_OC, CAT_EV} }, -- Anti-Tank { "Hs1", { CAT_OC, CAT_EV } }, -- Heavy MG Crew; Flak 38 { "HTk", { CAT_OC, CAT_EV } }, -- Heavy Tank (Panther, Hummel, Jagdpanther) { "Lf2", { CAT_OC, CAT_EV } }, -- Luftwaffe { "HGs", { CAT_OC, CAT_EV, CAT_BC } }, -- Hotchkiss/Geschutzwagen { "Ms1", { CAT_OC, CAT_EV } }, -- Mortar Team { "MTk", { CAT_OC, CAT_EV } }, -- Medium Tank (Marder III, Panzer, Hetzer) { "SWG", { CAT_OC, CAT_EV, CAT_BC } }, -- Schwimmwagen![]()




.


