Skip to content

Cultures

Default cultures

  • aserai
  • battania
  • empire
  • knuzait
  • sturgia
  • vlandia

Check

if (hero.Culture.StringId == "sturgia") ..
  • CULTURE_alley.png
  • CULTURE_arena.png
  • CULTURE_keep.png
  • CULTURE_tavern.png

More info.

Notes

Village's culture doesn't affect settlement loyalty. Only castle and town culture does.

If you want a single village to have its own troops then you can change that village to a new culture. It won't affect the castle/town it's bound to.

Culture can exist without the female clan member (it was stated somewhere otherwise).

Culture XML file is very sensitive to the comments. Commenting out one name or one of basic_mercenary_troops will crash the game.

Arena requires at least one tier 4/5 troop tree for a new culture. (Iberian Wolf/fedeita)

XML

spcultures.xml

is_main_culture - will this culture show in the new character creation / culture selection menu?

color="0xffC0C0C0"
color2="0xffFFC5C5"

Colors define the armor colors for this culture's units in the Encyclopedia:

These lines in define NPCs hirable in the Tavern, not the actual Caravan Guards that travel the world map.

caravan_master="NPCCharacter.caravan_master_crusader"
armed_trader="NPCCharacter.armed_trader_crusader"
caravan_guard="NPCCharacter.caravan_guard_crusader"
veteran_caravan_guard="NPCCharacter.veteran_caravan_guard_crusader"

Traveling Caravan Guard NPCs on the world map are generated from the same culture troop as Town's notable it belongs to, and must satisfy the following conditions:

Occupation.CaravanGuard && character.IsInfantry && character.Level == 26 && character.Culture == mobileParty.Party.Owner.Culture

These lines determine the equipment rosters for lords that turn 18:

default_battle_equipment_roster="EquipmentRoster.___"
default_civilian_equipment_roster="EquipmentRoster.___"

encounter_background_mesh - menu pic for encounter with the troops of this culture

<cultural_feats>

Feat Description
empire_decreased_garrison_wage 20% less garrison troop wage
empire_army_influence Being in army brings 25% more influence
empire_slower_hearth_production Village hearths increase 20% less
aserai_cheaper_caravans Caravans are 30% cheaper to build. 10% less trade penalty
aserai_desert_speed No speed penalty on desert
aserai_increased_wages Daily wages of troops in the party are increased by 5%
sturgian_cheaper_recruits_infantry Recruiting and upgrading infantry troops are 25% cheaper
sturgian_decreased_cohesion_rate Armies lose 20% less daily cohesion
sturgian_increased_decision_penalty 20% more relationship penalty from kingdom decisions
vlandian_renown_mercenary_income 5% more renown from the battles, 15% more income while serving as a mercenary
vlandian_villages_production_bonus 10% production bonus to villages that are bound to castles
vlandian_increased_army_influence_cost Recruiting lords to armies costs 20% more influence
battanian_forest_speed 50% less speed penalty and 15% sight range bonus in forests
battanian_militia_production Towns owned by Battanian rulers have +1 militia production
battanian_slower_construction 10% slower build rate for town projects in settlements
khuzait_cheaper_recruits_mounted Recruiting and upgrading mounted troops are 10% cheaper
khuzait_increased_animal_production 25% production bonus to horse, mule, cow and sheep in villages owned by Khuzait rulers
khuzait_decreased_town_tax 20% less tax income from towns
To change the description of the native feats, use Harmony patch (remove 'Battanian' example):
[HarmonyPatch(typeof(DefaultCulturalFeats), "InitializeAll")]
public static class InitializeAllPatch
{
    static void Postfix(DefaultCulturalFeats __instance)
    {
        // Use reflection to access the private field _battaniaMilitiaFeat
        FieldInfo battaniaMilitiaFeatField = typeof(DefaultCulturalFeats).GetField("_battaniaMilitiaFeat", BindingFlags.NonPublic | BindingFlags.Instance);

        if (battaniaMilitiaFeatField != null)
        {
            // Get the current value of _battaniaMilitiaFeat
            var battaniaMilitiaFeat = battaniaMilitiaFeatField.GetValue(__instance) as FeatObject;

            if (battaniaMilitiaFeat != null)
            {
                // Re-initialize _battaniaMilitiaFeat with the new string
                battaniaMilitiaFeat.Initialize("{=!}battanian_militia_production", "{=lt_1qUFMK28}Towns owned by this culture's rulers have +1 militia production.", 1f, true, FeatObject.AdditionType.Add);
            }
        }
    }
}

<possible_clan_banner_icon_ids>

These are the banner icons that the game will use when creating a banner for new clans or rebels.

module_strings.xml

Related strings:

  <string id="str_player_father_name.baltic" text="{=balticfather}Vaitas" />
  <string id="str_player_mother_name.baltic" text="{=balticmother}Laima" />
  <string id="str_neutral_term_for_culture.baltic" text="balts" />
  <string id="str_culture_description.baltic" text="{=balticdescription}The Balts, who live along the southeastern Baltic Sea, have their own languages, unique cultural practices, and pagan beliefs. They organize themselves into tribes, each led by a chieftain, maintaining independence while sharing a common cultural and religious bond." />
  <string id="str_faction_ruler_name_with_title.baltic" text="{=balticrulertitle}{RULER.NAME} {?RULER.GENDER}Queen{?}King{\?}" />
  <string id="str_faction_noble_name_with_title.baltic" text="{=balticnobletitle}{RULER.NAME} {?RULER.GENDER}Rikis{?}Rikis{\?}" />
  <string id="str_faction_official.baltic" text="{=balticofficial}a chieftain" />
  <string id="str_faction_official.baltic_f" text="{=balticofficialf}a lady" />
  <string id="str_faction_ruler.baltic" text="{=balticruler}King" />
  <string id="str_faction_ruler.baltic_f" text="{=balticrulerf}Queen" />
  <string id="str_faction_ruler_term_in_speech.baltic" text="{=balticrulerterm}{RULER.NAME} {?RULER.GENDER}Queen{?}King{\?}" />
  <string id="str_adjective_for_faction.baltic" text="{=balticfactionadjective}Baltic" />
  <string id="str_short_term_for_faction.baltic" text="{=balticfactionshortterm}Baltic" />
  <string id="str_faction_formal_name_for_culture.baltic" text="{=balticfactionformalname}The Baltic Tribes" />
  <string id="str_faction_informal_name_for_culture.baltic" text="{=balticfactioninformalname}the Baltic Tribes" />
  <string id="str_adjective_for_culture.baltic" text="{=balticcultureadjective}Baltic" />
  <string id="str_neutral_term_for_culture.baltic" text="{=balticcultureneutralterm}Baltic" />
  <string id="str_culture_rich_name.baltic" text="{=balticmembers}Baltic" />