Hello.
I write new tutorial for adding new faction from nothing. I call this operation cloning as basically it is.
I needed 4 hours to write whole tutorial and additional 5 minutes to solve files which crashed game in campaign – custom battles worked without problems :).
WARNING:
Use my_mod to add new faction, not vanilla folders!
IN THEORY
First I will examine and show all files necessary for adding new faction.
- Unpack all files with Unpacker.
- Open Start/Search/For Files or Folders…
- Look at screenshot how to find files what you need. Type in field Containing text France, England or some other state. Manually set folder data for searching.
- After search you will see a lot of files. Bad? Not bad as you maybe think.

I will first eliminate all files which you don’t need. Those are:
- .textures
- .dds
- .tga
- .tga.dds
- .cas
Those files are important for faction, but initially you don’t need them. They are not needed as you can clone those files from other factions and simple rename it.
What .xml and .txt files are needed?
descr_banners_new.xml
descr_character.txt
descr_lbc_db.txt
descr_model_strat.txt
descr_movies_tracks.xml (NOT necessary from what I researched)
descr_names.txt
descr_offmap_models.txt
descr_sm_factions.txt
export_descr_advice.txt (NOT necessary from what I researched)
export_descr_advice_enums.txt (NOT necessary from what I researched)
export_descr_advice_timing.txt (NOT necessary from what I researched)
export_descr_buildings.txt
export_descr_unit.txt
factionintrosubtitles_lookup.txt (NOT necessary from what I researched)
campaign_descriptions.txt
expanded.txt
export_advice.txt (NOT necessary from what I researched)
export_units.txt (NOT necessary from what I researched)
menu_english.txt (NOT necessary from what I researched)
names.txt
prebattle_speeches_subtitles.txt (NOT necessary from what I researched)
campaign_script.txt (not sure is that necessary)
descr_win_conditions.txt
descr_strat.txt
Basically, there are 14 files with which work is needed. For units you can use mercs as they can be attached to every faction. Plus you can use symbols from other factions.
Just copy one faction in .xml and .txt files and change name from france (or something else) to norway, aragon, austria and etc – it is irrelevant for research.
IN PRACTICE
I will clone France to add new faction – Bulgaria (this is irrelevant – you can put whatever you want).
Step 1
Open descr_banners_new.xml with Notepad. Hit Ctrl+F and type France.
In this file you define banners for faction. I will clone France to new faction Bulgaria. Copy/paste lines for France and rename France into Bulgaria.
Code:
</Banner>
<Banner Name="main_spear" MainMesh="data\banners\main_spear.mesh" MiniMesh="data\banners\mini_spear.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="-0.1">
<Textures>
<Texture Faction="Bulgaria" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
Code:
</Banner>
<Banner Name="main_infantry" MainMesh="data\banners\main_infantry.mesh" MiniMesh="data\banners\mini_infantry.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.9" EffectOffsetZ="-0.1">
<Textures>
<Texture Faction="Bulgaria" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
Code:
</Banner>
<Banner Name="main_cavalry" MainMesh="data\banners\main_cavalry.mesh" MiniMesh="data\banners\mini_cavalry.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="0.0">
<Textures>
<Texture Faction="Bulgaria" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
Code:
</Banner>
<Banner Name="main_missile" MainMesh="data\banners\main_missile.mesh" MiniMesh="data\banners\mini_missile.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="0.0">
<Textures>
<Texture Faction="Bulgaria" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
We added banners for spearmen, infantry, cavalry and missile infantry. Because new faction will not have special Crusader units I will not add their banners. The last on is royal banner used by faction leader:
Code:
<RoyalBanner Name="royal">
<!--Only single royal banner is supported-->
<MeshesAndTextures>
<MeshAndTexture Faction="Bulgaria" Mesh="data\banners\main_royal.mesh" DiffuseMap="banners\textures\royal_banner_france.texture" TranslucencyMap="banners\textures\royal_banner_trans.texture"/>
In battle banners won’t be French (see screenshot) – just white transparent banners and I don’t know why. Anyway, you will have to work new banners.
-------------------------
Update I
RTR Fan wrote this:
About banners, to see them, just place descr_banners_new.XML in your main MTWII folder. It will not work from a mod folder.
NOTICE AGAIN:
Put descr_banners_new.XML in your main MTWII folder!
Step 2
Open descr_character.txt with Notepad. Now I will use Byzantium for cloning characters.
We’ll first add Named character:
Code:
faction bulgaria
dictionary 2
strat_model southern_general
battle_model Northern_General
battle_equip gladius, chainmail shirt helmet and rectangular shield
General:
Code:
faction bulgaria
dictionary 2
strat_model southern_captain
battle_model Northern_Captain
battle_equip gladius, chainmail shirt helmet and rectangular shield
Spy:
Code:
faction bulgaria
dictionary 2
strat_model southern_spy
Assassin:
Code:
faction bulgaria
dictionary 2
strat_model southern_assassin
Diplomat:
Code:
faction bulgaria
dictionary 2
strat_model southern_ambassador
Admiral:
Code:
faction bulgaria
dictionary 2
strat_model greek_cities_admiral
Princess:
Code:
faction bulgaria
dictionary 2
strat_model southern_princess
Merchant:
Code:
faction bulgaria
dictionary 2
strat_model southern_merchant
And finally Religious agents:
Code:
faction bulgaria
dictionary 2
strat_model orthodox_priest ; default model
strat_model orthodox_bishop ; medium level priest
strat_model orthodox_patriarch ; advanced priest
Step 3
Open descr_lbc_db.txt with Notepad. I am not sure what that file means but it seems that you here define civilians. I will use Russia for that.
Code:
faction bulgaria
model barb_male_peasant 40
model barb_female_peasant 60
Step 4
Open descr_model_strat.txt with Notepad. In this file you define textures for characters. Because I used Byzantium for pattern I will again use it. I admit that’s the weirdest file I saw so far.
Add following line in under Ambassador for Byzantium:
Code:
texture bulgaria, models_strat/textures/southern_ambasador_byzantium.tga
Add following line in under Spy for Byzantium:
Code:
texture bulgaria, models_strat/textures/southern_spy_byzantium.tga
Add following line in under Assassin for Byzantium:
Code:
texture bulgaria, models_strat/textures/assassin_southern_byzantium.tga
Add following line in under Princess for Byzantium:
Code:
texture bulgaria, models_strat/textures/SouthernPrincess_byzantium.tga
Add following line in under Merchant for Byzantium:
Code:
texture bulgaria, models_strat/textures/southern_european_merchant_byzantium.tga
Add following line under Orthodox priest for Byzantium:
Code:
texture bulgaria, models_strat/textures/orthodox_priest_byzantium.tga
Add following line under Orthodox bishop for Byzantium:
Code:
texture bulgaria, models_strat/textures/orthodox_bishop_byzantium.tga
Add following line under Orthodox patriarch for Byzantium:
Code:
texture bulgaria, models_strat/textures/orthodox_patriarch_byzantium.tga
Add following line under General for Byzantium:
Code:
texture bulgaria, models_strat/textures/late_general_byzantium_strat.tga
Add following line under Captain for Byzantium:
Code:
texture bulgaria, models_strat/textures/late_northern_captain_byzantium_strat.tga
After that you will see bunch of code lines which were used in Rome Total War. Yes, weird. Somebody left them.
Firstly I ignored all those files and game crashed.
So, it is obligation and has to be used.
I copied parts of files and bolded what I added. I used greek for Bulgaria (same as Byzantium):
Code:
type princess
skeleton strat_diplomat
scale 0.6
indiv_range 40
texture venice, models_strat/textures/princess_julii.tga
texture sicily, models_strat/textures/princess_brutii.tga
texture milan, models_strat/textures/princess_scipii.tga
texture papal_states, models_strat/textures/princess_senate.tga
texture denmark, models_strat/textures/princess_macedon.tga
texture egypt, models_strat/textures/princess_egypt.tga
texture scotland, models_strat/textures/princess_seleucid.tga
texture aztecs, models_strat/textures/princess_carthage.tga
texture mongols, models_strat/textures/princess_parthia.tga
texture turks, models_strat/textures/princess_pontus.tga
texture france, models_strat/textures/princess_gaul.tga
texture hre, models_strat/textures/princess_german.tga
texture england, models_strat/textures/princess_briton.tga
texture saxons, models_strat/textures/princess_german.tga
texture normans, models_strat/textures/princess_briton.tga
texture portugal, models_strat/textures/princess_armenia.tga
texture poland, models_strat/textures/princess_dacia.tga
texture byzantium, models_strat/textures/princess_greek.tga
texture bulgaria, models_strat/textures/princess_greek.tga
texture moors, models_strat/textures/princess_numidia.tga
texture russia, models_strat/textures/princess_scythia.tga
texture spain, models_strat/textures/princess_spain.tga
texture hungary, models_strat/textures/princess_thrace.tga
texture timurids, models_strat/textures/princess_parthia.tga
;texture slave, models_strat/textures/princess_slave.tga
model_flexi_m models_strat/princess.cas, max
shadow_model_flexi models_strat/shadow_model_princess.cas, max
type merchant
skeleton strat_named_with_army
scale 0.8
indiv_range 40
texture venice, models_strat/textures/merchant_julii.tga
texture sicily, models_strat/textures/merchant_brutii.tga
texture milan, models_strat/textures/merchant_scipii.tga
texture papal_states, models_strat/textures/merchant_senate.tga
texture denmark, models_strat/textures/merchant_macedon.tga
texture egypt, models_strat/textures/merchant_egypt.tga
texture scotland, models_strat/textures/merchant_seleucid.tga
texture aztecs, models_strat/textures/merchant_carthage.tga
texture mongols, models_strat/textures/merchant_parthia.tga
texture turks, models_strat/textures/merchant_pontus.tga
texture france, models_strat/textures/merchant_gaul.tga
texture hre, models_strat/textures/merchant_german.tga
texture england, models_strat/textures/merchant_briton.tga
texture saxons, models_strat/textures/merchant_german.tga
texture normans, models_strat/textures/merchant_briton.tga
texture portugal, models_strat/textures/merchant_armenia.tga
texture poland, models_strat/textures/merchant_dacia.tga
texture byzantium, models_strat/textures/merchant_greek.tga
texture bulgaria, models_strat/textures/merchant_greek.tga
texture moors, models_strat/textures/merchant_numidia.tga
texture russia, models_strat/textures/merchant_scythia.tga
texture spain, models_strat/textures/merchant_spain.tga
texture hungary, models_strat/textures/merchant_thrace.tga
texture timurids, models_strat/textures/merchant_parthia.tga
texture slave, models_strat/textures/merchant_slave.tga
model_flexi_m models_strat/merchant.cas, max
shadow_model_flexi models_strat/shadow_model_merchant.cas, max
type priest
skeleton strat_diplomat
scale 0.8
indiv_range 40
texture venice, models_strat/textures/priest_julii.tga
texture sicily, models_strat/textures/priest_brutii.tga
texture milan, models_strat/textures/priest_scipii.tga
texture papal_states, models_strat/textures/priest_senate.tga
texture denmark, models_strat/textures/priest_macedon.tga
texture egypt, models_strat/textures/priest_egypt.tga
texture scotland, models_strat/textures/priest_seleucid.tga
texture aztecs, models_strat/textures/priest_carthage.tga
texture mongols, models_strat/textures/priest_parthia.tga
texture turks, models_strat/textures/priest_pontus.tga
texture france, models_strat/textures/priest_gaul.tga
texture hre, models_strat/textures/priest_german.tga
texture england, models_strat/textures/priest_briton.tga
texture saxons, models_strat/textures/priest_german.tga
texture normans, models_strat/textures/priest_briton.tga
texture portugal, models_strat/textures/priest_armenia.tga
texture poland, models_strat/textures/priest_dacia.tga
texture byzantium, models_strat/textures/priest_greek.tga
texture bulgaria, models_strat/textures/priest_greek.tga
texture moors, models_strat/textures/priest_numidia.tga
texture russia, models_strat/textures/priest_scythia.tga
texture spain, models_strat/textures/priest_spain.tga
texture hungary, models_strat/textures/priest_thrace.tga
texture timurids, models_strat/textures/priest_parthia.tga
texture slave, models_strat/textures/priest_slave.tga
model_flexi_m models_strat/priest.cas, max
shadow_model_flexi models_strat/priest.cas, max
type bishop
skeleton strat_assassin
scale 1.2
indiv_range 40
texture venice, models_strat/textures/bishop_julii.tga
texture sicily, models_strat/textures/bishop_brutii.tga
texture milan, models_strat/textures/bishop_scipii.tga
texture papal_states, models_strat/textures/bishop_senate.tga
texture denmark, models_strat/textures/bishop_macedon.tga
texture egypt, models_strat/textures/bishop_egypt.tga
texture scotland, models_strat/textures/bishop_seleucid.tga
texture aztecs, models_strat/textures/bishop_carthage.tga
texture mongols, models_strat/textures/bishop_parthia.tga
texture turks, models_strat/textures/bishop_pontus.tga
texture france, models_strat/textures/bishop_gaul.tga
texture hre, models_strat/textures/bishop_german.tga
texture england, models_strat/textures/bishop_briton.tga
texture saxons, models_strat/textures/bishop_german.tga
texture normans, models_strat/textures/bishop_briton.tga
texture portugal, models_strat/textures/bishop_armenia.tga
texture poland, models_strat/textures/bishop_dacia.tga
texture byzantium, models_strat/textures/bishop_greek.tga
texture bulgaria, models_strat/textures/bishop_greek.tga
texture moors, models_strat/textures/bishop_numidia.tga
texture russia, models_strat/textures/bishop_scythia.tga
texture spain, models_strat/textures/bishop_spain.tga
texture hungary, models_strat/textures/bishop_thrace.tga
texture timurids, models_strat/textures/bishop_parthia.tga
texture slave, models_strat/textures/bishop_slave.tga
model_flexi_m models_strat/bishop.cas, max
shadow_model_flexi models_strat/bishop.cas, max
type cardinal
skeleton strat_spy
scale 1.6
indiv_range 40
texture venice, models_strat/textures/cardinal_julii.tga
texture sicily, models_strat/textures/cardinal_brutii.tga
texture milan, models_strat/textures/cardinal_scipii.tga
texture papal_states, models_strat/textures/cardinal_senate.tga
texture denmark, models_strat/textures/cardinal_macedon.tga
texture egypt, models_strat/textures/cardinal_egypt.tga
texture scotland, models_strat/textures/cardinal_seleucid.tga
texture aztecs, models_strat/textures/cardinal_carthage.tga
texture mongols, models_strat/textures/cardinal_parthia.tga
texture turks, models_strat/textures/cardinal_pontus.tga
texture france, models_strat/textures/cardinal_gaul.tga
texture hre, models_strat/textures/cardinal_german.tga
texture england, models_strat/textures/cardinal_briton.tga
texture saxons, models_strat/textures/cardinal_german.tga
texture normans, models_strat/textures/cardinal_briton.tga
texture portugal, models_strat/textures/cardinal_armenia.tga
texture poland, models_strat/textures/cardinal_dacia.tga
texture byzantium, models_strat/textures/cardinal_greek.tga
texture bulgaria, models_strat/textures/cardinal_greek.tga
texture moors, models_strat/textures/cardinal_numidia.tga
texture russia, models_strat/textures/cardinal_scythia.tga
texture spain, models_strat/textures/cardinal_spain.tga
texture hungary, models_strat/textures/cardinal_thrace.tga
texture timurids, models_strat/textures/cardinal_parthia.tga
texture slave, models_strat/textures/cardinal_slave.tga
model_flexi_m models_strat/cardinal.cas, max
shadow_model_flexi models_strat/cardinal.cas, max
Long file indeed. But, not the end.
Code:
type diplomat
skeleton strat_diplomat
scale 0.7
indiv_range 40
texture venice, models_strat/textures/diplomat_julii.tga
texture sicily, models_strat/textures/diplomat_brutii.tga
texture milan, models_strat/textures/diplomat_scipii.tga
texture papal_states, models_strat/textures/diplomat_senate.tga
texture denmark, models_strat/textures/diplomat_macedon.tga
texture egypt, models_strat/textures/diplomat_egypt.tga
texture scotland, models_strat/textures/diplomat_seleucid.tga
texture aztecs, models_strat/textures/diplomat_carthage.tga
texture mongols, models_strat/textures/diplomat_parthia.tga
texture turks, models_strat/textures/diplomat_pontus.tga
texture france, models_strat/textures/diplomat_gaul.tga
texture hre, models_strat/textures/diplomat_german.tga
texture england, models_strat/textures/diplomat_briton.tga
texture saxons, models_strat/textures/diplomat_german.tga
texture normans, models_strat/textures/diplomat_briton.tga
texture portugal, models_strat/textures/diplomat_armenia.tga
texture poland, models_strat/textures/diplomat_dacia.tga
texture byzantium, models_strat/textures/diplomat_greek.tga
texture bulgaria, models_strat/textures/diplomat_greek.tga
texture moors, models_strat/textures/diplomat_numidia.tga
texture russia, models_strat/textures/diplomat_scythia.tga
texture spain, models_strat/textures/diplomat_spain.tga
texture hungary, models_strat/textures/diplomat_thrace.tga
texture timurids, models_strat/textures/diplomat_parthia.tga
;texture slave, models_strat/textures/diplomat_slave.tga
model_flexi_m models_strat/diplomat.cas, max
shadow_model_flexi models_strat/diplomat.cas, max
type spy
skeleton strat_spy
scale 0.7
indiv_range 40
texture venice, models_strat/textures/spy_julii.tga
texture sicily, models_strat/textures/spy_brutii.tga
texture milan, models_strat/textures/spy_scipii.tga
texture papal_states, models_strat/textures/spy_senate.tga
texture denmark, models_strat/textures/spy_macedon.tga
texture egypt, models_strat/textures/spy_egypt.tga
texture scotland, models_strat/textures/spy_seleucid.tga
texture aztecs, models_strat/textures/spy_carthage.tga
texture mongols, models_strat/textures/spy_parthia.tga
texture turks, models_strat/textures/spy_pontus.tga
texture france, models_strat/textures/spy_gaul.tga
texture hre, models_strat/textures/spy_german.tga
texture england, models_strat/textures/spy_briton.tga
texture saxons, models_strat/textures/spy_german.tga
texture normans, models_strat/textures/spy_briton.tga
texture portugal, models_strat/textures/spy_armenia.tga
texture poland, models_strat/textures/spy_dacia.tga
texture byzantium, models_strat/textures/spy_greek.tga
texture bulgaria, models_strat/textures/spy_greek.tga
texture moors, models_strat/textures/spy_numidia.tga
texture russia, models_strat/textures/spy_scythia.tga
texture spain, models_strat/textures/spy_spain.tga
texture hungary, models_strat/textures/spy_thrace.tga
texture timurids, models_strat/textures/spy_parthia.tga
;texture slave, models_strat/textures/spy_slave.tga
model_flexi_m models_strat/spy.cas, max
shadow_model_flexi models_strat/spy.cas, max
;;TEMPORARY;;
type assassin
skeleton strat_assassin
scale 0.7
indiv_range 40
texture venice, models_strat/textures/assassin_julii.tga
texture sicily, models_strat/textures/assassin_brutii.tga
texture milan, models_strat/textures/assassin_scipii.tga
texture papal_states, models_strat/textures/assassin_senate.tga
texture denmark, models_strat/textures/assassin_macedon.tga
texture egypt, models_strat/textures/assassin_egypt.tga
texture scotland, models_strat/textures/assassin_seleucid.tga
texture aztecs, models_strat/textures/assassin_carthage.tga
texture mongols, models_strat/textures/assassin_parthia.tga
texture turks, models_strat/textures/assassin_pontus.tga
texture france, models_strat/textures/assassin_gaul.tga
texture hre, models_strat/textures/assassin_german.tga
texture england, models_strat/textures/assassin_briton.tga
texture saxons, models_strat/textures/assassin_german.tga
texture normans, models_strat/textures/assassin_briton.tga
texture portugal, models_strat/textures/assassin_armenia.tga
texture poland, models_strat/textures/assassin_dacia.tga
texture byzantium, models_strat/textures/assassin_greek.tga
texture bulgaria, models_strat/textures/assassin_greek.tga
texture moors, models_strat/textures/assassin_numidia.tga
texture russia, models_strat/textures/assassin_scythia.tga
texture spain, models_strat/textures/assassin_spain.tga
texture hungary, models_strat/textures/assassin_thrace.tga
texture timurids, models_strat/textures/assassin_parthia.tga
;texture slave, models_strat/textures/assassin_slave.tga
model_flexi models_strat/assassin.cas, max
shadow_model_flexi models_strat/assassin.cas, max
Now to add General:
Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;GREEK GENERALS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
type sm_greek_general
skeleton strat_named_with_army
scale 0.7
indiv_range 40
texture denmark, models_strat/textures/officer_greek_general_macedon.tga
texture scotland, models_strat/textures/officer_greek_general_seleucid.tga
texture byzantium, models_strat/textures/officer_greek_general_greece.tga
texture bulgaria, models_strat/textures/officer_greek_general_greece.tga
texture hungary, models_strat/textures/officer_greek_general_thrace.tga
model_flexi_m models_strat/officer_greek_general_high.cas, max
shadow_model_flexi models_strat/shadow_model_sword.cas, max
type sm_greek_lesser_general
skeleton strat_named_with_army
scale 0.7
indiv_range 40
texture denmark, models_strat/textures/unit_greek_militia_hoplite_macedon.tga
texture scotland, models_strat/textures/unit_greek_militia_hoplite_seleucid.tga
texture byzantium, models_strat/textures/unit_greek_militia_hoplite_greek.tga
texture bulgaria, models_strat/textures/unit_greek_militia_hoplite_greek.tga
texture hungary, models_strat/textures/unit_greek_militia_hoplite_thrace.tga
model_flexi_m models_strat/strat_greek_lesser_general.CAS, max
shadow_model_flexi models_strat/shadow_model_sword.cas, max
I admit that I don’t know what is meaning of those lines, but again, it has to be like that.
Add following line under Admiral for Byzantium:
Code:
type greek_cities_admiral
skeleton strat_navy
indiv_range 40
texture byzantium, models_strat/textures/navy_galley.tga
texture bulgaria, models_strat/textures/navy_galley.tga
model_flexi models_strat/navy_galley.cas, max
shadow_model_flexi models_strat/navy_roman_shadow.cas, max
Weird, but it has to be like that. DON’T add as separate because game will crash when campaign starts to load (happened to me)!
-------------------------
Update I
Adding new general and captain in campaign map with new texture
I added new Bulgarian general (in my case for my mod):
Code:
texture bulgaria, models_strat/textures/late_general_bulgaria_strat.tga
And captain:
Code:
texture bulgaria, models_strat/textures/late_northern_captain_bulgaria_strat.tga
If you want to have new looking general and/or captain (not using textures from other faction), you need to create new textures for them. And how to do that is really easy if you know to work in Photoshop. Texture file is in tga.dds format.
Step 5
Open descr_names.txt with Notepad. Here we’ll define names, surnames and female names for our faction. Those names are in close relation with names.txt and names you add here must be added in names.txt (later about that file).
Add following line (I will add just few names):
Code:
faction: bulgaria
characters
Alexander
Iwan
Michael
surnames
Aseniden
Shishman
women
Elena
Marija
This is end of step 5.
Step 6
Open descr_offmap_models.txt with Notepad. In this file you define models (.cas) used by faction in campaign map.
We’ll add navy for our faction. This is same for the all factions. Add following line:
Code:
faction bulgaria
{
large data/models_off_map/bireme_OFF_MAP.CAS 100 0
medium data/models_off_map/bireme_OFF_MAP.CAS 100 0
small data/models_off_map/bireme_OFF_MAP.CAS 100 0
}
And this is it.
Step 7
Open descr_sm_factions.txt with Notepad. This file is one of the most important. In that file we set up our faction. Because I used France for symbols of our new faction I will use them because of that but I will change all lines which has nothing with symbols.
Code:
faction bulgaria
culture eastern_european
religion orthodox
symbol models_strat/symbol_france.CAS
rebel_symbol models_strat/symbol_rebels.CAS
primary_colour red 85, green 187, blue 80
secondary_colour red 255, green 10, blue 10
loading_logo loading_screen/symbols/symbol128_france.tga
standard_index 10
logo_index FACTION_LOGO_FRANCE
small_logo_index SMALL_FACTION_LOGO_FRANCE
triumph_value 5
intro_movie faction/major_intro.bik
victory_movie faction/france_win.bik
defeat_movie faction/france_lose.bik
death_movie faction/france_lose.bik
custom_battle_availability no
can_sap no
prefers_naval_invasions no
can_have_princess yes
has_family_tree yes
I changed culture, religion, primary color (into green), secondary color (into red) and set up no for custom battles.
WARNING!!!
Don’t disable movies under any circumstances because game will crash when campaign loads. I do that and, thanks God, found quickly what caused problem (after problem with descr_model_strat.txt). This was my last problem.
Use following line in .cfg file to disable video:
-------------------------
Update I
In data\menu\symbols you can find all coats of arms for factions.
Folder fe_buttons_24
If you want to add new symbols for faction (in my case Bulgaria) you have to create the new ones in .tga file format. So, it has to be:
symbol24_ bulgaria.tga
symbol24_ bulgaria_grey.tga
symbol24_ bulgaria_roll.tga
symbol24_ bulgaria_select.tga
Folder fe_buttons_48
The same as previous folder, just coats of arms are bigger.
symbol48_ bulgaria.tga
symbol48_ bulgaria_grey.tga
symbol48_ bulgaria_roll.tga
symbol48_ bulgaria_select.tga
Folder fe_faction_units
Here you add your special unit for faction. In my case it is bulgaria.tga. That special unit is shown when you choose faction in Campaign.
Folder fe_symbols_80
Here are coats of arms, but different from folders fe_buttons_24 and fe_buttons_48 (they are round here). To add brand new you need to create bulgaria.tga (in my case).
Now, to enable those new coats of arms for your new faction, open descr_sm_factions.txt. The following lines:
Code:
logo_index FACTION_LOGO_FRANCE
small_logo_index SMALL_FACTION_LOGO_FRANCE
Change into:
Code:
logo_index FACTION_LOGO_BULGARIA
small_logo_index SMALL_FACTION_LOGO_ BULGARIA
Special thanks to DarkKnight who provided solution for that.
Also he wrote how to make proper standard in strategic (campaign) map:
Also, in order to get the COA's to work here is how they are chosen. Go to descr_sm_factions.txt and you will notice each faction has a "STANDARD INDEX". The number here determines the COA. A value of 0 here means the faction will get the venetian lion for example.
Now open banners folder. Find 8 tgas with the name symbols.tga. For example there is symbols1.tga, symbols2.tga... up to symbols8.tga. Each symbols file has 4 COA's in it. The tga is split into quadrants. The top left quadrant of symbols1.tga is a standard index of 0. The top right quadrant is a standard index of 1. The bottom left is 2. The bottom right is 3. Then the top left quadrant of symbols2.tga is 4. The top right of that is 5... and so forth. That is how the COA's are chosen. If you notice towards the end, the rebel COA is repeated. If we edit these we should be able to make new COA's for new factions.
I will add that symbol.tga files for standards are in data\banners folder.
NOTICE:
In Custom battle you can have ONLY 21 faction, which I think is obvious. If you want to see your new faction in Custom battle, put yes, but change to no for some other faction. Otherwise game will crash.
Step 8
Open export_descr_buildings.txt with Notepad. Here we’ll define what building can have and build our new faction plus what units can be recruited.
We don’t have to add any new building as they are mostly associated with culture (there are exceptions, of course). What we’ll add are units. Because every faction can have mercenary units I will add unit of Bulgarian Brigands Mercs to mustering_hall just for our tutorial.
Code:
recruit_pool "Bulgarian Brigands Mercs" 1 0.5 4 0 requires factions { bulgaria, }
Step 9
Open export_descr_unit.txt with Notepad. Here we define units what our faction can have. First, we need general unit. Because our faction doesn’t have textures for general (he will invisible) we’ll use mercenary unit for it.
I will use for general unit Kwarizmian Cavalry. I bolded what has been added:
Code:
type Kwarizmian Cavalry
dictionary Kwarizmian_Cavalry ; Kwarizmian Cavalry
category cavalry
class heavy
voice_type Heavy
accent Arabic
banner faction main_cavalry
banner holy crusade_cavalry
soldier Kwarizmian_Cavalry, 32, 0, 1
mount eastern armoured horse
mount_effect elephant -4, camel -4
attributes sea_faring, hide_forest, hardy, can_withdraw, can_formed_charge, mercenary_unit, general_unit
formation 2, 4.4, 3, 6, 3, square, wedge
stat_health 1, 0
stat_pri 10, 3, no, 0, 0, melee, melee_blade, piercing, spear, 25, 1
;stat_pri_ex 0, 0, 0
stat_pri_attr no
stat_sec 11, 0, no, 0, 0, melee, melee_blade, piercing, sword, 25, 1
;stat_sec_ex 0, 0, 0
stat_sec_attr no
stat_pri_armour 8, 5, 0, metal
;stat_armour_ex 8, 0, 0, 0, 5, 0, 0, metal
stat_sec_armour 0, 0, flesh
stat_heat 3
stat_ground 0, 1, -6, -1
stat_mental 9, normal, trained
stat_charge_dist 45
stat_fire_delay 0
stat_food 60, 300
stat_cost 1, 1150, 370, 120, 95, 1150, 4, 180
armour_ug_levels 4
armour_ug_models Kwarizmian_Cavalry
ownership slave, egypt, timurids, mongols, bulgaria
era 1 egypt, timurids, mongols
;unit_info 10, 0, 13
Unit Bulgarian Brigands Mercs will be our only unit in campaign (because we just test). Add Bulgaria as owner:
ownership slave, hungary, byzantium, bulgaria
Step 10
Open campaign_descriptions.txt with Notepad in text folder (you need to convert that file with alpaca’s strings.bin converter).
In this file you describe campaign of your faction. I will use France and change only string which defines your faction:
Code:
{IMPERIAL_CAMPAIGN_BULGARIA_TITLE}Tzardom of Bulgaria
{IMPERIAL_CAMPAIGN_BULGARIA_DESCR}DIFFICULTY Factor: Estimated MODERATE\n\nFrance is a shining example of feudalism in its rawest, and arguably, most delicate form. The French lords eagerly embrace the system that splits the country up into smaller provinces, duchies and fiefdoms, actively building up their forces to ensure their own security and power. About the only thing the French lack at this point is a sense of unity...\n\nThe Ile de France may be where the monarchy resides, but the royal family rarely leave Paris. This is not because of a great love for the city, but rather because the surrounding lands are under the shadow of bastions owned by "Robber Barons" that serve their own interests. Frankly, the way things are now, the King isn't truly safe to wander a kingdom that is supposedly his.\n\nThe Normans are clearly serving their own best interests, having recently taken England for themselves, it's hard to believe that they will be content to stop there. Other provinces such as Aquitaine, Burgundy, Brittany and Flanders aren't quite so dangerously ambitious... exercising a little authority over these lands looks like an essential move for the French if they're to have any hope of creating a power base that can stave off the might of the Holy Roman Empire to the east. Even less pressing concerns like Spanish and Milanese expansion will soon become a royal headache for the monarchy if France does not establish solid fronts to the south.
Step 11
Open expanded.txt with Notepad in text folder (you need to convert that file with alpaca’s strings.bin converter). Here you define what you see in game (texts). I will copy Russia and just proper rename to Bulgaria.
I won’t write here how to do that because it is very easy and a bit boring.
Just example:
Code:
{EMT_BULGARIA_SPY}Bulgarian Spy
{EMT_BULGARIA_ASSASSIN}Bulgarian Assassin
{EMT_BULGARIA_DIPLOMAT}Bulgarian Diplomat
{EMT_BULGARIA_ADMIRAL}Bulgariand Navy
{EMT_BULGARIA_GENERAL}Bulgarian Army
{EMT_BULGARIA_NAMED_CHARACTER}Bulgarian Family Member
{EMT_BULGARIA_NAMED_GENERAL}Bulgarian General
{EMT_BULGARIA_PRINCESS}Bulgarian Princess
{EMT_BULGARIA_MERCHANT}Bulgarian Merchant
{EMT_BULGARIA_PRIEST}Bulgarian Priest
{EMT_BULGARIA_PRIEST_1}Bulgarian Bishop
{EMT_BULGARIA_PRIEST_2}Bulgarian Cardinal
And etc.
-------------------------
Update I
This is full code which you need:
Code:
{BULGARIA}Carstvo Bălgarija
{EMT_BULGARIA_SPY}Bulgarian Spy
{EMT_BULGARIA_ASSASSIN}Bulgarian Assassin
{EMT_BULGARIA_DIPLOMAT}Bulgarian Diplomat
{EMT_BULGARIA_ADMIRAL}Bulgarian Navy
{EMT_BULGARIA_GENERAL}Bulgarian Army
{EMT_BULGARIA_NAMED_CHARACTER}Bulgarian Family Member
{EMT_BULGARIA_NAMED_GENERAL}Bulgarian General
{EMT_BULGARIA_PRINCESS}Bulgarian Princess
{EMT_BULGARIA_MERCHANT}Bulgarian Merchant
{EMT_BULGARIA_PRIEST}Bulgarian Priest
{EMT_BULGARIA_PRIEST_1}Bulgarian Bishop
{EMT_BULGARIA_PRIEST_2}Bulgarian Cardinal
{EMT_BULGARIA_VILLAGE}Bulgarian Village
{EMT_BULGARIA_TOWN}Bulgarian Town
{EMT_BULGARIA_LARGE_TOWN}Bulgarian Large Town
{EMT_BULGARIA_CITY}Bulgarian City
{EMT_BULGARIA_LARGE_CITY}Bulgarian Large City
{EMT_BULGARIA_HUGE_CITY}Bulgarian Huge City
{EMT_BULGARIA_WOODEN_CASTLE}Bulgarian Motte and Bailey
{EMT_BULGARIA_STONE_KEEP}Bulgarian Wooden Castle
{EMT_BULGARIA_CASTLE}Bulgarian Castle
{EMT_BULGARIA_LARGE_CASTLE}Bulgarian Fortress
{EMT_BULGARIA_FORTRESS}Bulgarian Citadel
{EMT_BULGARIA_STAR_FORT}Bulgarian Star Fort
{EMT_BULGARIA_CAPITAL}Bulgarian Capital
{EMT_BULGARIA_FORT}Bulgarian Fort
{EMT_BULGARIA_PORT}Bulgarian Port
{EMT_BULGARIA_DOCK}Bulgarian Docks
{EMT_BULGARIA_FISHING_VILLAGE}Bulgarian Fishing Village
{EMT_BULGARIA_WATCHTOWER}Bulgarian Watchtower
{EMT_BULGARIA_FACTION_LEADER}Bulgarian Faction Leader
{EMT_BULGARIA_FACTION_HEIR}Bulgarian Faction Heir
{EMT_BULGARIA_FACTION_LEADER_TITLE}Faction Leader
{EMT_BULGARIA_FACTION_HEIR_TITLE}Faction Heir
{EMT_BULGARIA_FACTION_LEADER_NAME}Tzar %S
{EMT_BULGARIA_FACTION_HEIR_NAME}Prince %S
{EMT_BULGARIA_FORMER_FACTION_LEADER_TITLE}Tzar
{EMT_YOUR_FORCES_ATTACK_ARMY_BULGARIA}Your forces attack an army of Bulgaria
{EMT_YOUR_FORCES_ATTACK_NAVY_BULGARIA}Your forces attack a navy of Bulgaria
{EMT_YOUR_FORCES_AMBUSH_ARMY_BULGARIA}Your forces ambush an army of Bulgaria
{EMT_YOUR_FORCES_ATTACKED_ARMY_BULGARIA}Your forces are attacked by an army of Bulgaria
{EMT_YOUR_FORCES_ATTACKED_NAVY_BULGARIA}Your forces are attacked by a navy of Bulgaria
{EMT_YOUR_FORCES_AMBUSHED_ARMY_BULGARIA}Your forces are ambushed by an army of Bulgaria
{EMT_VICTORY_BULGARIA}The Bulgaria is Victorious
{BULGARIA_STRENGTH}Good cavalry and medium infantry troops.
{BULGARIA_WEAKNESS}Lacking in gunpowder units.
{BULGARIA_UNIT}Bălgarski Strelci
Unicode support in game is a bit weird. In some cases Unicode support is perfect, and in some game just don’t see letter. The most special letters game sees properly.
Step 12
Open names.txt with Notepad in text folder (you need to convert that file with alpaca’s strings.bin converter). Here you define all names, surnames and women names in game.
Because I already added names in descr_names.txt in my case I added in the end of lines the following:
Code:
{Alexander}Alexander
{Iwan}Iwan
{Michael}Michael
{Aseniden}Aseniden
{Shishman}Shishman
{Elena}Elena
{Marija}Marija
Name in {brackets} must be identical with names in descr_names.txt. What will be written after it is absolutely irrelevant. Name after brackets will be shown in game and has full Unicode support.
Step 13
Open descr_win_conditions.txt with Notepad in data\world\maps\campaign\imperial_campaign. Here you define what your faction needs to win.
I put this:
Code:
bulgaria
hold_regions Constantinople_Province
take_regions 35
short_campaign hold_regions ;Roman_Province Jerusalem_Province
take_regions 15
outlive Byzantium
Step 14
Open descr_strat.txt in data\world\maps\campaign\imperial_campaign. Here we’ll define Bulgaria as starting faction and place it on campaign map.
First add Bulgaria as playable faction:
Code:
campaign imperial_campaign
playable
england
france
hre
spain
venice
sicily
milan
scotland
byzantium
russia
moors
turks
egypt
denmark
portugal
poland
hungary
bulgaria
end
unlockable
end
nonplayable
papal_states
aztecs
mongols
timurids
slave
end
Now we’ll add Bulgaria in campaign map.
Code:
faction bulgaria, fortified smith
ai_label default
denari 6000
denari_kings_purse 1000
settlement castle
{
level town
region Sofia_Province
year_founded 0
population 2200
plan_set default_set
faction_creator russia
building
{
type core_castle_building wooden_castle
}
building
{
type castle_barracks mustering_hall
}
}
character Iwan, named character, male, leader, age 36, x 200, y 103
traits Factionleader 1 , GoodCommander 1 , Intelligent 2 , VictorVirtue 3 , PublicFaith 2 , BattleDread 2 , StrategyDread 2 , ReligionStarter 1
army
unit Kwarizmian Cavalry exp 1 armour 0 weapon_lvl 0
unit Bulgarian Brigands Mercs exp 0 armour 0 weapon_lvl 0
unit Bulgarian Brigands Mercs exp 0 armour 0 weapon_lvl 0
unit Bulgarian Brigands Mercs exp 0 armour 0 weapon_lvl 0
unit Bulgarian Brigands Mercs exp 0 armour 0 weapon_lvl 0
If you want more characters, settlements and building add them. I copied English faction leader :).
First unit after character must be general unit. In our case it is Kwarizmian Cavalry.
FINAL NOTICE:
Erase map.rwm in data\world\maps\base. I didn’t and it worked but if you work with descr_strat.txt again (and I think whole world folder) do it or you want see changes.
APPENDIX I
My advice is that you firstly add Normans and Saxons from tutorial as factions and convert them. You can read about it here. 21 factions from vanilla + rebels + 2 from tutorial and the rest (7) you need to add.
For adding Normans and Saxons read this tutorial by selenius4tsd:
How To Create a New Faction (using Normans/Saxons)
https://forums.totalwar.org/vb/showthread.php?t=76730
NOTICE
You can add all new nine factions from nothing. Adding Normans and Saxons from tutorial as factions is not necessary, because game will work without problems (look Appendix II).
Speaker has German voice (Reich win again! and similar), and I didn’t find way to change it.
APPENDIX II
Vlad added nine factions from nothing. He posted that he modified the following files:
Code:
descr_strat.txt
descr_win_conditions.txt
------------
export_descr_unit.txt
descr_offmap_models.txt
descr_model_strat.txt
descr_lbc_db.txt
descr_cultures.txt
descr_character.txt
descr_sm_factions.txt
descr_names.txt
export_descr_buildings.txt
-----------------------------------------
menu_english.txt
campaign_descriptions.txt
expanded.txt
I found 100% that files descr_cultures.txt and menu_english.txt are completely irrelevant for adding new faction.
My tutorial has two more steps. The answer is easy – vlad said:
i reccomend for all add new nations like Ally0 Ally1 Ally2 Ally3 Ally4 Ally5 Enemy0 Enemy1 Enemy2 Enemy3 .............
you heave working flags(standarts)- need only reskin for standarts
That’s why he didn’t write banner’s file.
Link:
http://www.twcenter.net/forums/showt...t=72270&page=3
APPENDIX III
This tutorial doesn’t cover work with units, but I will help with adding captain and general for new faction.
Before start, I highly recommended that you look this thread:
https://forums.totalwar.org/vb/showthread.php?t=79455
Use formatted battle_models.modeldb by KnightErrant as your life will be much less frustrating.
Captain
Open battle_models.modeldb and hit Ctrl+F and type 16 northern_captain.
Add this line of code:
Code:
8 bulgaria
99 unit_models/_Generals_and_Captains/Northern_Captain/textures/late_northern_captain_bulgaria.texture
97 unit_models/_Generals_and_Captains/Northern_Captain/textures/late_northern_captain_normal.texture 0
Change 19 into 20 after this line:
Code:
78 unit_models/_Generals_and_Captains/Northern_Captain/northern_captain_lod3.mesh 6400
Otherwise game will crash in the start.
NOTICE
My friend for our mod made new texture for captain late_northern_captain_bulgaria.texture. If you don’t have new texture, you can use from other faction.
You added captain, but you need to add attachment to him, too.
Code:
8 bulgaria
62 unit_models/AttachmentSets/Final General_portugal_diff.texture
62 unit_models/AttachmentSets/Final General_portugal_norm.texture 0
Attachment is irrelevant, as all factions have the same, and that’s why I put Portugal.
Change 19 into 20 after this line:
Code:
6 saxons
94 unit_models/_Generals_and_Captains/Northern_Captain/textures/late_northern_captain_hre.texture
97 unit_models/_Generals_and_Captains/Northern_Captain/textures/late_northern_captain_normal.texture 0
General
General is after captain. Just scroll a bit down.
Add this line of code:
Code:
8 bulgaria
90 unit_models/_Generals_and_Captains/Northern_General/textures/late_general_bulgaria.texture
88 unit_models/_Generals_and_Captains/Northern_General/textures/late_general_normal.texture 0
Change 18 into 19 after this line:
Code:
78 unit_models/_Generals_and_Captains/Northern_General/northern_general_lod3.mesh 6400
Otherwise game will crash in the start.
You added general, but you need to add attachment to him, too.
Code:
8 bulgaria
62 unit_models/AttachmentSets/Final General_portugal_diff.texture
62 unit_models/AttachmentSets/Final General_portugal_norm.texture 0
Attachment is irrelevant, as all factions have the same, and that’s why I put Portugal.
Change 18 into 19 after this line:
Code:
6 saxons
85 unit_models/_Generals_and_Captains/Northern_General/textures/late_general_hre.texture
88 unit_models/_Generals_and_Captains/Northern_General/textures/late_general_normal.texture 0
Look Screenshots II – if you did well, your new captains and generals will show.
APPENDIX IV
Many useful tutorials can be found, so, proper question post there:
Musashi wrote this excellent tutorial:
Adding a unit to the game
https://forums.totalwar.org/vb/showthread.php?t=75706
M3rcury15 (from TWC) wrote excellent tutorial, too:
Add other faction units for new factions
http://www.twcenter.net/forums/showthread.php?t=74945
Zorgrath (from TWC) wrote this:
How to create a dismounted unit
http://www.twcenter.net/forums/showthread.php?t=78236
AliAS wrote nice tutorial, too (not in direct link with adding new faction, but useful):
New face of Faction Icon
https://forums.totalwar.org/vb/showthread.php?t=79810
SCREENSHOTS I
This is campaign screenshot when you choose faction. Ugly, isn’t it?
You don’t see coat of arms and map is default. That is expected as I didn’t work with graphics files.

This is out faction leader and his starting army in campaign map. Notice French flags and Byzantine look of faction leader :D.

In our castle we can recruit only Bulgarian Brigands.

Diplomacy section with French coat of arms.

Finally battle – I attacked so called “Byzantium” and you see transparent white banners and missing coat of arms. And missing general
.

SCREENSHOTS II
Many things changed in the mean time.
My friend made new texture for captain and general in campaign map:

And we created new general’s unit for new faction, and this is how general looks in the battle.
Bookmarks