Hording and Emergent Factions - RTW/BI
The Barbarian Invasion expansion introduced hording and emergent factions to the Total War game.
Contents
Horde Factions - General Information
Whether a faction is a 'horde' faction or not is determined in descr_sm_factions.txt, the following is an example of the basics required for a horde faction:
Fig. 1:
faction franks culture barbarian symbol models_strat/symbol_franks.CAS rebel_symbol models_strat/symbol_barb_rebel.CAS primary_colour red 10, green 39, blue 117 secondary_colour red 255, green 255, blue 255 loading_logo loading_screen/symbols/symbol128_franks.tga standard_index 3 logo_index 232 ; Index into strat3.rsd small_logo_index 246 ; Index into shared.rsd triumph_value 5 intro_movie victory_movie fmv/victory/franks_win.wmv defeat_movie fmv/lose/franks_eliminated.wmv death_movie fmv/lose/franks_eliminated.wmv custom_battle_availability yes horde_min_units 60 horde_max_units 100 horde_max_units_reduction_every_horde 20 horde_unit_per_settlement_population 300 horde_min_named_characters 4 horde_max_percent_army_stack 80 horde_disband_percent_on_settlement_capture 33 horde_disband_percent_on_settlement_capture 50 horde_disband_percent_on_settlement_capture 100 horde_unit barb horde chosen swordsmen horde_unit barb horde chosen swordsmen horde_unit barb horde spearman can_sap yes prefers_naval_invasions no
The lines marked in bold are required for a horde faction. The numbers used for min_units, max_units etc are relatively self explanatory and can be adjusted. A horde faction must have at least one horde unit listed in its army section, but may have more, the armies composition will reflect the number of entries per unit, so that example would give more swordsmen than spearmen. NOTE: The units you select above and the horde_unit_per_ settlement population are VERY IMPORTANT. If you have horde unit per settlement pop set to 120 and you have all 240 size units (assuming your playing on huge) in the horde unit section then that will mean that you are infact getting your people to settle... and then for every person that's just settled down you have 2 people who join the horde! Bigger units means more people total Lower horde unit per settlement population means more units (and therefore people total) If you want your faction in question to be an unstoppable killing force then set all their horde units to 240, the first disband settlement to 0 and the horde unit per settlement pop to 240. This way your horde will never lose a soul via settling... if you lose say 200 men per settlement and each settlement is 10,400 people then you will soon get an army of approx 60,000 strong after just 6 settlements!
Adding Horde Ability
If you are adding horde ability to a faction you must add those lines between "custom_battle... and can_sap" to its sm_factions entry - as marked in bold in Fig.1 above. You must also give the faction ownership of a horde unit in export_descr_units.txt. The only requirement for a 'horde_unit' is that its export_descr_units.txt entry has the attribute can_horde, e.g.
Fig. 2:
type barb horde peasants dictionary barb_horde_peasants ; Horde Peasants category infantry class light voice_type Light_1 soldier western_peasant, 60, 0, 0.8 attributes sea_faring, hide_forest, can_horde, can_swim, no_custom, is_peasant formation 1.2, 1.8, 2.4, 2.4, 6, horde stat_health 1, 0 ....... stat_cost 1, 72, 0, 20, 30, 80 ownership franks, lombardi, burgundii
Do not confuse this with the horde entry on the formations line which merely makes the units' soldiers deploy in circular formation in battle. It is conventional to use the word horde in the unit name and to give the horde unit a 0 maintenance cost - so as not to bankrupt horde factions before they gain income from a settlement. Those factors are not essential though.
Remember also to alter descr_model_battle.txt to give any units with new faction ownership an appropriate texture line for the new faction, otherwise the game may CTD when units are used in battle.
You will automatically get the hording symbol displayed on an armies strat map flag if they have a high percentage of horde units in the army. To get the horde symbol displayed on the individual units' unit card you have to adapt the unit card manually in an image editor.
Removing Horde Ability
If you wish to remove the horde ability from a faction just delete the lines between between "custom_battle... and can_sap" in its sm_factions entry - as marked in bold in Fig. 1. You will also need to remove that factions ownership from any unit in export_descr_units.txt that has 'can_horde' attribute.
Do not remove the horde ability from the Slavs without also removing the event which makes them emerge.
Horde Factions on Map at Start - Without Settlement
The Huns and Vandals are placed on map but do not own a settlement, they are 'horde' nations so do not get destroyed because of not owning settlement. Most of their units are free of upkeep charges and they have the option to sack as well as occupy settlements. Sacking means the settlement reverts to rebel control, most buildings are destroyed or damaged, the population of the settlement is reduced and the 'sacker' gains income.
You can assign starting settlement/s to these factions in descr_strat.txt if you wish, but would probably then want to reduce the size of their armies (which wouldn't then be reduced on taking additional settlements) to prevent them having too great an advantage.
If you want to remove the horde ability from these factions you must give them a settlement and family tree in descr_strat.txt otherwise they would be destroyed as soon as game is launched.
Horde Factions on Map at Start - With Settlements
Factions like the Franks have the ability to horde but start on vanilla map with ownership of a settlement. If their last settlement is captured by another faction, or (in case of human player), if they opt to leave their last settlement a horde army will be produced for them and they will act as above.
You can remove the horde ability from these factions if you wish, just follow procedure explained in section 1
Horde Factions Emerging via descr_events.txt
Modifying the Slavs
In vanilla game the Slavs emerge via an event controlled by bi/data/world/maps/campaign/barbarian_invasion/descr_events.txt the relevant part of the file being:
event emergent_faction slavs date 47 summer region Locus_Barbaricum
which makes them emerge on the summer of the 47th year from the start of the game, in region Locus_Barbaricum. The date can be changed to anything you like, the region can be changed to any region on the edge of the map. Please note, if you try and use region that does not border edge of map you will get message that they have emerged but they will not actually apppear.
Making Other Factions Emerge via descr_events.txt
Other factions that have the horde capability can be set to emerge in similar faction. Remove faction from starting map by altering descr_strat.txt; assign the factions settlements to another faction or slaves and reduce their entry in descr_strat.txt to
faction franks, balanced henry dead_until_resurrected denari 10000
or similar, and move faction from playable to non-playable list at top of file.
Add event for them in descr_events.txt eg:
event emergent_faction franks date 5 summer region Locus_Barbaricum (or any edge region)
Important: to make that work you must also add lines to BI/data/text/historic_events.txt similar to the ones for the Slavs but using the other factions name eg:
{THE_FRANKS_EMERGE_TITLE} The xxxx Emerge {THE_FRANKS_EMERGE_BODY} A new faction, blah, blah, etc.....
failing to add that will give a hard CTD when the event triggers!
Adding Hording to RTW Game
The RTW.exe does not support hording, however you can run the RTW game through the BI.exe using the -mod system, if you do that you can add the horde ability to any RTW faction see above.
The RTW UI screens do not have the required graphic for allowing a horde nation to leave its last settlement (displayed on left hand side of city screen - looks like little green hut), not having this results in crash when human player plays as horde nation and occupies city. The icon is on the BI version of data/ui/culture/interface/stratpage_03.tga, so that must be added to mod folder or substituted for the RTW version. To get the page to read correctly the BI version of strat3.rsd must also be imported.
Making RTW Faction Emerge via descr_events.txt
It is possible to get a horde capable RTW faction to emerge via descr_events.txt when using the BI.exe, however, to make that work you must internally re-name one of the RTW factions to 'Slavs', please see here for examples of the files that must be changed to do that. Then follow instructions for making other factions emerge above.
Emerge on Revolt
In vanilla BI the ostrogoths are spawned if a goths settlement revolts, the lines that control this are:
faction goths, spawns_on_revolt ostrogoths
in the goths section in descr_sm_factions.txt and:
faction ostrogoths, spawned_by goths
in the ostrogoths section. The ostrogoths also are a horde faction as explained above, and have the re_emergent line in descr_strat.txt:
faction ostrogoths, balanced henry dead_until_resurrected re_emergent denari 10000
That does the obvious and lets them be spawned more than once.
Removing the 'spawns_on_revolt', 'spawned_by_goths' and 're_emergent' removes any link between the factions and allows the ostrogoths to be used as a normal faction. Those elements can also be added to other factions to give them the same sort of relationship.
Shadowing
In the vanilla BI game the empire_east are shadowed by the empire_east_rebels and empire_west are shadowed by the empire_west_rebels. This relationship is not hard-coded it is set by the entries in descr_sm_factions.txt:
faction empire_east, shadowed_by empire_east_rebels
and
faction empire_east_rebels, shadowing empire_east
the empire_east_rebels are not set up as a horde faction, they do not emerge with independent armies but instead take over empire_east settlements and armies if they revolt. They are set as dead_until_resurrected and re_emergent in descr_strat.txt.
The shadowing function can be removed from these factions by removing the pieces of text in descr_sm_factions highlighted in bold. Similarly shadowing can be added to other factions by adding similar text. One faction can shadow up to three factions (NB: verification needed)
The use of shadowing is what activates the loyalty function in BI. As well as cities revolting due to unrest a leader with a low loyalty level can revolt to the shadowing faction. Removing shadowing from a roman faction removes the loyalty settings for their leaders, adding shadowing to other factions activates loyalty factor. If loyalty factor is activated for a new faction modders need to consider adding loyalty functions to the traits and ancillaries for the faction.
Romano British - (Hard Coded Emergence)
The Romano British are a special case amongst the hording and emergent factions. Although they are not a horde nation as defined in sm_factions, in the vanilla game they do have the ability to survive without settlements. Their emergence is triggered by some hard coded factors; their internal name 'romano_british', the hidden_resource 'britain', and the region name 'Britannia_Superior'. In the vanilla game if all the regions with the 'britain' hidden resource are captured from the original occupier the 'romano_british' will emerge in the region 'Britannia_Superior'.
To use the romano_british as a normal faction starting on the map follow guide here to add the faction to descr_strat. Remove or rename the 'britain' resource in export_descr_buildings.txt and descr_regions.txt. Failure to remove / re-name the resource will result in CTD if the emergence is triggered when the romano british are already on the map.
To make them emerge if different provinces are taken; change the regions which have the 'britain' resource in descr_regions.txt.
To make them emerge in a 'different' region; swap the internal name of the province you want them to emerge in with 'Britannia_Superior'. They will always emerge in 'Britannia_Superior' but location of that province can be moved and its description altered in the text translation file.