Settlements
Every game number of towns, castles and villages that a skill, perk, policy, building or cultural feat changes, at full precision for game v1.5.7: prosperity, loyalty, security, militia, food, tax and tariffs, construction, buildings, workshops, village production and hearths, volunteers, garrison food, governor relation rolls and the bribe to enter a keep.
NavalDLC extends (calls the base model first, then adds its own terms) eight of these numbers: security change, militia change, veteran militia chance, workshop production speed, construction power, village hearth change, tariff income and village production. It delegates (base model only) the prosperity change, the boost amount, town project income and village income.
Reading the tables
Each game number has a header table (consumer method, base, combine rule, clamp) and a source table:
- Source: the term, building, policy, feat, skill effect or perk half. Perks are named
Perk (Skill, half). - Value: the perk half's bonus (for a skill effect, its bonus per skill point).
bonusin a scaling expression is this value. - Stage:
addadds to the sum,factoradds to the factor sum,multiplymultiplies the running value,capsets an upper limit,overridereplaces the value. - Scaling: the amount, as an expression of the variables named in the notes.
- Conditions: what must hold for the term to apply.
role=Governormeans the half is read from the settlement's governor. - Verdict:
works= does what the tooltip says, or more (broader effects are noted);differs= narrower, different or extra conditions/values than the tooltip;unused= never read by the game;ui_only= only shown in the interface.
Combine rules
explained_number numbers are built by the game's standard modifier sum:
result = clamp( (base + Σ add) · (1 + Σ factor), min, max )
Σ add: everyaddterm.Σ factor: everyfactorterm, summed and applied once.min,max: the at-least and at-most limits. The clamp is lazy: setting a limit only stores it, and the result is clamped when it is read. Terms added after a limit is set are still clamped.
sequential numbers are stored values (prosperity) or integer code paths (village income, forced volunteers) where each step applies to the running value in code order. custom numbers have their own formula, given in the notes.
Governor rules
Most perks here are governor halves. Two helpers read them, and they differ:
AddPerkBonusForTown/GetPerkValueForTown: the town's governor must hold the perk and be in the settlement; such sites stayworks. This is the default unless a note says "no presence check". Since v1.5.7 the caller ofAddPerkBonusForTownnames the half it applies.- Direct governor read: no presence check. Sites that read the governor this way: Price of Loyalty (tax), Trickle Down (prosperity), Foreman (prosperity), Clockwork, Relocation and Spring of Gold (boost amount), Forest Kin and Logistician (village income), One of the Family (recruit slots), the garrison food estimate perks, and the Charm relation rolls.
Villages have no governor. A village term reads one of two towns:
Village.Bound: the town or castle the village belongs to. Used by hearth growth (Energetic, Bush Doctor, Aid Corps), the bound-settlement buildings, and income.- Trade-bound town: the town the village trades with. Used by village production perks (Steady, Perfect Health, Breeder, Shepherd, Granary Accountant, Tradeyard Foreman, Blessings of the Sea, Port Authority), Clean Infrastructure raid recovery, and the veteran chance of a village. A castle's governor never applies these to the castle's villages; the governor of the town they trade with does. Each such production and recovery site is
differs: the game checks a different governor than the tooltip names.
Prosperity
Prosperity (stored)
Town.Prosperity. Every writer assigns Prosperity + delta; set_Prosperity raises negative values to 0, so additions apply in event order. Traced writers: the daily tick, Foreman on a building level change, and The Helmsman's Shield on a fishing party drop-off. Raid, siege and quest writers are not enumerated.
| Consumer | Town::set_Prosperity (Native) |
| Base | prosperity |
| Combine rule | sequential |
| Clamp | min 0 |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Daily prosperity change | term | add | settlement_prosperity_change |
works | ||
| Foreman (Engineering, secondary) | perk | 100 | add | bonus |
role=Governor |
works |
| The Helmsman's Shield (Shipmaster, secondary) | perk | 1 | add | bonus |
party=fishing; role=Governor |
works |
IL: TaleWorlds.CampaignSystem.Settlements.Town: set_Prosperity, DailyTick; TaleWorlds.CampaignSystem.CampaignBehaviors.BuildingsCampaignBehavior: OnBuildingLevelChanged; NavalDLC.CampaignBehaviors.FishingPartyCampaignBehavior: OnDropOff.
- Foreman: fires on any building level increase (level change > 0); no governor presence check.
- The Helmsman's Shield: governor of the village's
Boundtown; +1 per fishing-party drop-off.
Daily prosperity change
CalculateProsperityChange starts a standard modifier sum with base 0 and calls CalculateProsperityChangeInternal. No clamp. food_change is the town's daily food change (below). NavalDLC delegates.
| Consumer | DefaultSettlementProsperityModel::CalculateProsperityChangeInternal (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Food shortage | term | add | ceil(min(0, food_change)) * 0.5 |
settlement=starving |
works | |
| High loyalty prosperity bonus | term | add | 0.5 |
settlement=food_change_positive; settlement=loyalty_above_75 |
works | |
| Housing costs | term | add | max(0, min(6, 6 - floor(prosperity / 250))) - max(0, min(6, ceil((prosperity - 6000) / 3000))) |
settlement=town |
works | |
| Active issue effects | term | add | issue_effects |
works | ||
| Low loyalty prosperity penalty | term | add | -1 |
settlement=loyalty_at_most_25 |
works | |
| Prosperity goods sold in the market | term | add | 0.1 * sold_prosperity_goods |
settlement=town |
works | |
| Surplus food | term | add | max(0, floor(food_stocks + food_change) - food_stocks_upper_limit) * 0.1 |
works | ||
| Housing (daily project) | building | add | building_effect |
settlement=daily_project_active; settlement=town |
works | |
| Crown Duty | policy | add | -1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Imperial Towns | policy | add | ruling_clan_owner |
faction=kingdom_policy_active; settlement=town |
works | |
| Road Tolls | policy | add | -0.2 |
faction=kingdom_policy_active; settlement=town |
works | |
| War Tax | policy | add | -1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Apprenticeship (Engineering, secondary) | perk | 0.01 | factor | bonus * projects |
role=Governor |
works |
| Clean Infrastructure (Medicine, primary) | perk | 1 | add | bonus * civilian_buildings |
role=Governor |
works |
| Helping Hands (Medicine, secondary) | perk | -0.5 | factor | bonus |
role=Governor |
works |
| Pristine Streets (Medicine, primary) | perk | 1 | add | bonus |
role=Governor |
works |
| Trickle Down (Trade, secondary) | perk | 2 | add | bonus |
role=Governor; settlement=town_or_castle |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementProsperityModel: CalculateProsperityChangeInternal, GetSettlementProsperityChangeDueToIssues.
- Housing costs (towns only): prosperity < 250: +6, < 500: +5, < 750: +4, < 1000: +3, < 1250: +2, < 1500: +1; > 21000: -6, > 18000: -5, > 15000: -4, > 12000: -3, > 9000: -2, > 6000: -1.
- Food shortage: while the town is starving, a local number with base truncated
food_change(0 when the change is not negative) gets Helping Hands' factor, and half of it is added. The truncation is toward zero. - Surplus food:
trunc(food_stocks + food_change) - food_stocks_upper_limit, ×0.1, when positive. - High loyalty: loyalty > 75 and
food_change > 0→ +0.5. Otherwise loyalty ≤ 25 → -1. - Policies (Road Tolls, Imperial Towns, Crown Duty, War Tax) run only for towns of a kingdom. War Tax applies whether or not the kingdom is at war, as its text says.
- Apprenticeship:
projects= buildings that are not daily projects with level > 0. The factor is added only when the sum is > 0 and the running prosperity change is > 0: it scales gains only. - Clean Infrastructure (primary): +1 per civilian building (level > 0, not military, not a daily project).
- Trickle Down: town or castle whose current building is not the default daily project; no governor presence check.
- Housing (daily project) is the only building with a Prosperity effect.
Loyalty
Daily loyalty change
Standard modifier sum with base 0, every term an add except the governor's Honor trait factor, no clamp in the model. Code order: food stocks, owner culture, policies, projects, issues, security, notable relations, governor perks, drift, then the Honor factor. Town::DailyTick adds the result to the town's loyalty; the stored value is clamped to 0-100. Model constants: security threshold 60, maximum loyalty 100, high/low security effect 1 / -2.5, owner different culture -3, drift medium 50. No sandbox_campaign override.
| Consumer | DefaultSettlementLoyaltyModel::CalculateLoyaltyChangeInternal (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Active issue effects | term | add | issue_effects |
works | ||
| Loyalty drift | term | add | -0.1 * (loyalty - 50) |
works | ||
| Security effect on loyalty | term | add | min(security, 60) / 24 - 2.5 + max(security - 60, 0) / 40 |
works | ||
| Notables supporting the owner clan or an enemy clan | term | add | 0.5 * owner_supporters - 0.5 * enemy_supporters |
works | ||
| Owner clan culture differs from settlement culture | term | add | -3 |
culture=owner_clan_differs_from_settlement |
works | |
| Starvation | term | add | -1 - long_starvation |
settlement=starving |
works | |
| Courthouse | building | add | building_effect |
settlement=town |
works | |
| Festival and Games (daily project) | building | add | building_effect |
settlement=daily_project_active; settlement=town |
works | |
| Citizenship | policy | add | owner_culture_match - 0.5 |
faction=kingdom_policy_active |
works | |
| Debasement of the Currency | policy | add | -1 |
faction=kingdom_policy_active |
works | |
| Forgiveness of Debts | policy | add | 2 |
faction=kingdom_policy_active |
works | |
| Grazing Rights | policy | add | 0.5 |
faction=kingdom_policy_active |
works | |
| Hunting Rights | policy | add | -0.2 |
faction=kingdom_policy_active |
works | |
| Imperial Towns | policy | add | 1.3 * ruling_clan_owner - 0.3 |
faction=kingdom_policy_active; settlement=town |
works | |
| Trial by Jury | policy | add | 0.5 |
faction=kingdom_policy_active |
works | |
| Tribunes of the People | policy | add | 1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Durable (Athletics, secondary) | perk | 1 | add | bonus |
role=Governor |
works |
| Discipline (Bow, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=fortification |
works |
| Parade (Charm, primary) | perk | 5 | add | bonus * holders |
role=Personal; settlement=own_clan_town |
differs |
| Heroic Leader (Leadership, primary) | perk | 1 | add | bonus |
role=Governor |
works |
| Physician of People (Medicine, primary) | perk | 1 | add | bonus |
role=Governor |
works |
| Well Strapped (Riding, secondary) | perk | 0.5 | add | bonus |
role=Governor |
works |
| Honor trait: governor loyalty gain | term | factor | trait_effect |
hero=governor_honor_trait; role=Governor; settlement=loyalty_change_positive |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementLoyaltyModel: CalculateLoyaltyChangeInternal, GetSettlementLoyaltyChangeDueToIssues, GetSettlementLoyaltyChangeDueToLoyaltyDrift, GetSettlementLoyaltyChangeDueToSecurity, GetSettlementLoyaltyChangeDueToNotableRelations, GetSettlementLoyaltyChangeDueToOwnerCulture, GetSettlementLoyaltyChangeDueToFoodStocks, GetSettlementLoyaltyChangeDueToProjects, GetSettlementLoyaltyChangeDueToPolicies, GetSettlementLoyaltyChangeDueToGovernorPerks.
- Starvation: -1, one more -1 after 14 days starving.
- Security effect: security ≤ 60 maps 0..60 to -2.5..0; above 60 maps 60..100 to 0..1.
- Honor trait:
trait_effectis +0.1 at Honor +1 and +0.2 at +2 for a governor who is in the town, applied only when the change is positive. The governor culture term (+1 same culture, -1 different) no longer exists. - Notable supporters: +0.5 per notable supporting the owner clan, -0.5 per notable supporting a clan at war with the settlement's faction.
- Courthouse: 0.3 / 0.6 / 1.0 at levels 1-3. Festival and Games: +3, only while it is the current daily project.
- Hunting Rights: the tooltip says town loyalty; the code applies to every fortification, broader than the tooltip.
- Imperial Towns: +1 in a town owned by the ruling clan, -0.3 otherwise. Citizenship: +0.5 when the owner clan's culture matches the settlement's, -0.5 otherwise.
- Parade (
differs): only parties in the town whose clan is the town's owner clan, and party-less heroes of the owner clan in the town, count, so it never applies in another clan's town; it stacks per holder (every hero in the main party with the perk adds 5).
Security
Daily security change
The base model builds a standard modifier sum with base 0 and adds, in order: hideouts, looted villages, siege, prosperity, garrison, policies, governor (empty body), projects (empty body), issues, perks, drift, daily security buildings, patrol parties. No factor on the main number, no clamp; the stored security is clamped to 0-100. NavalDLC extends it: after the base result, Writs of Reprisal adds -1 per lord party in the settlement.
| Consumer | NavalDLCSettlementSecurityModel::CalculateSecurityChange (NavalDLC) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Garrison strength | term | add | garrison_security |
party=garrison |
works | |
| Active issue effects | term | add | issue_effects |
works | ||
| Looted bound village | term | add | -2 |
settlement=bound_village_looted |
works | |
| Infested hideout nearby | term | add | -2 |
settlement=infested_hideout_nearby |
works | |
| Prosperity effect on security | term | add | max(-5, -0.0005 * prosperity) |
works | ||
| Security drift | term | add | -(security - 50) / 15 |
works | ||
| Under siege | term | add | -3 |
settlement=under_siege |
works | |
| Guard house (town) | building | add | 0.5 * building_level + 0.5 |
party=patrol; settlement=town |
works | |
| Bailiffs | policy | add | 1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Magistrates | policy | add | 1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Writs of Reprisal | policy | add | -lord_parties |
faction=kingdom_policy_active |
works | |
| Serfdom | policy | add | 1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Trial by Jury | policy | add | -0.2 |
faction=kingdom_policy_active |
works | |
| Mounted Archery (Bow, secondary) | perk | 0.2 | add | garrison_security * ranged_strength_ratio * bonus |
party=garrison; role=Governor |
works |
| Ranger's Swiftness (Bow, secondary) | perk | 0.2 | add | garrison_security * ranged_strength_ratio * bonus |
party=garrison; role=Governor |
works |
| Renowned Marksmen (Crossbow, secondary) | perk | 0.3 | add | garrison_security * ranged_strength / total_strength * bonus |
party=garrison; role=Governor |
works |
| Authority (Leadership, primary) | perk | 0.2 | add | bonus * garrison_security |
role=Governor; settlement=fortification |
works |
| Presence (Leadership, primary) | perk | 5 | add | bonus * parties |
map_state=in_settlement; role=PartyLeader |
works |
| Stand United (One Handed, secondary) | perk | 0.3 | factor | bonus |
party=garrison; role=Governor |
works |
| To Be Blunt (One Handed, secondary) | perk | 0.5 | add | bonus |
role=Governor |
works |
| Skewer (Polearm, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=town |
works |
| Relief Force (Riding, secondary) | perk | 0.2 | add | garrison_security * mounted_strength_share * bonus |
role=Governor |
works |
| Know-How (Roguery, secondary) | perk | 1 | add | bonus |
role=Governor |
works |
| Gens d'armes (Tactics, secondary) | perk | 1 | add | bonus |
role=Governor |
works |
| Focus (Throwing, secondary) | perk | 1 | add | bonus |
role=Governor |
works |
IL: NavalDLC.GameComponents.NavalDLCSettlementSecurityModel: CalculateSecurityChange; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementSecurityModel: CalculateGarrisonEffectsOnSecurity, CalculateIssueEffectsOnSecurity, CalculateRaidedVillageEffectsOnSecurity, CalculateInfestedHideoutEffectsOnSecurity, CalculateProsperityEffectOnSecurity, CalculateSecurityDrift, CalculateUnderSiegeEffectsOnSecurity, CalculateSettlementPatrolPartiesBonuses, CalculatePolicyEffectsOnSecurity, CalculatePerkEffectsOnSecurity.
garrison_security = total_strength · coefficient.total_strength= Σ over the garrison roster of(troop count - wounded count) · troop power; the coefficient is a local number with base 0.0075 (0.01 in v1.4.8) that Stand United multiplies (factor +0.3 → 0.00975). Stand United therefore scales the garrison term only, not the whole security change. All garrison terms need a garrison with healthy troops.- Authority adds
bonus · garrison_security. Mounted Archery and Ranger's Swiftness (stacking) and Renowned Marksmen addgarrison_security · ranged share · bonus; ranged troops include crossbow troops. Relief Force uses the mounted share. - Presence: +5 per party in the town whose clan is not at war with the town's faction and whose leader has the perk, not only while waiting, broader than the tooltip.
- Looted bound village and nearby infested hideout: -2 once each, not per village or hideout. A hideout counts within
EstimatedAverageBanditPartySpeed · 24 · 0.5map distance. - Guard House (town): needs a patrol party; reads the building level directly, not a building effect.
- Inert: the daily security building effect is read, but no building carries it.
Worked example. A town at security 40 and prosperity 6000 with a garrison worth 3 security, Serfdom, and a governor in the town holding Authority, To Be Blunt and Skewer:
A town with security 40 and prosperity 6000, a garrison worth 3 security, Serfdom, and a governor in the town with Authority, To Be Blunt and Skewer.
| Step | Source | Stage | Change | Running value |
|---|---|---|---|---|
| Base | Daily security change of a town or castle | base | 0.0000 | |
| 1 | Authority | add | +0.6000 | 0.6000 |
| 2 | To Be Blunt | add | +0.5000 | 1.1000 |
| 3 | Skewer | add | +1.0000 | 2.1000 |
| 4 | Serfdom | add | +1.0000 | 3.1000 |
| 5 | Garrison strength | add | +3.0000 | 6.1000 |
| 6 | Prosperity effect on security | add | -3.0000 | 3.1000 |
| 7 | Security drift | add | +0.6667 | 3.7667 |
| Result | Daily security change of a town or castle | 3.7667 |
With these inputs, daily security change of a town or castle is 3.7667.
The prosperity term is max(-5, -0.0005 · 6000) = -3.0000 and the drift is -(40 - 50) / 15 = +0.6667; security rises by 3.7667 a day.
Militia
Daily militia change
The base model returns 0 for a village whose state is not Normal; militia_base adds 2 for fortifications and 0.5 for villages. No factor and no clamp in the base model. Policies, perks, issues and buildings apply only to towns and castles. NavalDLC extends it: after the base result, Accuracy Training (port towns, or villages whose bound town has a port) and factor +0.25 for Bolster the Militia. Town::DailyTick adds the result to Settlement.Militia.
| Consumer | NavalDLCSettlementMilitiaModel::CalculateMilitiaChange (NavalDLC) |
| Base | militia_base |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Active issue effects | term | add | issue_effects |
settlement=fortification |
works | |
| Militia from village hearths | term | add | hearth / 400 |
settlement=village |
works | |
| Militia goods sold in the market | term | add | 0.2 * sold_militia_goods |
settlement=town |
works | |
| Militia from prosperity | term | add | prosperity / 1000 |
settlement=fortification |
works | |
| Militia boost in a rebellious settlement | term | add | prosperity / 1000 * 2 * (1 - min(loyalty, rebellious_threshold) / rebellious_threshold) |
settlement=fortification; settlement=rebellious |
works | |
| Retired militia | term | add | -0.025 * militia |
works | ||
| Raise Troops (castle daily project) | building | add | building_effect |
settlement=castle; settlement=daily_project_active |
works | |
| Guard house (castle) | building | add | building_effect |
settlement=castle |
works | |
| Train Militia (daily project) | building | add | building_effect |
settlement=daily_project_active; settlement=town |
works | |
| Bolster the Militia | policy | factor | 0.25 |
faction=kingdom_policy_active |
works | |
| Cantons | policy | add | 1 |
faction=kingdom_policy_active; settlement=town |
differs | |
| Citizenship | policy | add | 1 |
faction=kingdom_policy_active; settlement=fortification |
differs | |
| Serfdom | policy | add | -1 |
faction=kingdom_policy_active; settlement=town |
works | |
| Battanian militia feat | feat | add | 0.2 |
culture=owner_clan_battania; settlement=town |
differs | |
| Accuracy Training (Boatswain, secondary) | perk | 2 | add | bonus |
role=Governor; settlement=port |
works |
| Merry Men (Bow, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=fortification |
works |
| Long Shots (Crossbow, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=fortification |
works |
| Swift Strike (One Handed, secondary) | perk | 1 | add | bonus |
role=Governor |
works |
| Keep at Bay (Polearm, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=town |
works |
| Arms Dealer (Roguery, secondary) | perk | 2 | add | bonus |
role=Governor; settlement=under_siege |
differs |
| Seven Veterans (Steward, secondary) | perk | 0.1 | add | bonus |
role=Governor; settlement=fortification |
differs |
| Slinging Competitions (Throwing, secondary) | perk | 1 | add | bonus |
role=Governor; settlement=fortification |
works |
IL: NavalDLC.GameComponents.NavalDLCSettlementMilitiaModel: CalculateMilitiaChange; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementMilitiaModel: GetSettlementMilitiaChangeDueToIssues, CalculateMilitiaChangeInternal, GetSettlementMilitiaChangeDueToPolicies, GetSettlementMilitiaChangeDueToPerks.
- Retired militia:
-0.025 · militiaevery day. - Rebellious boost: in a rebellious town,
prosperity / 1000× a factor that maps loyalty 0..rebellious_thresholdto 200%..0%.rebellious_thresholdis 35, or 60 with the high-rebellion campaign option (25 in v1.4.8). - Bolster the Militia: no port check, any settlement kind. A factor on a negative daily change makes it more negative.
- Accuracy Training on a village: the bound town's governor, who must be in that town.
- Cantons (
differs): towns only; the policy text says daily militia production with no restriction. - Citizenship (
differs): the policy method runs only for towns and castles, so villages get nothing; the text says settlement militia with no restriction. - Battanian militia feat (
differs): adds +0.2 daily militia in towns; the feat text mentions only the veteran chance. - Arms Dealer (
differs): a flat +2 militia per day, not +2%. - Seven Veterans (
differs): its secondary also adds +0.1 to daily militia, which the tooltip does not describe. - Inert: the militia reduction building effect is read for rebellious castles, but no building carries it.
Veteran militia chance
A 0-1 probability. Settlement::AddTroopToMilitiaParty reads the result once and, per spawned troop, spawns the veteran troop when a random roll is below chance; values ≥ 1 make every spawned militia a veteran. The base model starts from a default standard modifier sum (base 0, no limits). The governor read is the fortification's governor, or for a village the governor of the town it is bound to for trade. NavalDLC extends it with Naval Fighting Training for port towns and for villages whose bound settlement has a port.
| Consumer | NavalDLCSettlementMilitiaModel::CalculateVeteranMilitiaSpawnChance (NavalDLC) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Training Fields (castle) | building | add | building_effect |
settlement=castle |
works | |
| Training Fields (town) | building | add | building_effect |
settlement=town |
works | |
| Land Grants for Veterans | policy | factor | 0.1 |
faction=kingdom_policy_active |
works | |
| Battanian militia feat | feat | add | 0.2 |
culture=owner_clan_battania |
works | |
| Citizen Militia (Leadership, primary) | perk | 0.2 | add | bonus |
role=Governor |
differs |
| Naval Fighting Training (Mariner, secondary) | perk | 0.1 | factor | bonus |
role=Governor; settlement=port |
works |
| Drills (Polearm, primary) | perk | 1 | add | bonus |
role=Governor |
differs |
| Seven Veterans (Steward, secondary) | perk | 0.1 | add | bonus |
role=Governor |
differs |
IL: NavalDLC.GameComponents.NavalDLCSettlementMilitiaModel: CalculateVeteranMilitiaSpawnChance; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementMilitiaModel: CalculateVeteranMilitiaSpawnChance.
- Citizen Militia (
differs): +0.2 on a 0-1 scale, i.e. +20 percentage points; since v1.5.7 the half is an Add and the tooltip shows +0.2%. - Drills (
differs): +1.0 on a 0-1 scale guarantees every militia is a veteran; the tooltip says +1%. - Seven Veterans (
differs): +0.1 on a 0-1 scale, i.e. +10 percentage points; the tooltip says +0.1%. - Citizen Militia, Drills and Seven Veterans read the governor through
AddPerkBonusForTown: the governor must be in the town. - Land Grants for Veterans: factor 0.1, +10% of the summed chance, not +0.1 absolute.
- Battanian militia feat: +0.2 in any settlement whose owner clan has the feat, not only towns, broader than the feat text.
- Naval Fighting Training: castles are not covered (town-only test).
Worked example. A town with Training Fields at level 2 and a governor holding Citizen Militia and Drills, in a kingdom with Land Grants for Veterans:
A town with Training Fields at level 2, a governor with Citizen Militia and Drills, in a kingdom with Land Grants for Veterans. The chance is a 0-1 probability; anything at or above 1 makes every spawned militia a veteran.
| Step | Source | Stage | Change | Running value |
|---|---|---|---|---|
| Base | Chance that a spawned militia troop is a veteran | base | 0.0000 | |
| 1 | Training Fields (town) | add | +0.1500 | 0.1500 |
| 2 | Citizen Militia | add | +0.2000 | 0.3500 |
| 3 | Drills | add | +1.0000 | 1.3500 |
| 4 | Land Grants for Veterans | factor +10% | +0.1350 | 1.4850 |
| Result | Chance that a spawned militia troop is a veteran | 1.4850 |
With these inputs, chance that a spawned militia troop is a veteran is 1.4850.
The chance is 1.4850, above 1, so every spawned militia is a veteran. Drills alone gets there.
Food
Daily food change
An income number (base 0, add only) and the consumption number are built separately, then combined in a new standard modifier sum with base 0: the income is added and the consumption subtracted, then issue effects. No clamp. Town::DailyTick adds the change to the food stocks and clamps the stocks to 0..the food stock upper limit. No sandbox_campaign override.
| Consumer | DefaultSettlementFoodModel::CalculateTownFoodChangeInternal (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Bound villages food | term | add | village_food |
settlement=not_under_siege |
works | |
| Food consumption | term | add | -town_food_consumption |
works | ||
| Food stores goods sold in the market | term | add | sold_food_goods |
works | ||
| Active issue effects | term | add | issue_effects |
works | ||
| Lands around the settlement | term | add | 10 + 5 * is_town |
settlement=not_under_siege |
works | |
| Farmlands (castle) | building | add | building_effect |
settlement=castle; settlement=not_under_siege |
works | |
| Hunting Rights | policy | add | 2 |
faction=kingdom_policy_active |
works | |
| Dirty Fighting (Roguery, secondary) | perk | 2 | add | bonus |
role=Governor; settlement=under_siege |
differs |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementFoodModel: CalculateTownFoodChangeInternal, GetSettlementFoodChangeDueToIssues.
- Lands around the settlement: +15 town, +10 castle, when not under siege.
- Bound villages:
(hearth level + 1) · 6per bound village in the Normal state. - Farmlands (castle): 6 / 12 / 18; no town building carries the food production effect.
- Food stores sold in the market: only when market stocks are included.
- Hunting Rights: +2, also under siege.
- Dirty Fighting (
differs): adds +2 to the besieged town's daily food change; no food items are smuggled. The siege branch replaces the land and bound-village terms.
Food consumption
| Consumer | DefaultSettlementFoodModel::CalculateTownFoodChangeInternal (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Garrison food consumption | term | add | town_garrison_food_consumption |
works | ||
| Population food consumption | term | add | town_population_food_consumption |
works | ||
| Waterworks | building | factor | building_effect |
settlement=town |
works | |
| Triage Tent (Medicine, secondary) | perk | -0.05 | factor | bonus |
role=Governor; settlement=under_siege |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementFoodModel: CalculateTownFoodChangeInternal.
Waterworks: -0.05 / -0.1 / -0.15. Triage Tent applies to the whole consumption number, population and garrison.
Population food
| Consumer | DefaultSettlementFoodModel::CalculateTownFoodChangeInternal (Native) |
| Base | prosperity / 40 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Master of Warcraft (Steward, secondary) | perk | -0.05 | factor | bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementFoodModel: CalculateTownFoodChangeInternal.
Only Master of Warcraft changes it.
Garrison food
| Consumer | DefaultSettlementFoodModel::CalculateTownFoodChangeInternal (Native) |
| Base | garrison_members / 20 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Gourmet (Steward, secondary) | perk | -0.1 | factor | bonus |
role=Governor; settlement=under_siege |
works |
| Generosity trait: party food consumption | term | factor | trait_effect |
hero=governor_generosity_trait; role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementFoodModel: CalculateTownFoodChangeInternal.
garrison_members is the garrison party's total member count (0 without a garrison). Generosity trait: trait_effect is +0.1 at Generosity +1 and +2 for a governor who is in the town.
Tax and tariffs
Daily tax
CalculateTownTax starts a standard modifier sum with base 0. CalculateDailyTax adds base_tax = Prosperity · 0.35 · (1 - 0.05 with Council of the Commons); then policy gold cuts (add, proportional to base_tax), perks, the Khuzait feat, issues, security, loyalty and buildings; clamp to 0 at the lower end, no upper limit. AddSettlementIncome adds the truncated result per fief to clan income. No override.
| Consumer | DefaultSettlementTaxModel::CalculateDailyTaxInternal (Native) |
| Base | prosperity * 0.35 |
| Combine rule | explained_number |
| Clamp | min 0 |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Active issue effects | term | add | issue_effects |
works | ||
| High loyalty tax bonus | term | factor | (loyalty - 75) / 25 * 0.2 |
settlement=loyalty_at_least_75 |
works | |
| High security tax bonus | term | factor | (security - 75) / 25 * 0.05 |
settlement=security_at_least_75 |
works | |
| Low loyalty tax corruption | term | factor | (loyalty - 25) / 50 - 0.5 |
settlement=loyalty_25_to_50 |
works | |
| Low security tax corruption | term | factor | -(50 - security) * 0.002 |
settlement=security_below_50 |
works | |
| Very low loyalty tax loss | term | factor | -1 |
settlement=loyalty_below_25 |
works | |
| Craftsman's Quarters (castle) | building | add | building_effect |
settlement=castle |
works | |
| Tax Office | building | factor | building_effect |
settlement=town |
works | |
| Bailiffs | policy | add | -0.05 * base_tax |
faction=kingdom_policy_active; settlement=town |
works | |
| Cantons | policy | add | -0.1 * base_tax |
faction=kingdom_policy_active |
works | |
| Council of the Commons | policy | add | -0.05 * prosperity * 0.35 |
faction=kingdom_policy_active |
works | |
| Magistrates | policy | add | -0.05 * base_tax |
faction=kingdom_policy_active; settlement=town |
works | |
| Tribunes of the People | policy | add | -0.05 * base_tax |
faction=kingdom_policy_active; settlement=town |
differs | |
| Khuzait decreased town tax feat | feat | factor | -0.2 |
culture=owner_clan_khuzait; settlement=town |
works | |
| Quick Draw (Bow, secondary) | perk | 0.05 | factor | bonus |
role=Governor; settlement=fortification |
works |
| Desert Born (Scouting, secondary) | perk | 0.025 | factor | bonus |
role=Governor; settlement=governed |
works |
| Logistician (Steward, secondary) | perk | 0.1 | factor | bonus |
role=Governor |
works |
| Price of Loyalty (Steward, secondary) | perk | 0.005 | factor | bonus * (skill - 200) |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementTaxModel: CalculateDailyTaxInternal, GetSettlementTaxChangeDueToIssues, CalculateSettlementTaxDueToLoyalty, CalculateSettlementTaxDueToBuildings, CalculatePolicyGoldCut, CalculateDailyTax; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementLoyaltyModel: CalculateGoldGainDueToHighLoyalty, CalculateGoldCutDueToLowLoyalty; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementSecurityModel: CalculateGoldGainDueToHighSecurity, CalculateGoldCutDueToLowSecurity.
- High loyalty (≥ 75): factor maps loyalty 75..100 to 0..0.2. Low loyalty (25-50): maps 25..50 to -0.5..0. Below 25: factor -1; positive factors still apply on top, so the tax is not forced to 0.
- High security (≥ 75): maps 75..100 to 0..0.05. Low security (< 50): -0.1 at security 0, rising to 0 at 50.
- Price of Loyalty:
bonus · (Steward - 200), only when the governor's Steward is above 200 (the perk itself needs 275); no presence check. - Craftsman's Quarters (castle): 0.2 / 0.4 / 0.6 per bound village hearth; the same building also adds to town project income.
- Cantons cuts castles as well as towns.
- Tribunes of the People (
differs): the text says town taxes paid to the ruler are reduced by 5%; the code cuts 5% of every kingdom town's tax for its owner clan, ruler or not.
Tariff income
Base: the truncated accumulated trade tax / 5. With withdrawals the rounded base is subtracted from the accumulator. NavalDLC extends it: after the base result, factor -0.1 for Arsenals of State. AddSettlementIncome adds the truncated result.
| Consumer | NavalDLCClanFinanceModel::CalculateTownIncomeFromTariffs (NavalDLC) |
| Base | floor(trade_tax_accumulated / 5) |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Marketplace | building | factor | building_effect |
settlement=town |
works | |
| Arsenals of State | policy | factor | -0.1 |
faction=kingdom_policy_active |
works | |
| Steady (Crossbow, secondary) | perk | 0.05 | factor | bonus |
role=Governor |
works |
| Salt the Earth (Roguery, secondary) | perk | 0.05 | factor | bonus |
role=Governor |
works |
| Giving Hands (Steward, secondary) | perk | 0.1 | factor | bonus |
role=Governor |
works |
| Content Trades (Trade, primary) | perk | 0.1 | factor | bonus |
role=Governor |
works |
IL: NavalDLC.GameComponents.NavalDLCClanFinanceModel: CalculateTownIncomeFromTariffs; TaleWorlds.CampaignSystem.GameComponents.DefaultClanFinanceModel: CalculateSettlementProjectTariffBonuses, CalculateTownIncomeFromTariffs.
Town project income
Default standard modifier sum (base 0); returns the truncated result. NavalDLC delegates.
| Consumer | DefaultClanFinanceModel::CalculateTownIncomeFromProjects (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Craftsman's Quarters (castle) | building | add | building_effect |
settlement=castle |
works | |
| Architectural Commissions (Engineering, secondary) | perk | 20 | add | bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultClanFinanceModel: CalculateTownIncomeFromProjects.
Architectural Commissions: needs a current default (daily) building and, since v1.5.7, the governor in the town.
Village income
Integer arithmetic in code order: income = trunc(accumulated trade tax / 5), 0 when Looted or BeingRaided; Land Tax income -= trunc(0.05 · income); Forest Kin income += round(income · bonus); Logistician income += round(income · bonus). With withdrawals the pre-modifier value is subtracted from the accumulator. NavalDLC delegates.
| Consumer | DefaultClanFinanceModel::CalculateVillageIncome (Native) |
| Base | floor(village_trade_tax_accumulated / 5) |
| Combine rule | sequential |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Looted or raided village pays nothing | term | override | 0 |
settlement=village_looted_or_being_raided |
works | |
| Land Tax | policy | add | -floor(0.05 * village_income_base) |
faction=kingdom_policy_active; faction=not_ruling_clan |
works | |
| Forest Kin (Scouting, secondary) | perk | 0.1 | multiply | 1 + bonus |
role=Governor; settlement=village |
works |
| Logistician (Steward, secondary) | perk | 0.1 | multiply | 1 + bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultClanFinanceModel: CalculateVillageIncome.
Forest Kin and Logistician read the village's Bound town governor with no presence check. Land Tax applies to clans in a kingdom that are not its ruling clan.
Clan daily income
Eliminated clans return 0. Sub-methods add into one standard modifier sum (base 0) in order: ruling clan policy income, minor clan tier income, mercenary income, settlement income, the clan leader's workshops, parties, player alleys, tribute, call-to-war agreements, trade agreements, kingdom budget, Spring of Gold. All terms are add; no clamp. NavalDLC extends CalculateClanGoldChange and CalculateClanExpenses (expense side).
| Consumer | DefaultClanFinanceModel::CalculateClanIncomeInternal (Native) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Player clan alley income | term | add | alley_income |
faction=player_clan |
works | |
| Call-to-war agreement income | term | add | call_to_war_income |
faction=not_mercenary |
works | |
| Kingdom budget income | term | add | kingdom_budget_income |
faction=not_mercenary; hero=not_main_hero_clan_leader |
works | |
| Mercenary contract income | term | add | mercenary_income |
faction=mercenary |
works | |
| Clan tier income for clans without fiefs | term | add | clan_tier * (80 + 40 * is_mercenary) |
faction=no_fiefs; faction=not_player_clan |
works | |
| Caravan and party income | term | add | party_income |
works | ||
| Fief income | term | add | settlement_income |
works | ||
| Trade agreement income | term | add | trade_agreement_income |
faction=not_mercenary |
works | |
| Tribute income | term | add | tribute_income |
faction=not_mercenary |
works | |
| Clan leader's workshop income | term | add | workshop_income |
works | ||
| Crown Duty | policy | add | 0.05 * kingdom_trade_tax |
faction=kingdom_policy_active; faction=ruling_clan |
works | |
| Debasement of the Currency | policy | add | 100 * kingdom_fiefs |
faction=kingdom_policy_active; faction=ruling_clan |
works | |
| Land Tax | policy | add | floor(0.05 * other_clan_village_income) |
faction=kingdom_policy_active; faction=ruling_clan |
works | |
| Road Tolls | policy | add | floor(own_town_trade_tax / 30) |
faction=kingdom_policy_active; faction=ruling_clan |
differs | |
| State Monopolies | policy | add | floor(0.05 * own_workshop_profit) |
faction=kingdom_policy_active; faction=ruling_clan |
works | |
| War Tax | policy | add | floor(0.05 * kingdom_town_tax) |
faction=kingdom_policy_active; faction=ruling_clan |
works | |
| Spring of Gold (Trade, primary) | perk | 0.001 | add | min(1000, bonus * gold) |
role=ClanLeader |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultClanFinanceModel: CalculateClanIncomeInternal, AddPlayerClanIncomeFromOwnedAlleys, AddIncomeFromCallToWarAgrements, AddIncomeFromKingdomBudget, AddMercenaryIncome, AddIncomeFromParties, AddSettlementIncome, AddIncomeFromTradeAgreements, AddIncomeFromTribute, CalculateHeroIncomeFromWorkshops, AddRulingClanIncome.
- Settlement income: Σ over the clan's fiefs of
trunc(tax) + trunc(tariffs) + project income + Σ village income. - Party income:
(party trade gold - 10000) / 10per caravan or party holding more than 10000 trade gold. - Debasement of the Currency counts towns and castles; the text says towns, so it is broader.
- Mercenary, alley, tribute, call-to-war, trade agreement and kingdom budget terms are not broken down further.
- Road Tolls (
differs): the text says trade tax paid to the town owner rises by 3%; the code pays only the ruling clan,TradeTaxAccumulated / 30(about 3.3%) of each town it owns, withdrawn from the accumulator.
Clan renown
Clan.Renown += amount when the amount is > 0, after which the clan tier may rise. Each caller passes its own amount; callers do not combine.
| Consumer | Clan::AddRenown (Native) |
| Base | 0 |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Artisan Community (Trade, primary) | perk | 1 | add | bonus * workshops |
role=ClanLeader |
works |
| Great Investor (Trade, primary) | perk | 1 | add | bonus |
party=caravan; role=ClanLeader |
works |
IL: TaleWorlds.CampaignSystem.Clan: AddRenown; TaleWorlds.CampaignSystem.GameComponents.DefaultClanFinanceModel: CalculateHeroIncomeFromWorkshops, AddIncomeFromParty.
Both run only when withdrawals are applied. A profiting caravan holds more than 10000 trade gold at the daily tick.
Construction
Daily construction power
The base model starts a standard modifier sum with base 0 and CalculateDailyConstructionPowerInternal adds Prosperity · 0.01, the boost, governor skill and perks, market goods, buildings, loyalty factors and the Battanian feat, then an at-least-0 limit; the result is returned truncated. Loyalty ≤ 25 sets an at-most-0 limit. The clamp is lazy, so every later add and factor, including NavalDLC's, is still clamped: at loyalty ≤ 25 construction is 0. The no-boost variant uses the same method without the boost term. NavalDLC extends it: after the base result, factor +0.2 for Maritime Weal Edict when the settlement has no port.
| Consumer | NavalDLCBuildingConstructionModel::CalculateDailyConstructionPower (NavalDLC) |
| Base | prosperity * 0.01 |
| Combine rule | explained_number |
| Clamp | min 0 |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Construction boost | term | add | construction_boost_amount * min(1, boost_progress / boost_cost) |
settlement=boost_active |
works | |
| High loyalty construction bonus | term | factor | (loyalty - 75) / 25 * 0.2 |
settlement=loyalty_at_least_75 |
works | |
| Low loyalty construction penalty | term | factor | (loyalty - 25) / 50 - 0.5 |
settlement=loyalty_25_to_50 |
works | |
| Very low loyalty stops construction | term | cap | 0 |
settlement=loyalty_at_most_25 |
works | |
| Production goods sold in the market | term | add | 0.25 * sold_production_goods |
works | ||
| Mason (castle) | building | add | building_effect |
settlement=castle |
works | |
| Mason (town) | building | add | building_effect |
settlement=town |
works | |
| Maritime Weal Edict | policy | factor | 0.2 |
faction=kingdom_policy_active; settlement=no_port |
differs | |
| Battanian slower construction feat | feat | factor | -0.1 |
culture=owner_clan_battania; settlement=loyalty_above_25 |
works | |
| Faster building production (Engineering skill effect) | skill effect | 0.0025 per point | factor | bonus * skill |
role=Governor |
ui_only |
| Faster building production (Engineering skill effect) | skill effect | 0.0025 per point | factor | bonus * skill |
role=Governor |
works |
| Carpenters (Engineering, secondary) | perk | 0.12 | factor | bonus |
role=Governor; settlement=town |
works |
| Military Planner (Engineering, secondary) | perk | 0.25 | factor | bonus |
role=Governor; settlement=castle |
works |
| Stonecutters (Engineering, primary) | perk | 0.3 | factor | bonus |
role=Governor; settlement=fortification |
differs |
| Forced Labor (Steward, secondary) | perk | 0.01 | factor | bonus + min(0.3, prisoners / 3 * bonus) |
role=Governor |
differs |
| Self-made Man (Trade, secondary) | perk | 0.3 | factor | bonus |
role=Governor; settlement=building_marketplace |
differs |
| Confidence (Two Handed, secondary) | perk | 0.3 | factor | bonus |
role=Governor |
works |
IL: NavalDLC.GameComponents.NavalDLCBuildingConstructionModel: CalculateDailyConstructionPower; TaleWorlds.CampaignSystem.GameComponents.DefaultBuildingConstructionModel: CalculateDailyConstructionPowerInternal; Helpers.PerkHelper: GetGovernorEngineeringSkillEffectForHero.
- Engineering skill effect: governor's Engineering × 0.0025, governor in the town; towns and castles. A second reader builds only the tooltip text (
ui_only). - Carpenters, Military Planner and Stonecutters need the governor in the settlement and a project in progress.
- Confidence: the first building in progress must be a military project.
- High loyalty (≥ 75): factor maps 75..100 to 0..0.2. Low loyalty (25 < loyalty ≤ 50): maps 25..50 to -0.5..0.
- Battanian feat: -0.1, only when loyalty > 25.
- Production goods sold in the market:
0.25per item sold. - Boost:
construction_boost_amount · min(1, boost_progress / boost_cost);boost_costis the boost cost below. - Maritime Weal Edict (
differs): the text says project building speed in non-coastal towns decreases by 20%; the code adds factor +0.2 for settlements without a port, an increase. - Stonecutters (
differs): aqueducts are not included: the current project must be Fortifications or Barracks (town or castle). - Self-made Man (
differs): only Marketplace is tested; kiln and aqueduct never are. - Forced Labor (
differs): a flat factor ofbonuswhenever the governor is present (not in the tooltip), plusmin(0.3, prisoners / 3 · bonus)with no flooring to whole groups of 3, capped at +30%.
Worked example. A town with prosperity 5000, Mason at level 2 and loyalty 85, with an Engineering 100 governor holding Carpenters in the town, in a kingdom with Maritime Weal Edict and no port:
A town with prosperity 5000, Mason at level 2, loyalty 85, an Engineering 100 governor with Carpenters in the town, in a kingdom with Maritime Weal Edict and no port. Inputs: prosperity 5000.
| Step | Source | Stage | Change | Running value |
|---|---|---|---|---|
| Base | Daily construction power of a town or castle | base | 50.0000 | |
| 1 | Mason (town) | add | +6.0000 | 56.0000 |
| 2 | Carpenters | factor +12% | +6.7200 | 62.7200 |
| 3 | Maritime Weal Edict | factor +20% | +11.2000 | 73.9200 |
| 4 | Faster building production | factor +25% | +14.0000 | 87.9200 |
| 5 | High loyalty construction bonus | factor +8% | +4.4800 | 92.4000 |
| Result | Daily construction power of a town or castle | 92.4000 |
With these inputs, daily construction power of a town or castle is 92.4000.
The four factors are summed (+12%, +20%, +25%, +8%) and applied once to 56.0000. Maritime Weal Edict raises construction power by 11.2000; by its text it should lower it.
Worked example. The same town at loyalty 20. The high loyalty factor is gone and the at-most-0 limit caps the result; the NavalDLC factor added after the cap is still capped:
The town of the first example at loyalty 20, so the high loyalty bonus is gone and construction power is capped at 0; the later Maritime Weal Edict factor is still capped. Inputs: prosperity 5000.
| Step | Source | Stage | Change | Running value |
|---|---|---|---|---|
| Base | Daily construction power of a town or castle | base | 50.0000 | |
| 1 | Mason (town) | add | +6.0000 | 56.0000 |
| 2 | Carpenters | factor +12% | +6.7200 | 62.7200 |
| 3 | Maritime Weal Edict | factor +20% | +11.2000 | 73.9200 |
| 4 | Faster building production | factor +25% | +14.0000 | 87.9200 |
| Clamp | maximum 0 | clamp | -87.9200 | 0.0000 |
| Result | Daily construction power of a town or castle | 0.0000 |
With these inputs, daily construction power of a town or castle is 0.0000 (limited from 87.9200).
Boost amount
boost = boost_bonus + trunc(boost_bonus · (relocation + spring_of_gold)), where boost_bonus is 50 for a town and 20 for a castle, and relocation / spring_of_gold are the secondary bonuses of Relocation and Spring of Gold when the governor has them (summed before one multiply). For towns, CalculateDailyConstructionPowerInternal then sets boost = boost + Round(boost · clockwork). NavalDLC delegates.
| Consumer | DefaultBuildingConstructionModel::GetBoostAmount (Native) |
| Base | boost_bonus |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Clockwork (Engineering, secondary) | perk | 0.2 | multiply | 1 + bonus |
role=Governor; settlement=town |
works |
| Relocation (Steward, secondary) | perk | 0.2 | factor | bonus |
role=Governor |
works |
| Spring of Gold (Trade, secondary) | perk | 0.2 | factor | bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultBuildingConstructionModel: GetBoostAmount, CalculateDailyConstructionPowerInternal.
None of the three checks governor presence. Clockwork applies to towns only.
Boost cost
The boost reserve one boost spends, which also divides the boost progress in construction power. Starts at 500 for a town and 250 for a castle, then the Generosity factor, then rounded. NavalDLC delegates.
| Consumer | DefaultBuildingConstructionModel::GetBoostCost (Native) |
| Base | boost_base_cost |
| Combine rule | sequential |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Generosity trait: construction boost cost | term | multiply | 1 - trait_effect |
hero=governor_generosity_trait; role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultBuildingConstructionModel: GetBoostCost.
- Generosity trait: the governor must be in the town;
trait_effectis 0.2 at Generosity -2 and 0.1 at -1.
Buildings
Building effect
level_amount is the building type's base effect amount at the building's current level. Every building's effect skips level 0 and daily projects that are not the town's current default building, then applies the result to the consumer number as add or factor.
| Consumer | DefaultBuildingEffectModel::GetBuildingEffect (Native) |
| Base | level_amount |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Bound village hearths (Denar by bound village hearth effect) | term | override | bound_village_hearths * level_amount |
settlement=effect_denar_by_bound_village_heart |
works | |
| Public Speaker (Charm, secondary) | perk | 0.1 | factor | bonus |
role=Governor |
works |
| Battlements (Engineering, secondary) | perk | 100 | add | bonus |
role=Governor; settlement=fortification |
differs |
| Contractors (Steward, secondary) | perk | 0.1 | factor | bonus |
role=Governor |
works |
| Master of Planning (Steward, secondary) | perk | 0.2 | factor | bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultBuildingEffectModel: GetBuildingEffect.
- Public Speaker: Marketplace and Festival and Games; "forums" has no building type in v1.5.7 (the legacy forum id maps to marketplace), so those two are the whole set.
- Contractors: every building of the town or castle. Master of Planning: daily projects only.
- Bound village hearths: for the Denar by bound village hearth building effect, the number is recreated with base
bound_village_hearths · level_amount. - Battlements (
differs): adds to the food stock effect of a Granary (castle) or Warehouse, and both start at level 0, so it does nothing until one is built to level ≥ 1.
Building amounts (levels 1 / 2 / 3, or a single value for a daily project):
| Building | Effect | Amounts |
|---|---|---|
| Housing (daily project) | Prosperity | Add 2 |
| Courthouse | Loyalty | Add 0.3 / 0.6 / 1.0 |
| Festival and Games (daily project) | Loyalty | Add 3 |
| Guard house (castle) | Militia | Add 1 / 2 / 3 |
| Train Militia (daily project) | Militia | Add 2 |
| Raise Troops (castle daily project) | Militia | Add 3 |
| Training Fields (town, castle) | MilitiaVeterancyChance | Add 0.1 / 0.15 / 0.2 |
| Farmlands (castle) | FoodProduction | Add 6 / 12 / 18 |
| Waterworks | FoodConsumption | AddFactor -0.05 / -0.1 / -0.15 |
| Tax Office | TaxPerDay | AddFactor 0.05 / 0.1 / 0.15 |
| Craftsman's Quarters (castle) | DenarByBoundVillageHeartPerDay | 0.2 / 0.4 / 0.6 per bound village hearth |
| Marketplace | TariffIncome | AddFactor 0.1 / 0.2 / 0.3 |
| Mason (town) | ConstructionPerDay | Add 3 / 6 / 9 |
| Mason (castle) | ConstructionPerDay | Add 2 / 4 / 6 |
| Warehouse | WorkshopProduction | AddFactor 0.05 / 0.1 / 0.15 |
| Roads and Paths (town, castle) | VillageHeartsPerDay | Add 0.1 / 0.2 / 0.3 |
| Roads and Paths (town, castle) | VillageProduction | AddFactor 0.05 / 0.1 / 0.15 |
| Irrigation (town daily project) | VillageHeartsPerDay | Add 1 |
| Irrigation (castle daily project) | VillageHeartsPerDay | AddFactor 0.5 |
Inert building effects: the daily security effect (read by the security change) and the militia reduction effect (read for rebellious castles) are carried by no building.
Workshops
Production speed
The base model starts from the production's conversion speed and adds factors from policies of the settlement owner's kingdom, Warehouse, Mercenary Connections (town governor) and Sweatshops (workshop owner). No clamp. NavalDLC extends it: after the base result, factors from policies of the workshop owner clan's kingdom.
| Consumer | NavalDLCWorkshopModel::GetEffectiveConversionSpeedOfProduction (NavalDLC) |
| Base | conversion_speed |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Warehouse | building | factor | building_effect |
settlement=town |
works | |
| Forgiveness of Debts | policy | factor | -0.05 |
faction=kingdom_policy_active |
works | |
| Maritime Weal Edict | policy | factor | 0.25 |
faction=kingdom_policy_active; settlement=port |
works | |
| Royal Navy Prerogative | policy | factor | -0.05 |
faction=kingdom_policy_active; item=workshop_smithy_or_wood |
works | |
| State Monopolies | policy | factor | -0.1 |
faction=kingdom_policy_active |
works | |
| Sweatshops (Steward, primary) | perk | 0.2 | factor | bonus |
role=Personal |
works |
| Mercenary Connections (Trade, primary) | perk | 0.25 | factor | bonus |
role=Governor |
works |
| Calculating trait: workshop production speed | term | factor | trait_effect |
hero=governor_calculating_trait; role=Governor; settlement=fortification |
works |
IL: NavalDLC.GameComponents.NavalDLCWorkshopModel: GetEffectiveConversionSpeedOfProduction; TaleWorlds.CampaignSystem.GameComponents.DefaultWorkshopModel: GetEffectiveConversionSpeedOfProduction.
Maritime Weal Edict needs the workshop's settlement to have a port. Royal Navy Prerogative applies to smithies and wood workshops. Calculating trait: trait_effect is +0.1 at Calculating +1 and +0.2 at +2 for a governor who is in the town.
Capture refund
Per workshop whose owner's faction is at war with the town's new owner, the owner receives Round(bonus) gold. No other source.
| Consumer | WorkshopsCampaignBehavior::OnSettlementOwnerChanged (Native) |
| Base | 0 |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Rapid Development (Trade, primary) | perk | 5000 | add | bonus |
role=Personal; settlement=town |
differs |
IL: TaleWorlds.CampaignSystem.CampaignBehaviors.WorkshopsCampaignBehavior: OnSettlementOwnerChanged.
Rapid Development (differs): the holder is each workshop owner, not the clan leader (game_role ClanLeader).
Villages
Daily hearth change
The base model (base 0) recreates the number for a village in the Normal state with base 4 (hearth < 300), 1.2 (< 600) or 0.2; other states keep 0. Perks, buildings and the bound settlement terms need a bound settlement and the Normal state. The Empire feat factor is added only when the result so far is ≥ 0. No clamp. NavalDLC extends it: after the base result, Fair Winds when the bound settlement has a port and is a fortification.
| Consumer | NavalDLCSettlementProsperityModel::CalculateHearthChange (NavalDLC) |
| Base | hearth_base |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Active issue effects | term | add | issue_effects |
settlement=village |
works | |
| Looted village | term | add | -1 |
settlement=village_looted |
works | |
| Irrigation (castle daily project) | building | factor | building_effect |
settlement=bound_to_castle; settlement=daily_project_active; settlement=village_normal |
works | |
| Roads and Paths (castle) | building | add | building_effect |
settlement=bound_to_castle; settlement=village_normal |
works | |
| Irrigation (town daily project) | building | add | building_effect |
settlement=bound_to_town; settlement=daily_project_active; settlement=village_normal |
works | |
| Roads and Paths (town) | building | add | building_effect |
settlement=bound_to_town; settlement=village_normal |
works | |
| Grazing Rights | policy | add | -0.25 |
faction=kingdom_policy_active; settlement=village |
works | |
| Empire village hearth feat | feat | factor | -0.2 |
culture=owner_clan_empire; settlement=village |
works | |
| Energetic (Athletics, secondary) | perk | 0.2 | factor | bonus |
role=Governor; settlement=village_normal |
differs |
| Fair Winds (Shipmaster, secondary) | perk | 0.1 | factor | bonus |
role=Governor; settlement=port |
works |
| Bush Doctor (Medicine, primary) | perk | 0.2 | factor | bonus |
role=Governor; settlement=village |
differs |
| Aid Corps (Steward, secondary) | perk | 0.2 | factor | bonus |
role=Governor; settlement=village_normal |
differs |
| Mercy trait: village hearth growth | term | factor | trait_effect |
hero=governor_mercy_trait; role=Governor; settlement=village |
works |
IL: NavalDLC.GameComponents.NavalDLCSettlementProsperityModel: CalculateHearthChange; TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementProsperityModel: CalculateHearthChangeInternal.
- Fair Winds: a factor on a negative hearth change makes it more negative.
- Energetic, Bush Doctor, Aid Corps (
differs): skipped unless the village is in the Normal state (not looted or being raided), which the tooltips do not state. - Bush Doctor reads the governor of the village's bound town or castle; castle-bound villages qualify.
- Mercy trait:
trait_effectis +0.05 at Mercy +1 and +0.1 at +2 for the bound town's governor while in that town, applied only when the change so far is not negative.
Daily production
Per item. The base model returns 0 unless the village is Normal. For each production entry of the village type whose item matches, the base add and the perks apply only when the village has a trade-bound town; culture feats and buildings of the bound fortification follow. No clamp. NavalDLC extends it: after the base result, Port Authority and Blessings of the Sea (TradeBound governor), then factors Maritime Weal Edict +0.25 and Bolster the Militia -0.05 of the bound settlement owner's kingdom.
| Consumer | NavalDLCVillageProductionCalculatorModel::CalculateDailyProductionAmount (NavalDLC) |
| Base | 0 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Village base production | term | add | production_rate * (hearth_level + 1) * 0.5 |
settlement=has_trade_bound; settlement=village_normal |
works | |
| Roads and Paths (castle) | building | factor | building_effect |
settlement=bound_to_castle |
works | |
| Roads and Paths (town) | building | factor | building_effect |
settlement=bound_to_town |
works | |
| Bolster the Militia | policy | factor | -0.05 |
faction=kingdom_policy_active |
works | |
| Maritime Weal Edict | policy | factor | 0.25 |
faction=kingdom_policy_active |
works | |
| Khuzait animal production feat | feat | factor | 0.25 |
culture=owner_clan_khuzait; item=sheep_cow_warhorse_horse_pack_animal |
works | |
| Sturgian grain production feat | feat | factor | 0.1 |
culture=owner_clan_sturgia; item=grain |
works | |
| Vlandian castle village production feat | feat | factor | 0.1 |
culture=owner_clan_vlandia; settlement=bound_to_castle |
works | |
| Steady (Athletics, secondary) | perk | 0.1 | factor | bonus |
item=trade_good; role=Governor; settlement=village_normal |
differs |
| Blessings Of The Sea (Boatswain, secondary) | perk | 0.25 | factor | bonus |
item=fish; role=Governor |
differs |
| Perfect Health (Medicine, secondary) | perk | 0.1 | factor | bonus |
item=animal; role=Governor |
differs |
| Port Authority (Boatswain, secondary) | perk | 0.15 | factor | bonus |
item=walrus_tusk_or_whale_oil; role=Governor |
differs |
| Breeder (Riding, secondary) | perk | 0.05 | factor | bonus |
role=Governor |
differs |
| Shepherd (Riding, secondary) | perk | 0.15 | add | (hearth_level + 1) * 0.5 |
item=mount; role=Governor |
differs |
| Granary Accountant (Trade, secondary) | perk | 0.2 | factor | bonus |
item=grain_olives_fish_date; role=Governor |
differs |
| Tradeyard Foreman (Trade, secondary) | perk | 0.2 | factor | bonus |
item=clay_iron_silver_raw_silk; role=Governor |
differs |
IL: NavalDLC.GameComponents.NavalDLCVillageProductionCalculatorModel: CalculateDailyProductionAmount; TaleWorlds.CampaignSystem.GameComponents.DefaultVillageProductionCalculatorModel: CalculateDailyProductionAmount.
- Base:
production_rate · (hearth_level + 1) · 0.5. - Maritime Weal Edict here has no port check: every village of the kingdom gets +0.25, while the text names villages bound to coastal settlements, so it is broader.
- Steady (Athletics), Perfect Health, Breeder, Granary Accountant, Tradeyard Foreman, Blessings of the Sea, Port Authority (
differs): read from the governor of the village's trade-bound town, not the settlement it is bound to. A castle's governor never applies them; a town governor applies them to castle villages that trade with the town. Steady also covers any trade-good output, not only farms, mines, lumber camps and clay pits. - Shepherd (
differs): not tier-2 horses. For a tier-1 mount item, with chancebonus(a random roll below it) the production count of that same item gets +1 before the hearth multiplier. The roll happens on every call of the model.
Raid recovery
Daily settlement hit point recovery, for villages and towns with hit points < 1 and no map event or siege. Base 0.06 + (7000 - min(7000, max(1000, faction_strength))) / 100000, where faction_strength is the faction's current total strength. The result is applied with IncreaseSettlementHealthAction.
| Consumer | VillageHealCampaignBehavior::DailyTickSettlement (Native) |
| Base | 0.06 + (7000 - min(7000, max(1000, faction_strength))) / 100000 |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Clean Infrastructure (Medicine, secondary) | perk | 0.3 | factor | bonus |
role=Governor; settlement=village |
differs |
| In Best Light (Roguery, secondary) | perk | 0.2 | factor | bonus |
role=ClanLeader |
works |
IL: TaleWorlds.CampaignSystem.CampaignBehaviors.VillageHealCampaignBehavior: DailyTickSettlement.
- Clean Infrastructure (
differs): the trade-bound town's governor, not the bound settlement's. - In Best Light (secondary): the owner clan's leader; applies to towns as well as villages, broader than the tooltip.
Forced volunteers
count = ceil(Hearth / 30) truncated; In Best Light adds; count culture basic troops are given. Afterwards hit points ×0.2 and hearth falls by count / 2 (integer division).
| Consumer | VillageHostileActionCampaignBehavior::village_force_volunteers_ended_successfully_on_consequence (Native) |
| Base | ceil(hearth / 30) |
| Combine rule | sequential |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| In Best Light (Roguery, primary) | perk | 1 | add | notables |
party=main_party; role=PartyLeader; settlement=village |
differs |
IL: TaleWorlds.CampaignSystem.CampaignBehaviors.VillageHostileActionCampaignBehavior: village_force_volunteers_ended_successfully_on_consequence.
In Best Light (differs): the perk bonus is never read; the count rises by the village's notable count, one per notable.
Volunteers
Recruit slots
Integer formula. internal = min(6, max(0, 1 + player_recruit_slot_bonus + one_of_the_family)); result = min(6, internal + relation_index + same_faction + ai_recruiter + war_penalty + perk_slots), where perk_slots is the sum of the truncated bonuses of Artisan Community, Combat Tips, Firebrand, Flexible Ethics and Engineering Guilds. Not overridden.
| Consumer | DefaultVolunteerModel::MaximumIndexHeroCanRecruitFromHero (Native) |
| Base | 1 |
| Combine rule | custom |
| Clamp | max 6 |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Difficulty recruit slot bonus | term | add | player_recruit_slot_bonus |
hero=main_hero |
works | |
| AI recruiter bonus | term | add | 1 |
hero=not_main_hero |
works | |
| Recruiter at war with the notable's settlement | term | add | -(1 + ai_recruiter) |
faction=at_war_with_notable_settlement |
works | |
| Relation with the notable | term | add | relation_index |
works | ||
| Notable's settlement in the recruiter's faction | term | add | 1 |
faction=recruiter_owns_notable_settlement_faction |
works | |
| Firebrand (Charm, secondary) | perk | 1 | add | bonus |
hero=rural_notable; role=PartyLeader |
works |
| Flexible Ethics (Charm, secondary) | perk | 1 | add | bonus |
hero=urban_notable; role=Personal |
works |
| Engineering Guilds (Engineering, primary) | perk | 1 | add | floor(bonus) |
role=Engineer |
differs |
| Combat Tips (Leadership, secondary) | perk | 1 | add | floor(bonus) |
culture=notable_matches_recruiter; role=PartyLeader |
works |
| One of the Family (Roguery, secondary) | perk | 1 | add | bonus |
faction=recruiter_clan_owns_settlement; hero=gang_leader; role=Governor |
differs |
| Artisan Community (Trade, secondary) | perk | 1 | add | bonus |
hero=notable_merchant; role=PartyLeader |
differs |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultVolunteerModel: MaximumIndexHeroCanRecruitFromHero, MaximumIndexCanPartyRecruitFromHeroInternal.
- Relation index: relation ≥ 100: 7, ≥ 80: 6, ≥ 60: 5, ≥ 40: 4, ≥ 20: 3, ≥ 10: 2, ≥ 5: 1, ≥ 0: 0, else -1.
- At war: -1, -2 for AI; 0 when the recruiter is a minor faction hero and the notable is in a village.
- Combat Tips: "troop tiers" in the tooltip is the slot index.
- Engineering Guilds (
differs): capped at 6, so the slot is lost at the cap; read from the party's engineer. - One of the Family (
differs): only heroes of the settlement's owner clan get the slot; the town governor (for a village, the bound town's) must have the perk, with no presence check. - Artisan Community (
differs): the holder is the recruiting hero, not the party quartermaster.
Volunteer production probability
A 0-1 probability. faction_fief_score = Σ over the notable's faction fiefs of village count plus, for towns, 1 / 2 / 3 for prosperity < 3000 / < 6000 / higher. The ratio is 1 when the score is ≥ 46, else (score / 46)^2; the 0.2 · (1 - ratio) term is 0 when the notable has no current settlement. Factors follow; no clamp.
| Consumer | DefaultVolunteerModel::GetDailyVolunteerProductionProbability (Native) |
| Base | 0.75 * min(1, (0.7 + 0.2 * (1 - min(1, (faction_fief_score / 46) ^ 2))) ^ (slot_index + 1)) |
| Combine rule | explained_number |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Cantons | policy | factor | 0.2 |
faction=kingdom_policy_active |
works | |
| Recruitment rate campaign option | term | factor | -0.9 |
settlement=recruitment_rate_modifier_option |
works | |
| Cavalry Tactics (Riding, primary) | perk | 0.3 | factor | bonus |
unused | |
| Cavalry Tactics (Riding, secondary) | perk | -0.5 | factor | bonus |
role=Governor; troop=Mounted |
differs |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultVolunteerModel: GetDailyVolunteerProductionProbability.
- Cantons: policy of the notable's clan's kingdom.
- Recruitment rate option: when the campaign option is on, the chance gets a -90% factor after every other term.
- Cavalry Tactics: since v1.5.7 the model calls
AddPerkBonusForTownwith the secondary half, so the governor's -50% (the mounted-wage half) cuts the cavalry volunteer chance in the town, or for a village in the town it trades with, while the governor is there (differs: not in the secondary tooltip). The +30% primary half is never read (unused).
Garrison
Garrison size the town can feed
The AI's estimate of the largest garrison the town's food supports. food_change is the town's daily food change, garrison the garrison's regular member count, population food Prosperity / 40. With divisor d = 1 + Σ governor perk bonuses (Triage Tent and Gourmet only under siege, Master of Warcraft always; no presence check):
food_change < -prosperity/40:
newly conquered fortification -> trunc(map(prosperity, 0, 8000, 150, 300))
otherwise -> max(0, garrison - Round(|food_change + prosperity/40| · 20 / d))
otherwise -> garrison + Round((prosperity/40 + food_change) · 20 / d)
The perks divide only the food term.
| Consumer | GarrisonTroopsCampaignBehavior::CalculateMaxGarrisonSizeTownCanFeed (Native) |
| Base | max(0, garrison + round((food_change + prosperity / 40) * 20)) |
| Combine rule | custom |
| Clamp | min 0 |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Newly conquered fortification | term | override | floor(150 + min(1, prosperity / 8000) * 150) |
settlement=food_deficit; settlement=newly_conquered |
works | |
| Triage Tent (Medicine, secondary) | perk | -0.05 | multiply | 1 / (1 + bonus) |
role=Governor; settlement=under_siege |
works |
| Gourmet (Steward, secondary) | perk | -0.1 | multiply | 1 / (1 + bonus) |
role=Governor; settlement=under_siege |
works |
| Master of Warcraft (Steward, secondary) | perk | -0.05 | multiply | 1 / (1 + bonus) |
role=Governor |
differs |
IL: TaleWorlds.CampaignSystem.CampaignBehaviors.GarrisonTroopsCampaignBehavior: CalculateMaxGarrisonSizeTownCanFeed.
Master of Warcraft (differs): in this estimate it is applied to garrison food, while the population term stays unreduced; in the real food model it reduces population food.
Notable relations
Town daily tick
A 0-1 probability per perk. White Lies and Scarface each make a random roll at or below bonus separately; a success gives +1 relation between the governor and a random notable.
| Consumer | Town::DailyTick (Native) |
| Base | 0 |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Scarface (Roguery, secondary) | perk | 0.05 | override | bonus |
hero=gang_leader; role=Governor |
differs |
| White Lies (Roguery, secondary) | perk | 0.02 | override | bonus |
role=Governor |
works |
IL: TaleWorlds.CampaignSystem.Settlements.Town: DailyTick.
Scarface (differs): only gang leaders are eligible, not any notable.
Governor daily tick
A 0-1 probability per perk; each site is its own roll and the rolls do not sum. A success applies +1 relation between the governor's clan leader (or the owner clan leader) and the chosen notables. Virile rolls in BuildingsCampaignBehavior while a daily project is active. No presence check on any of them.
| Consumer | GovernorCampaignBehavior::DailyTickSettlement (Native) |
| Base | 0 |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| In Bloom (Charm, secondary) | perk | 0.02 | add | bonus |
hero=opposite_gender; role=Governor; settlement=town_or_castle |
works |
| Meaningful Favors (Charm, secondary) | perk | 0.05 | add | bonus |
hero=notable_power_200; role=Governor; settlement=town_or_castle |
works |
| Virile (Charm, secondary) | perk | 0.1 | add | bonus |
role=Governor; settlement=daily_project_active |
works |
| Young And Respectful (Charm, secondary) | perk | 0.02 | add | bonus |
hero=same_gender; role=Governor; settlement=town_or_castle |
works |
IL: TaleWorlds.CampaignSystem.CampaignBehaviors.GovernorCampaignBehavior: DailyTickSettlement; TaleWorlds.CampaignSystem.CampaignBehaviors.BuildingsCampaignBehavior: DailyTickSettlement.
- In Bloom / Young And Respectful: a random notable of the opposite / same sex.
- Meaningful Favors: every notable with power ≥ 200 gains relation, with the owner clan's leader, not the governor's clan leader.
The relation itself (notable_relation) is defined with the social numbers.
Trading in disguise
Boolean (1 yes, 0 no). In towns and castles, the main hero cannot trade while disguised unless they have Smuggler Connections. Villages take a separate path. NavalDLC extends the location access and settlement action checks, not this one.
| Consumer | DefaultSettlementAccessModel::CanMainHeroTrade (Native) |
| Base | 1 |
| Combine rule | custom |
| Clamp | none |
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Main hero is disguised | term | override | 0 |
hero=main_hero_disguised; settlement=town_or_castle |
works | |
| Smuggler Connections (Roguery, primary) | perk | 0 | override | 1 |
hero=main_hero; role=Personal; settlement=town_or_castle |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultSettlementAccessModel: CanMainHeroTrade.
Bribe to enter a keep
The gold the guards ask to let the main hero into a lord's hall or dungeon when access is limited and a bribe solves it. 0 when no bribe is needed. No module overrides the bribe model.
| Consumer | DefaultBribeCalculationModel::GetBribeInternal (Native) |
| Base | bribe_base |
| Combine rule | custom |
| Clamp | min 0 |
bribe = max(0, floor(bribe_base · skill_factor / 25) · 25 − bribe_paid)
skill_factor = (1 − Roguery / 300) · 0.65 + 0.35
bribe_base: the faction's base bribe plus its criminal-rating term; when the player clan's renown is below 500,max(50, bribe_base + (500 − renown) · 15 / 10), integer division with renown truncated.bribe_paid: what was already paid at this settlement.Roguery: the main hero's raw skill. The factor is 1 at 0 and 0.35 at 300; it has no lower limit.
| Source | Kind | Value | Stage | Scaling | Conditions | Verdict |
|---|---|---|---|---|---|---|
| Roguery skill level | skill level | multiply | (1 - skill / 300) * 0.65 + 0.35 |
hero=main_hero |
works |
IL: TaleWorlds.CampaignSystem.GameComponents.DefaultBribeCalculationModel: GetSkillFactor, GetBribeInternal.
Tooltip differences at a glance
| Source | Game number | What the game does |
|---|---|---|
| Maritime Weal Edict | Construction power | factor +0.2 (faster) for settlements without a port; the text says -20% |
| Cantons | Militia change | towns only |
| Citizenship | Militia change | towns and castles only, not villages |
| Battanian militia feat | Militia change | +0.2 daily militia in towns, not in the feat text |
| Tribunes of the People | Tax | cuts 5% of every kingdom town's tax, not only the ruler's |
| Road Tolls | Clan income | paid only to the ruling clan, trade tax / 30 |
| Citizen Militia | Veteran chance | +0.2 on a 0-1 scale (+20 points); the tooltip shows +0.2% |
| Drills | Veteran chance | +1.0 on a 0-1 scale: every militia is a veteran |
| Seven Veterans | Veteran chance | +0.1 on a 0-1 scale (+10 points); the tooltip shows +0.1% |
| Seven Veterans | Militia change | +0.1 daily militia, not in the tooltip |
| Arms Dealer | Militia change | flat +2, not +2% |
| Dirty Fighting | Food change | +2 food change, no items smuggled |
| Parade | Loyalty change | own clan's towns only; stacks per holder |
| Stonecutters | Construction power | no aqueducts |
| Self-made Man | Construction power | marketplace only |
| Forced Labor | Construction power | extra flat factor; no flooring per 3 prisoners; cap +30% |
| Battlements | Building effect | needs Granary or Warehouse at level ≥ 1 |
| Rapid Development | Capture refund | holder is each workshop owner |
| Energetic, Bush Doctor, Aid Corps | Hearth change | Normal villages only |
| Steady, Perfect Health, Breeder, Granary Accountant, Tradeyard Foreman, Blessings of the Sea, Port Authority, Shepherd | Village production | TradeBound town governor; Shepherd adds +1 of the same tier-1 mount |
| Clean Infrastructure | Raid recovery | TradeBound town governor |
| In Best Light | Forced volunteers | +1 per notable, bonus never read |
| Engineering Guilds | Recruit slots | lost at the cap of 6 |
| One of the Family | Recruit slots | owner clan's heroes only |
| Artisan Community | Recruit slots | recruiting hero, not the quartermaster |
| Cavalry Tactics | Volunteer probability | primary +30% never read; the secondary half's -50% cuts cavalry volunteers |
| Master of Warcraft | Garrison food estimate | applied to garrison food |
| Scarface | Notable relation roll | gang leaders only |
Related skill guides
Athletics, Boatswain, Bow, Charm, Crossbow, Engineering, Leadership, Mariner, Medicine, One Handed, Polearm, Riding, Roguery, Scouting, Shipmaster, Steward, Tactics, Throwing, Trade, Two Handed.
Changelog
- v1.5.7 (2026-11-12): re-verified against v1.5.7. Security below 60 costs up to -2.5 loyalty; garrison security coefficient 0.0075; governor culture loyalty term removed; rebellious threshold 35; Citizen Militia, Drills and Seven Veterans need the governor present and Seven Veterans adds +0.1; Cavalry Tactics applies its secondary half to volunteers; Architectural Commissions and Accuracy Training on villages need the governor present; personality trait terms (Honor, Generosity, Mercy, Calculating) and the recruitment rate option added.
- v1.4.8 (2026-11-11): Bribe to enter a keep added (raw Roguery skill).
- v1.4.8 (2026-11-11): First version from IL.