• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

redtide

Magister Ludi
63 Badges
Jun 19, 2010
479
71
  • Crusader Kings II: Charlemagne
  • Victoria 2: Heart of Darkness
  • Victoria 2: A House Divided
  • Heir to the Throne
  • Crusader Kings II
  • Europa Universalis III Complete
  • Europa Universalis III
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: The Republic
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Legacy of Rome
  • Victoria 3 Sign Up
  • Cities: Skylines - Natural Disasters
  • Crusader Kings II: Monks and Mystics
  • Stellaris - Path to Destruction bundle
  • Cities: Skylines - Mass Transit
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Leviathans Story Pack
  • Stellaris: Synthetic Dawn
  • Cities: Skylines - Green Cities
  • Crusader Kings II: Jade Dragon
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Cities: Skylines - Parklife
  • Stellaris: Distant Stars
  • Shadowrun Returns
  • Cities: Skylines Industries
  • Cities: Skylines
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Semper Fi
  • Teleglitch: Die More Edition
  • Victoria 2
  • 500k Club
  • Stellaris: Digital Anniversary Edition
  • Crusader Kings II: Way of Life
  • Crusader Kings II: Horse Lords
  • Cities: Skylines - After Dark
  • Crusader Kings II: Conclave
  • Cities: Skylines - Snowfall
  • Stellaris
  • Hearts of Iron IV: Cadet
"Most illogical reaction. We demonstrated our superior weapons. They should have fled."
Spock, "The Galileo Seven"​

This is a tiny mod that makes combat tactics logic more internally consistent, reasonable, and intuitive by restoring symmetry between skirmish tactics groups, improving cooperation between different unit types, and correcting apparent oversights. For a background rant and brief discussion of the different troop checks used in the combat tactics file, see this post. This mod disables achievements.

Steam Download:
https://steamcommunity.com/sharedfiles/filedetails/?id=1422052089

A direct download is available at the bottom of this post.

Here is a list of what this mod does:

Adjusts the special troops file

War Elephants
changes "base_type" from "heavy_cavalry" to "knights" (to correct what seems to be an error in vanilla, given that the combat tactics file refers to "knights" rather than "heavy_cavalry")

Previous versions of this mod used "base_type = special_troops" for both Horse Archers (to prevent them from firing Light Cavalry tactics) and War Elephants. But that seemed to cause those units to be improperly counted for purposes of determining combat tactics probabilities. The current version prohibits Horse Archers from firing Light Cavalry tactics by making changes to tactics triggers, which are described below.

Camel Cavalry
attempts to balance camels:
increases maintenance from 3 to 3.25
decreases skirmish attack from 4 to 3
decreases melee attack from 6 to 5
decreases pursue attack from 4 to 3


Adjusts the combat tactics file

Modified form of tactics triggers

changes all "naked" troop checks to bracketed checks against total troops in order to prevent Horse Archers from triggering Light Cavalry tactics and War Elephants from triggering Heavy Cavalry tactics (and for consistency)

i.e. a "naked" check of the form:
Code:
light_cavalry = 0.01

becomes a bracketed check of the form:
Code:
troops = {
     who = light_cavalry
     value = 0.01
}

In vanilla, the "naked" check is used in triggers, and the bracketed check is used only in weight-multipliers. The "naked" check seems to look at a "base_type" such that "light_cavalry" refers to Light Cavalry, Camel Cavalry, and Horse Archers, while the bracketed check is precisely focused on a unit type such that "light_cavalry" refers only to Light Cavalry. Horse Archers satisfy the "naked" check shown above but fail to satisfy the bracketed check. I don't know why the distinction exists in vanilla, but using bracketed checks in triggers seems to work fine.

Improved cooperation between specific unit types

With this mod, the "rule of two" strategy for flank composition still applies. This is expressed on the wiki as: "In order to maximize combat tactics efficiency, a flank should contain no more than two of the three major skirmish units (Horse Archers, Archers, Light Cavalry), and no more than two of the three major melee units (Heavy Infantry, Pikemen, Heavy Cavalry)." But units pair in a particular way. The direction of support is the same as the direction of affinities, such that in melee Heavy Cavalry trigger Charge tactics, which impart an offensive bonus when enemy Heavy Infantry trigger an Advance tactic, but Heavy Cavalry also act as a supporting unit with friendly Heavy Infantry during the Awesome Advance tactic, which imparts offensive bonuses when enemy Pikemen trigger a Stand Fast tactic, which in turn get a bonus against Charge tactics. So when Heavy Cavalry team up with Heavy Infantry during the Awesome Advance tactic, it's a bit like Scissors teaming up with Paper to get back at Rock. One of the problems with vanilla tactics logic is that it doesn't do a great job of encouraging these partnerships, leaving the player to prefer flanks with a single light troop type and a single heavy troop type. This mod attempts to address that.
Horse Archers receive better support from Light Cavalry
Archers receive better support from Horse Archers
Light Cavalry receive better support from Archers
Heavy Infantry receive better support from Heavy Cavalry
Pikemen receive better support from Heavy Infantry
Heavy Cavalry receive better support from Pikemen

This is accomplished by:

(1) Setting the weights of all exclusive tactics (i.e. namesakes of tactics groups) to 3 and the weights of all cooperative tactics to 4; setting the weight-multipliers of all exclusive and cooperative tactics to 1.5

(2) Setting the offensive bonus that an exclusive skirmish tactic imparts to its associated unit to +200% (up from +100% for Horse Archers and down from +300% for Light Cavalry)

(3) Decreasing the offensive penalty that an exclusive tactic imparts to a potential supporting unit:

Swarm: decreases penalty to Light Cavalry offense from -150% to -50%
Volley: decreases penalty to Horse Archer offense from -150% to -50%
Harass: decreases penalty to Archer offense from -150% to -50%
Advance: decreases penalty to Heavy Cavalry offense from -150% to -50%
Stand Fast: decreases penalty to Heavy Infantry offense from -150% to -50%
Powerful Charge: decreases penalty to Pikemen offense from -150% to -50%

The resulting basic form of the offensive bonuses and penalties imparted by a modded skirmish tactic group is thus:
Code:
                     primary   support     other
                        unit      unit      unit

exclusive tactic       +200%     - 50%     -150%

cooperative tactic     +120%     + 60%     -180%

Code:
TACTIC           HA off      A off     LC off     LI off

Swarm             +200%      -150%      - 50%      +  0%
Harass Swarm      +120%      -180%      + 60%      +  0%

Volley            - 50%      +200%      -150%      +  0%
Swarm Volley      + 60%      +120%      -180%      +  0%

Harass            -150%      - 50%      +200%      +  0%
Volley Harass*    -180%      + 60%      +120%      +120%


*I have retained and increased the bonus that Volley Harass
imparts to Light Infantry because getting good ratios of LC:A
without also triggering Shieldwall requires pairing a Cavalry
retinue with the Light Skirmish retinue, but neither the trigger
nor the weight-multipliers check for Light Infantry.

Code:
TACTIC             HI off      P off     HC off     WE off

Advance             +300%      -150%      - 50%      +  0%
Awesome Advance     +240%      -180%      + 60%      +  0%

Stand Fast          - 50%      +300%      -150%      +  0%
Force Back*         + 60%      +240%      -180%      +120%

Powerful Charge     -150%      - 50%      +300%      +  0%
Overwhelming Charge -180%      + 60%      +240%      +  0%


*See below for a description of changes to the Stand Fast Group

(4) Restoring the original trigger conditions for Volley and Volley Harass and the original weight-multiplier conditions for Swarm, Harass Swarm, Volley, Harass, and Volley Harass

(5) Emending cooperative tactic weight-multiplier conditions that had required improbably precise light troop or heavy troop fractions that made it practically impossible for flanks to hit them. The adjusted multipliers match the form of the vanilla Schiltron multipliers:

Harass Swarm
(restores pre-Conclave (2.5.x) logic with the following adjustments)
first multiplier condition: decreases horse archer fraction of light troops from 70% to 60%
(vanilla requires exactly 70% horse archers and 30% light cavalry)
second multiplier condition: decreases horse archer fraction of light troops from 60% to 50%
third multiplier condition: decreases horse archer fraction of light troops from 50% to 40%,
decreases light cavalry fraction of light troops from 30% to 20%

Swarm Volley
first multiplier condition: decreases archer fraction of light troops from 70% to 60%
(vanilla requires exactly 70% archers and 30% horse archers)
second multiplier condition: decreases archer fraction of light troops from 60% to 50%
third multiplier condition: decreases archer fraction of light troops from 50% to 40%,
decreases horse archer fraction of light troops from 30% to 20%

Volley Harass
(restores pre-Conclave (2.5.x) logic with the following adjustments)
first multiplier condition: decreases light cavalry fraction of light troops from 70% to 60%
(vanilla requires exactly 70% light cavalry and 30% archers)
second multiplier condition: decreases light cavalry fraction of light troops from 60% to 50%
third multiplier condition: decreases light cavalry fraction of light troops from 50% to 40%,
decreases archer fraction of light troops from 30% to 20%

Awesome Advance
first multiplier condition: decreases heavy infantry fraction of heavy troops from 70% to 60%
(vanilla requires exactly 70% heavy infantry and 30% heavy cavalry)
second multiplier condition: decreases heavy infantry fraction of heavy troops from 60% to 50%
third multiplier condition: decreases heavy infantry fraction of heavy troops from 50% to 40%,
decreases heavy cavalry fraction of heavy troops from 30% to 20%

Force Back (merged vanilla Slow Advance and vanilla Force Back)
first multiplier condition: decreases pikemen fraction of heavy troops from 70% to 60%
(vanilla requires exactly 70% pikemen and 30% heavy infantry)
second multiplier condition: decreases pikemen fraction of heavy troops from 60% to 50%
third multiplier condition: decreases pikemen fraction of heavy troops from 50% to 40%,
decreases heavy infantry fraction of heavy troops from 30% to 20%

Overwhelming Charge
first multiplier condition: decreases heavy cavalry fraction of heavy troops from 70% to 60%
(vanilla requires exactly 70% heavy cavalry and 30% pikemen)
second multiplier condition: decreases heavy cavalry fraction of heavy troops from 60% to 50%
third multiplier condition: decreases heavy cavalry fraction of heavy troops from 50% to 40%,
decreases pikemen fraction of heavy troops from 30% to 20%

The resulting basic form of the triggers and weight-multipliers of a modded tactic group is thus:
Code:
                      Trigger          Multiplier 1   Multiplier 2   Multiplier 3
                      total troops     in group

exclusive tactic      primary ≥ 1%     primary ≥70%   primary ≥60%   primary ≥50%

cooperative tactic    primary ≥ 1%     primary ≥60%   primary ≥50%   primary ≥40%
                      support ≥ 1%     support ≥30%   support ≥30%   support ≥20%

Code:
TACTIC          Trigger     Multi 1     Multi 2     Multi 3
                (total)     (light)     (light)     (light)

Swarm            HA≥ 1%      HA≥70%      HA≥60%      HA≥50%
Harass Swarm     HA≥ 1%      HA≥60%      HA≥50%      HA≥40%
                 LC≥ 1%      LC≥30%      LC≥30%      LC≥20%

Volley*           A≥ 1%       A≥70%       A≥60%       A≥50%
Swarm Volley      A≥ 1%       A≥60%       A≥50%       A≥40%
                 HA≥ 1%      HA≥30%      HA≥30%      HA≥20%

Harass           LC≥ 1%      LC≥70%      LC≥60%      LC≥50%
Volley Harass    LC≥ 1%      LC≥60%      LC≥50%      LC≥40%
                  A≥ 1%       A≥30%       A≥30%       A≥20%


*The Volley trigger condition that A<40% now applies only when the flank also has
enough War Elephants to trigger Gray Wall. English and Welsh commanders will always
use Massive Longbow Volley instead of Volley.

Code:
TACTIC              Trigger     Multi 1     Multi 2     Multi 3
                    (total)     (heavy)     (heavy)     (heavy)

Advance              HI≥ 1%      HI≥70%      HI≥60%      HI≥50%
Awesome Advance      HI≥ 1%      HI≥60%      HI≥50%      HI≥40%
                     HC≥ 1%      HC≥30%      HC≥30%      HC≥20%

Stand Fast            P≥ 1%       P≥70%       P≥60%       P≥50%
Force Back*           P≥ 1%       P≥60%       P≥50%       P≥40%
                     HI≥ 1%      HI≥30%      HI≥30%      HI≥20%
                       OR          OR          OR          OR
                     WE≥ 0.5%    WE≥ 4%      WE≥ 2%      WE≥ 1%

Powerful Charge      HC≥ 1%      HC≥70%      HC≥60%      HC≥50%
Overwhelming Charge  HC≥ 1%      HC≥60%      HC≥50%      HC≥40%
                      P≥ 1%       P≥30%       P≥30%       P≥20%


*See below for a description of changes to the Stand Fast Group.
As in vanilla, all War Elephant checks are against total troops.
Stand Fast has additional weight-multipliers that make it less likely
to fire when the flank has certain percentages of War Elephants
(in order to force the use of Force Back instead).

Other changes for consistency and symmetry

Disorganized Swarm
adds a +50% affinity bonus against the Volley Group to match Disorganized Harass, which has an affinity bonus despite being a "bad" tactic; increases the trigger condition when the flank has a good commander from 50% Horse Archers to 65% Horse Archers, thus removing the overlap between Swarm and Disorganized Swarm to match Harass and Disorganized Harass, which have no such overlap

Harass, Disorganized Harass, and Raid
removes prohibition when Horse Archers >= 50% of total troops, which is no longer necessary given that Horse Archers no longer count as Light Cavalry. Combinations of Horse Archers + Light Cavalry now behave like combinations of Archers + Horse Archers and Light Cavalry + Archers.

Disorganized Harass
decreases affinity bonus against the Swarm Group from +100% to +50%

Stand Fast Group
removes the Force Back tactic and splits its effects between Slow Advance and Stand Fast, the latter of which can now fire in any terrain. Heavy Infantry alone can no longer fire a Stand Fast tactic. Slow Advance is now called "Force Back", which I realize may be confusing, but I don't like one of the Stand Fast tactics having "advance" in its name.

localisation
changes the in-game text for [special]_[troop]_offensive and ..._defensive to "[Special Troop] Attack" and "...Defense", respectively (to match the text for regular units), changes some instances of "knights" to "heavy cavalry" (where the thing being referred to is the unit type rather than the cultural retinue), changes instances of "defence" to "defense" (for consistency), removes "Tactic" from the in-game display of tactic names (because it's inclusion seems superfluous)

Corrected oversights and quirks

changes instances of "Martial" to "martial"

Charge On Undefended
moves the condition that the enemy flank be composed of at least 60% Archers from a multiplier to the trigger
(In vanilla this tactic has a nonzero chance to fire even if the enemy flank has fewer than 60% Archers, which seems contrary to intention. There's also a hardcoded bug associated with this tactic, which causes a flank to change tactics daily when the enemy flank is >60% archers.)

Clever Ambush
changes trigger condition to fix apparent transposition of "light_infantry" and "light_cavalry" (compare to Desert Ambush)

Embolon Charge
adds a +120% bonus to Horse Archer offense; decreases bonus to Light Cavalry offense from +180% to +60%

Somewhat arbitrary / personal preference

Set the duration of most tactics to 6 days

Generic Skirmish
weight decreased from 3 to 2

Shieldwall
Light Infantry (as >=20% of total troops) can now trigger Shieldwall only if accompanied by either Heavy Infantry or Pikemen (as >=1% of total troops).

Feint
can now trigger when as few as 1% of total troops are Archers (down from 20%) but only if Heavy Infantry, Pikemen, and Heavy Cavalry are each less than 1% of total troops. It will still trigger if Archers and Light Infantry are each 20% of total troops, regardless of the amount of Heavy Infantry, Pikemen, and Heavy Cavalry.

Harass Swarm
Removed the prohibition that had existed when a flank has no commander and Horse Archers > 35%

Melee Defensive Tactics (Retreat and Ambush, Barrage, Raid)
gives these tactics symmetry that matches the skirmish offensive tactic groups: removes the Archer offensive bonus from Retreat and Ambush, halves the Horse Archer offensive bonus of Barrage, adds an Archer offensive bonus to Raid.
decreases weight-multipliers from 3 to 2
The first weight-multiplier requires the primary light troop type to be at least 30% of total troops.
The second weight-multiplier requires the secondary light troop type to be at least 30% of light troops.
(The second weight-multiplier of Raid is unchanged: it makes sense for it to look at Light Infantry instead of Archers in order to prioritize Advance and Stand Fast tactics for Shock- and Defense-type combinations, respectively.)

Second-order adjustments (needed because of the mod's other changes)

Shieldwall
is now less likely to fire when Light Cavalry and/or Horse Archers are greater than 30% of light troops

Feint
is now less likely to fire when Light Cavalry is at least 50% of light troops

Clever Ambush & Desert Ambush
allows Horse Archers to satisfy the trigger and modifier conditions to correct for the modified form of the tactics triggers, which otherwise would have prevented Horse Archers from triggering these tactics

Elephant Trample & Schiltron Formation
increases weights from 3 to 4 in order to match the increased weights of the cooperative tactics

Other

Moved location scopes (terrain conditions) under leader scope to fix a vanilla bug that prevents terrain checks in provinces with no holdings. In order to get Swarm tactics to fire in provinces with no holdings, a commander must be assigned to the flank or to the enemy flank. Swarm tactics will continue to fire in provinces with at least one holding even when the flank has no commander.


Attached are a version of my ARCEM spreadsheet and flank composition rankings for this mod. The method is described in a thread linked in my signature. There might be errors in the spreadsheet's tactics logic, as I have not double checked against the most recent version of the mod. The spreadsheet and rankings also assume that you're using my "Equus / Homo" retinue composition adjustments mod, but you can change the compositions back to the vanilla versions if you want.
 

Attachments

  • ck2_adjusttactics_mod.zip
    335,3 KB · Views: 0
  • ARCEM_04_figures_ACT.pdf
    2,1 MB · Views: 0
  • ARCEM_0.4_ACT.xlsx
    298,2 KB · Views: 0
Last edited:
  • 1Like
Reactions:
Here are this mod's effects on three notable flank compositions: a generic castle levy and the much-derided Horse Archer and Cataphract retinues (the method for calculating a flank's "average attack per troop" and "average damage absorbed per casualty" is described here). For the values given below, I have neglected the new technology bonuses that affect the likelihood of Generic Skirmish. The values assume that its vanilla weight is 3 and its modded weight is 2. The values also assume level 4 cultural buildings for any flank compositions that include cultural retinues.

the effect on levy tactic probabilities
Commander: 18 Martial
a default castle levy with all generic building upgrades and no cultural buildings has the following composition:
Code:
                 fraction      fraction
UNIT              (total)      (in grp)

Archers             18.9%         46.2%
Light Cavalry       22.0%         53.8%

Heavy Infantry      30.8%         72.7%
Pikemen              9.1%         21.5%
Heavy Cavalry        2.4%          5.8%

Light Infantry      16.8%          N/A


The light troops in this flank are a cooperating pair: Light Cavalry can receive support from Archers in the form of the Volley Harass tactic. But in vanilla, on the first day of skirmish this composition is almost twice as likely to fire an exclusive tactic (either Volley or Harass) than it is to fire the cooperative tactic. With this mod, the flank will fire the cooperative tactic more often than it will fire an exclusive tactic:
Code:
SKIRMISH TACTIC    modded   LC off    A off   LI off    |  vanilla   LC off    A off   LI off
                                                        |
Generic Skirmish     7.9%       0%       0%       0%    |     4.3%       0%       0%       0%
Shieldwall          26.7%       0%    + 60%       0%    |    38.8%       0%    + 60%       0%
                                                        |
Volley              11.9%    -150%    +200%       0%    |    14.5%    -150%    +200%       0%
                                                        |
Harass              17.8%    +200%    - 50%       0%    |    23.0%    +300%    -150%       0%
Volley Harass       35.6%    +120%    + 60%    +120%    |    19.4%    +100%    + 60%    + 80%
                                                        |
avg attack/troop     1.71                               |     1.64
avg dmg_in/casualty  3.08                               |     3.17

And when the exclusive Light Cavalry tactic (Harass) does fire, the inconvenience to Light Cavalry's potential cooperating unit (Archers) is less than in vanilla. NB: Volley's penalty to Light Cavalry offense remains -150% (because Horse Archers rather than Light Cavalry are Archers' potential supporting unit).

If a levy flank were to enter melee with such a composition (in practice, it would be different due to skirmish casualties), it would not hit weight-multipliers for any of the original cooperative tactics either in vanilla or with this mod, so the tactics probabilities would be nearly identical if not for Force Back:
Code:
MELEE TACTIC        modded   HI off    P off   HC off    |  vanilla   HI off    P off   HC off
                                                         |
Raid                  9.6%       0%       0%       0%    |     7.8%       0%       0%       0%
                                                         |
Advance              32.5%    +300%    -150%    - 50%    |    26.5%    +300%    -150%    -150%
Awesome Advance      12.9%    +240%    -180%    + 60%    |     7.8%    +240%    -180%    + 60%
                                                         |
Stand Fast*           9.6%    - 50%    +300%    -150%    |     7.8%    -150%    +300%    -150%
Slow Advance         12.9%    + 60%    +240%    -180%    |     7.8%    + 60%    +240%    -180%
Force Back            N/A      N/A      N/A      N/A     |    26.5%    +160%    +240%    -180%
                                                         |
Powerful Charge       9.6%    -150%    - 50%    +300%    |     7.8%    -150%    -150%    +300%
Overwhelming Charge  12.9%    -180%    + 60%    +240%    |     7.8%    -180%    + 60%    +240%
                                                         |
avg attack/troop      5.88                               |     6.10
avg dmg_in/casualty   2.14                               |     2.12


*See above for a description of changes to the Stand Fast Group
Vanilla conditions: Forest terrain

In vanilla, when Heavy Infantry hits all of the Advance weight-multipliers it also necessarily hits all of the Force Back weight-multipliers. Removing Force Back weakens Heavy Infantry and strengthens Heavy Cavalry. This is a side effect rather than an intention; I don't know whether it makes combat more or less balanced. The modded cooperative tactics are more likely to occur only because their initial weights are greater.


the effect on Horse Archer retinue tactic probabilities
Horse Archer retinue; commander: 18 Martial; terrain: any that allows Swarm tactics
(52% horse archers, 48% light cavalry)

Code:
SKIRMISH TACTIC     modded   HA off   LC off    |  vanilla   HA off   LC off
                                                |
Generic Skirmish     10.8%       0%       0%    |    10.8%       0%       0%
                                                |
Swarm                24.3%    +200%    - 50%    |    36.5%    +100%    -150%
Disorganized Swarm    0.0%    + 50%    - 50%    |    16.2%    + 50%    -150%
Harass Swarm         48.6%    +120%    + 60%    |    36.5%    +120%    + 60%
                                                |
Harass               16.2%    -150%    +200%    |     0.0%    -150%    +300%
                                                |
avg attack/troop      6.48                      |     5.83
avg dmg_in/casualty   4.01                      |     3.82

With this mod, a Horse Archer retinue will fire the cooperative tactic Harass Swarm more frequently than in vanilla. Swarm imparts an increased Horse Archer offensive bonus (+200%) and a decreased Light Cavalry offensive penalty (-50%). The threshold for triggering Disorganized Swarm has been raised. The prohibition against Harass tactics has been removed given that Horse Archer units no longer count as Light Cavalry. The prohibition against Raid has also been removed, which allows this retinue to get a melee tactic other than Wait when fighting on rough terrain that prohibits Retreat and Ambush.

EDIT: a previous version of this mod made special considerations for the Horse Archer retinue that resulted in its firing Harass Swarm 77.1% of the time. In the current version, combinations of Horse Archers + Light Cavalry behave the same way as combinations of Archers + Horse Archers and Light Cavalry + Archers. While Horse Archer units no longer count as Light Cavalry, the Horse Archer retinue is still inconvenienced by being the only retinue that is a combination of two units in the same group (i.e. light troops).


the effect on Cataphract retinue tactic probabilities
Cataphract retinue; commander: Byzantine, Cavalry Leader, 18 Martial; terrain: any that allows Swarm tactics
(60% heavy cavalry, 40% horse archers)

Code:
SKIRMISH TACTIC       modded   HA off    |  vanilla   HA off
                                         |
Generic Skirmish       16.5%       0%    |    16.6%       0%
                                         |
Swarm                  83.5%    +200%    |    55.9%    +100%
Harass Swarm            0.0%    +120%    |    16.6%    +120%
                                         |
Harass                  0.0%    -150%    |    11.0%    -150%
                                         |
avg attack/troop        5.17             |     3.48
avg dmg_in/casualty     4.60             |     5.24

Horse Archer units no longer count as Light Cavalry and so no longer trigger Harass. In mountain terrain (e.g. Anatolia), a pure Cataphract flank will now always fire Generic Skirmish instead of firing Harass a staggering 40% of the time. Swarm imparts an increased Horse Archer offense bonus (+200%).

Code:
MELEE TACTIC          modded   HA off   HC off    |  vanilla   HA off   HC off
                                                  |
Raid                    0.0%       0%       0%    |     9.3%       0%       0%
                                                  |
Powerful Charge        50.0%       0%     300%    |    31.4%       0%     300%
Heroic Counter-Charge   0.0%       0%     360%    |    27.9%       0%     360%
Embolon Charge         50.0%    +120%     240%    |    31.4%       0%     240%
                                                  |
avg attack/troop       26.88                      |    26.16
avg dmg_in/casualty     5.24                      |     5.24

Horse Archer units no longer count as Light Cavalry and so no longer trigger Raid or Heroic Counter-Charge. Embolon Charge now imparts a Horse Archer offense bonus of +120%, and its bonus to LC offense has been decreased from +180% to +60%. If you do want to trigger Heroic Counter-Charge, you'll have to mix in a Cavalry retinue. Using a ratio of Cataphract 4:1 Cavalry will hit all Harass Swarm weight-multipliers in skirmish and won't trigger Raid in melee
 
Last edited:
Here are example retinue-based flank compositions that hit all of the modded cooperative tactic weight-multipliers. They are shown with both their modded and vanilla tactic profiles.

an illustration of improved cooperation between horse archers and light cavalry
Cataphract 4:1 Cavalry; commander: 18 Martial; terrain: any that allows Swarm tactics
total troops: 52% heavy cavalry, 32% horse archers, 16% light cavalry
light troops: 66.7% horse archers, 33.3% light cavalry

Code:
SKIRMISH TACTIC     modded   HA off   LC off    |  vanilla   HA off   LC off
                                                |
Generic Skirmish      7.9%       0%       0%    |    11.0%       0%       0%
                                                |
Swarm                26.7%    +200%    - 50%    |    37.2%    +100%    -150%
Harass Swarm         53.5%    +120%    + 60%    |    37.2%    +120%    + 60%
                                                |
Harass               11.9%    -150%    +200%    |    14.7%    -150%    +300%
                                                |
avg attack/troop      3.85                      |     3.28
avg dmg_in/casualty   5.12                      |     5.25

The description above for the Horse Archer retinue also applies to this composition, but here all the modded weight-multipliers are being hit (my "Equus / Homo" mini-mod changes the ratio in the Horse Archer retinue to HA 160:90 LC, in order to allow it to hit all of this mod's Harass Swarm multipliers). It's worth comparing this composition's average attack per troop and average damage sustained per casualty to those of the pure Cataphract flank shown above.


an illustration of improved cooperation between archers and horse archers
Cataphract 5:6 Light Skirmish; commander: 18 Martial; terrain: any that allows Swarm tactics
total troops: 52.7% light infantry, 16.5% heavy cavalry, 19.8% archers, 11.0% horse archers
light troops: 64.3% archers, 35.7% horse archers

Code:
SKIRMISH TACTIC     modded    A off   HA off    |  vanilla    A off   HA off
                                                |
Generic Skirmish      7.9%       0%       0%    |     6.2%       0%       0%
Shieldwall            0.0%    + 60%       0%    |     6.2%    + 60%       0%
                                                |
Swarm                11.9%    -150%    +200%    |    14.0%    -150%    +100%
Harass Swarm          0.0%    -180%    +120%    |     6.2%    -180%    +120%
                                                |
Volley               26.7%    +200%    - 50%    |    21.0%    +200%    -150%
Swarm Volley         53.5%    +120%    + 60%    |    14.0%    +120%    + 60%
                                                |
Harass                0.0%    - 50%    -150%    |     4.2%    -150%    -150%
Volley Harass         0.0%    + 60%    -180%    |    28.1%    + 60%    -180%
                                                |
avg attack/troop      2.42                      |     1.99
avg dmg_in/casualty   2.54                      |     2.63

So, there's a lot going on here. In vanilla, this composition somehow manages to trigger every available tactic except Feint (which it misses by only three Archers), hobbling the Horse Archers 53.3% of the time and the Archers 24.4% of the time. Let's take a look at the tactics that "shouldn't" be triggered. Shieldwall is going to screw the HC (-50% to their defense). With this mod, LI can no longer trigger Shieldwall unless accompanied by either HI or Pikemen. Harass Swarm is supposed to be a cooperative tactic between HA and LC, but for some reason, in vanilla it requires only HA to fire, and it's going to screw the Archers. Harass and Volley Harass fire for the all too well-known reason that HA, which get screwed by these tactics, count as LC. And for some reason, the vanilla Volley Harass multipliers check for LI rather than LC. They would actually all miss if checking for LC because HA don't count as LC for the purpose of checks against light troops. With this mod, you get the cooperative tactic more often than you get an exclusive tactic, and Volley screws the HA less (only -50% to their offense).


an illustration of improved cooperation between light cavalry and archers
Cavalry 3:2 Light Skirmish; commander: 18 Martial
total troops: 43.2% light infantry, 32.4% light cavalry, 8.1% heavy cavalry, 16.2% archers
light troops: 66.7% light cavalry, 33.3% archers

Code:
SKIRMISH TACTIC     modded   LC off    A off    |  vanilla   LC off    A off
                                                |
Generic Skirmish      7.9%       0%       0%    |     6.6%       0%       0%
Shieldwall            0.0%       0%    + 60%    |     6.6%       0%    + 60%
                                                |
Volley               11.9%    -150%    +200%    |    22.2%    -150%    +200%
                                                |
Harass               26.7%    +200%    - 50%    |    35.1%    +300%    -150%
Volley Harass        53.5%    +120%    + 60%    |    29.6%    +100%    + 60%
                                                |
avg attack/troop      2.90                      |     2.66
avg dmg_in/casualty   2.81                      |     2.84

The description above for the generic levy also applies to this composition, but here the LC fraction is higher in order to show all of the modded Volley Harass weight-multipliers being hit. In the modded version, Shieldwall is not triggered (see above).


in summary
Code:
light troop %:      2/3 HA     2/3  A     2/3 LC
                    1/3 LC     1/3 HA     1/3  A

SKIRMISH TACTIC

Generic Skirmish      7.9%       7.9%       7.9%

Swarm                26.7%      11.9%       0.0%
Harass Swarm         53.5%       0.0%       0.0%

Volley                0.0%      26.7%      11.9%
Swarm Volley          0.0%      53.5%       0.0%

Harass               11.9%       0.0%      26.7%
Volley Harass         0.0%       0.0%      53.5%

Code:
light troop %:      2/3 HA     2/3  A     2/3 LC
                    1/3 LC     1/3 HA     1/3  A

total troop %:         *         P>1%      HI>1%

SKIRMISH TACTIC

Generic Skirmish      7.9%       6.3%       6.3%
Shieldwall            0.0%      21.1%      21.1%

Swarm                26.7%       9.4%       0.0%
Harass Swarm         53.5%       0.0%       0.0%

Volley                0.0%      21.1%       9.4%
Swarm Volley          0.0%      42.2%       0.0%

Harass               11.9%       0.0%      21.1%
Volley Harass         0.0%       0.0%      42.2%


*Other than Generic Skirmish and Inspired Defense,
there is no skirmish defensive tactic that doesn't
rely on Archers.


an illustration of improved cooperation between heavy infantry and heavy cavalry
Shock 5:4 Knight; commander: non-French/German, non-Cavalry Leader, 18 Martial
heavy troops: 62.5% heavy infantry, 37.5% heavy cavalry
light troops: 61.5% light cavalry, 38.5% archers


Vanilla melee tactic symmetry remains mostly intact, having been eroded only by the introduction of the Force Back tactic, which this mod removes:
Code:
MELEE TACTIC        modded   HI off   HC off    |  vanilla   HI off   HC off
                                                |
Advance              29.0%    +300%    - 50%    |    25.4%    +300%    -150%
Awesome Advance      58.1%    +240%    + 60%    |    25.4%    +240%    + 60%
                                                |
Force Back            N/A      N/A      N/A     |    38.0%    +160%    -180%
                                                |
Powerful Charge      12.9%    -150%    +300%    |    11.3%    -150%    +300%
                                                |
avg attack/troop     15.37                      |    11.60
avg dmg_in/casualty   3.64                      |     3.58

The fact that vanilla allows Heavy Infantry alone to trigger Force Back improves its average performance against Heavy Cavalry by giving it access to a tactic that has an affinity for Charge instead of limiting it to a tactics group against which Charge has an affinity, but it also cripples Heavy Cavalry offense in compositions such as this one.

This composition also has a notable skirmish tactics profile:
Code:
SKIRMISH TACTIC     modded   LC def   HC def    |  vanilla   LC def   HC def
                                                |
Generic Skirmish      6.3%       0%       0%    |     5.3%       0%       0%
Shieldwall           21.1%    - 50%    - 50%    |    48.1%    - 50%    - 50%
                                                |
                             LC off    A off    |            LC off    A off
                                                |
Volley                9.4%    -150%    +200%    |    18.0%    -150%    +200%
                                                |
Harass               21.1%    +200%    - 50%    |    28.5%    +300%    -150%
Volley Harass        42.2%    +120%    + 60%    |     0.0%    +100%    + 60%
                                                |
avg attack/troop      1.37                      |     1.28
avg dmg_in/casualty   3.98                      |     4.08

In vanilla, this composition doesn't fire the relevant cooperative tactic (Volley Harass) because its trigger was changed with version 2.5.x to require Light Infantry. This mod restores the pre-2.5.x trigger condition and introduces new Shieldwall weight-multipliers that decrease its likelihood when at least 30% of light troops are Light Cavalry.


an illustration of modified cooperation between pikemen and heavy infantry
Defense 3:2 Shock; commander: 18 Martial
heavy troops: 65.2% pikemen, 34.8% heavy infantry

It would be inaccurate to call this mod's changes to the interaction between these two units an improvement to their cooperation because the removal of Force Back actually lowers this composition's average melee attack per troop (primarily by affecting HI). The introduction of Force Back made combinations of P + HI much more viable than combinations of HI + HC or HC + P, and its removal restores the original symmetry:
Code:
MELEE TACTIC        modded    P off   HI off    |  vanilla*    P off   HI off
                                                |
Advance              12.9%    -150%    +300%    |    11.3%    -150%    +300%
                                                |
Stand Fast*          29.0%    +300%    - 50%    |    25.4%    +300%    -150%
Slow Advance         58.1%    +240%    + 60%    |    25.4%    +240%    + 60%
Force Back            N/A      N/A      N/A     |    38.0%    +240%    +160%
                                                |
avg attack/troop     11.07                      |    11.48
avg dmg_in/casualty   3.90                      |     3.90


*Vanilla conditions: Forest terrain
See above for comments on changes to the Stand Fast group.

Going into skirmish, both in vanilla and with this mod, this composition has a 94.9% chance to fire Shieldwall.


an illustration of improved cooperation between heavy cavalry and pikemen
Knight: Defense: Light Skirmish (3:1:1); commander: non-French/German, non-Cavalry Leader, 18 Martial
(heavy troops: 64.3% heavy cavalry, 35.7% pikemen)


In vanilla, this composition does not have enough Pikemen to trigger Force Back (it requires 25% of total troops), and in Forest terrain it retains the original probability profile, which would be mirrored in each of the two examples above if you were to suppress Force Back:
Code:
MELEE TACTIC        modded   HC off    P off    |  vanilla*  HC off    P off
                                                |
Stand Fast           12.9%    -150%    +300%    |    18.2%    -150%    +300%
                                                |
Powerful Charge      29.0%    +300%    - 50%    |    40.9%    +300%    -150%
Overwhelming Charge  58.1%    +240%    + 60%    |    40.9%    +240%    + 60%
                                                |
avg attack/troop     12.82                      |    12.24
avg dmg_in/casualty   2.43                      |     2.43


*Vanilla conditions: Forest terrain

In the modded version, Stand Fast can fire in any terrain (to make up for the removal of Force Back), so I've assumed Forest terrain for the vanilla probabilities, even though this composition performs better on flat terrain, where it's limited to the two Charge tactics.


in summary
Code:
heavy troop %:      2/3 HI     2/3  P     2/3 HC
                    1/3 HC     1/3 HI     1/3  P

MELEE TACTIC

Advance              29.0%      12.9%       0.0%
Awesome Advance      58.1%       0.0%       0.0%

Stand Fast            0.0%      29.0%      12.9%
Force Back*           0.0%      58.1%       0.0%

Powerful Charge      12.9%       0.0%      29.0%
Overwhelming Charge   0.0%       0.0%      58.1%


*See above for comments on changes to the Stand Fast group.

Code:
heavy troop %:      2/3 HI     2/3  P     2/3 HC
                    1/3 HC     1/3 HI     1/3  P

total troop %:      20% LC     20%  A     20% HA

MELEE TACTIC

Retreat and Ambush*   0.0%       0.0%      11.4%
Barrage               0.0%      11.4%       0.0%
Raid                 11.4%       0.0%       0.0%

Advance              25.7%      11.4%       0.0%
Awesome Advance      51.4%       0.0%       0.0%

Stand Fast            0.0%      25.7%      11.4%
Force Back*           0.0%      51.4%       0.0%

Powerful Charge      11.4%       0.0%      25.7%
Overwhelming Charge   0.0%       0.0%      51.4%


*Retreat and Ambush requires an Altaic commander.
See above for comments on changes to the Stand Fast group.
 
Last edited:
Event Troops

Mongols
commander: 18 Martial; terrain: any that allows Swarm tactics
total troops: 50% light cavalry, 40.9% horse archers, 9.1% heavy cavalry
light troops: 55% light cavalry, 45% horse archers

Code:
SKIRMISH TACTIC     modded   LC off   HA off    |  vanilla   LC off   HA off
                                                |
Generic Skirmish     12.9%       0%       0%    |    11.4%       0%       0%
                                                |
Swarm                19.4%    - 50%    +200%    |    38.6%    -150%    +100%
Harass Swarm         38.7%    + 60%    +120%    |    38.6%    + 60%    +120%
                                                |
Harass               29.0%    +200%    -150%    |     0.0%    +300%    -150%
Disorganized Harass   0.0%    + 50%    -150%    |    11.4%    +100%    -150%
                                                |
avg attack/troop      4.32                      |     3.84
avg dmg_in/casualty   4.13                      |     4.22

Vanilla interprets this composition as 90.9% LC, so it fires Disorganized Harass instead of Harass. On rough terrain (Forest, Mountain, Jungle), Mongol event troops will now fire Harass 60% of the time instead of Disorganized Harass 50% of the time.

more to come: Aztecs, Turkic Conquerors, etc.
 
Last edited:
After comparing old versions of the vanilla combat tactics file, I made a major update that restores logical symmetry between skirmish tactics groups. I will confess to having intentionally neglected any concerns of overall balance during this update, instead focusing on the coherence of the sansukumi-ken game. Thus, I would appreciate feedback from anyone using this mod. If any balancing is necessary, I prefer to handle that by modifying the base stats of units rather than through breaking the symmetry of tactics logic.

The ken game, which is expressed through the offensive bonuses imparted by tactical affinities, is well-known and easy enough to visualize:

Skirmish_ken_small.png

Melee_ken_small.png

But it's worth noting that the direction of affinity for an enemy tactic is also the direction of support to a friendly troop type. Thus, the "rule of two" should be expressed in a particular way: Light Cavalry offer support to Horse Archers during the Harass Swarm tactic, Horse Archers offer support to Archers during the Swarm Volley tactic, Archers offer support to Light Cavalry during the Volley Harass tactic, Heavy Cavalry offer support to Heavy Infantry during the Awesome Advance tactic, Heavy Infantry offer support to Pikemen during the Slow Advance tactic, and Pikemen offer support to Heavy Cavalry during the Overwhelming Charge tactic. When a unit acts in a supporting role like this, the cooperative tactic imparts to it an offensive bonus against the tactic group to which it is typically vulnerable (i.e. when it fires its exclusive tactic). Thus, pairing unit types should allow you to hedge your bets or redirect your flank's focus. For instance, if France is at war with Scotland, it should make sense for it to pair its Knights with Heavy Infantry in order to trigger Advance tactics more often than Charge tactics and thus perform better against a Schiltron Formation (a Stand Fast tactic). But through its onerous penalties and inconsistent triggers and weight-multipliers, vanilla tactics logic discourages these pairings, leaving the player to prefer flanks with a single light troop type and a single heavy troop type. See the example flank compositions above.
 
Last edited:
In case anyone is interested and because changes to combat tactics are sometimes not well-described in patch notes, I'll share what I learned when looking at old versions of the combat tactics file. Since v 2.0.x (Sons of Abraham), the last time that the original symmetry of the ken game was truly intact, there have been four major changes to combat tactics.


v 2.0.x (Sons of Abraham)
symmetry of the ken game is intact


The triggers and weight-multiplier conditions of offensive tactics largely followed the basic form:
Code:
                      Trigger          Multiplier 1   Multiplier 2   Multiplier 3
                      total troops     in group

exclusive tactic      primary ≥ 1%     primary ≥70%   primary ≥60%   primary ≥50%
                                        8 Martial     12 Martial     16 Martial

cooperative tactic    primary ≥ 1%     primary ≥70%   primary ≥60%   primary ≥50%
                      support ≥ 1%     support ≥30%   support ≥30%   support ≥30%
                                        8 Martial     12 Martial     16 Martial

                                       -----descending troop fraction----------->
                                       -----ascending commander martial--------->

The pairing of descending troop fraction and ascending commander martial makes sense according to the following interpretation: it takes a more skilled commander to encourage good tactics for units whose concentrations are diluted by the presence of other unit types. But there is a problem with the cooperative tactic's first multiplier: it is extremely unlikely that a flank's light troops or heavy troops will be made up of exactly 70% of one unit and 30% of another unit, making this multiplier vanishingly unlikely. Thus, the best that you could hope for from a cooperative tactic is that it will occur as often as an exclusive tactic (e.g. when A >60% and HA >30% of light troops, Swarm Volley would fire as often as Volley because the initial weight of each would get multiplied twice). Whereas, it would be possible to compose a flank such that a unit's exclusive tactic would fire more often than a cooperative tactic (e.g. when A >70% Volley's initial weight would get multiplied three times, and it would be impossible to hit any Swarm Volley weight-multipliers). The mod retains this structure but decreases the troop fractions in the cooperative tactic weight-multiplier conditions to the values present in the vanilla Schiltron tactic (i.e. 60/30, 50/30, 40/20).

Logical symmetry between offensive skirmish tactics existed but with two notable exceptions: Harass required only 0.1% Light Cavalry to fire (instead of 1%) and Harass Swarm required only Horse Archers to fire (instead of both Horse Archers and Light Cavalry). My interpretation is that both of these were errors. The Harass trigger condition was not "fixed" until 2.5.x (when it was raised to 5% rather than 1%), and the Harass Swarm trigger condition remains "unfixed" in 2.8.x. (All exclusive tactics imparted +300% to their associated unit's offense, and all cooperative tactics imparted +240% to the primary unit's offense.)
Code:
TACTIC          Trigger     Multi 1     Multi 2     Multi 3
                (total)     (light)     (light)     (light)

Swarm            HA≥ 1%      HA≥70%      HA≥60%      HA≥50%
Harass Swarm     HA≥ 1%      HA≥70%      HA≥60%      HA≥50%
                             LC≥30%      LC≥30%      LC≥30%

Volley            A≥ 1%       A≥70%       A≥60%       A≥50%
Swarm Volley      A≥ 1%       A≥70%       A≥60%       A≥50%
                 HA≥ 1%      HA≥30%      HA≥30%      HA≥30%

Harass           LC≥ 0.1%    LC≥70%      LC≥60%      LC≥50%
Volley Harass    LC≥ 1%      LC≥70%      LC≥60%      LC≥50%
                  A≥ 1%       A≥30%       A≥30%       A≥30%
Most of these trigger and weight-multiplier conditions have been significantly reworked by subsequent updates.

Offensive melee tactics were truer to the basic form shown above than the skirmish tactics were, with the exceptions that the Pikemen exclusive tactic Stand Fast can fire only in Forest terrain and the weight-multipliers of tactics involving Heavy Cavalry require higher commander martial:
Code:
TACTIC              Trigger     Multi 1     Multi 2     Multi 3
                    (total)     (heavy)     (heavy)     (heavy)

Advance              HI≥ 1%      HI≥70%      HI≥60%      HI≥50%
Awesome Advance*     HI≥ 1%      HI≥70%      HI≥60%      HI≥50%
                     HC≥ 1%      HC≥30%      HC≥30%      HC≥30%

Stand Fast*           P≥ 1%       P≥70%       P≥60%       P≥50%
Slow Advance          P≥ 1%       P≥70%       P≥60%       P≥50%
                     HI≥ 1%      HI≥30%      HI≥30%      HI≥30%

Powerful Charge      HC≥ 1%      HC≥70%      HC≥60%      HC≥50%
Overwhelming Charge* HC≥ 1%      HC≥70%      HC≥60%      HC≥50%
                      P≥ 1%       P≥30%       P≥30%       P≥30%

*Stand Fast can fire only in Forest terrain.
The weight-multipliers of tactics involving Heavy Cavalry require
commander martial of 9, 13, 17 instead of 8, 12, 16.
These trigger and weight-multiplier conditions have remained unchanged since 2.0.x.


v 2.1.x (Rajas of India)
symmetry of the ken game gets eroded by the introduction of the Force Back tactic and the "Special Troops" category (Horse Archers count as Light Cavalry)


Camel Cavalry and War Elephants were introduced. In order to accommodate them, the Horse Archer entry in defines.lua was replaced with "Special Troops". A separate special troops text file, in which the statistics for Horse Archers, Camel Cavalry, and War Elephants are defined, was added. (I think this has to do with how many unit types the game can handle.) Each special troop was also given a "base type". (I don't know what "base_type" does other than qualify that special troop for the combat tactics of the base type. If you know of another way that it functions, then please let me know.) Camel Cavalry were considered a type of Light Cavalry (which makes sense). War Elephants were given "base_type = heavy_cavalry". The intention seems to have been to make them a form of Heavy Cavalry, but Heavy Cavalry aren't called "heavy_cavalry" but "knights" (at least in the combat tactics file), so my interpretation is that this was an error (similar to a later error that will pop up in an update to the combat tactics file). It remains "unfixed" in v 2.8.x. This error is good in that it prevents War Elephants from firing Heavy Cavalry tactics, but it's bad in that it seems to mess up calculations of a flank's composition. And finally (and notoriously), Horse Archers were considered a form of Light Cavalry, which (as you can tell from the affinities diagram above) makes as much sense as Paper being considered a form of Scissors in a game of Rock-Paper-Scissors. With v 2.1, this patch note was offered: "New unit type system allowing for more flexible unit types, including War Elephants, Camel Warriors and Horse Archers". With 2.1.2, this patch note was given: "Fixed error in troop amount trigger causing horse archers to get elephant tactics." I don't know what this error was (I don't think there's a rollback available between 2.1 and 2.1.2), but I'm curious about it.

Logic for Camel Cavalry was added to the combat tactics file. Given that Camel Cavalry count as Light Cavalry in the special troops file, I believe that any checks for Camel Cavalry against total troops that follow what I have elsewhere called the "naked" form are redundant, but I haven't tested that assumption. The following War Elephant tactics were introduced: Gray Wall (a defensive skirmish tactic), Crushing Charge (an offensive skirmish tactic), and Force Back (an offensive melee tactic in the Stand Fast group). I believe that they aren't mentioned in the patch notes. Even though Force Back is a War Elephant tactic, it doesn't require them in order to fire. Its trigger conditions are met when either Heavy Infantry or Pikemen are at least 25% of total troops, and it increases in likelihood in a fashion similar to that of Slow Advance (shown above), but with an OR operator instead of an AND operator, meaning that all of its weight-multipliers are hit when Heavy Infantry is just 30% of heavy troops (if your commander has at least 16 martial). This improves Heavy Infantry's average performance against Heavy Cavalry by giving it access to a tactic that has an affinity for Charge instead of limiting it to a tactics group against which Charge has an affinity, but it also breaks the symmetry of the ken game as described above. I don't know whether this was done for reasons of balance, but my mod removes it and moves the War Elephant trigger, multipliers, and offensive bonus into Slow Advance, which it renames "Force Back" (because I don't like one of the Stand Fast tactics having "advance" in its name). In vanilla, the only change that has been made to Force Back since its introduction was to change the penalty that it imparts to Light Cavalry.


v 2.2.x (Charlemagne)
Volley bonus decreased, skirmish defensive tactics changed


The developers gave us some decent patch notes for these changes, which I've listed below and supplemented with my own comments in square brackets:

"Balanced values of unit types across the board."
Code:
                      2.1.x      2.2.x
HA Maintenance          2          4

A  Melee defense        2          1
A  Pursue defense       3          2

LC Morale               4          3
LC Maintenance          2          3
CC Maintenance          2          3
LC Skirmish attack      1.5        2.5
LC Melee attack         4.5        3

HI Morale               5          4
HI Maintenance          2          3
HI Skirmish defense     5          3
HI Pursue attack        2          1
HI Pursue defense       2          1

P  Skirmish defense     5          3
P  Melee defense        8          6

HC Maintenance          4          6
HC Pursue attack        8          6
HC Pursue defense       5          4

LI Morale               3          2
LI Maintenance          1          0.7
LI Skirmish attack      1          2
LI Skirmish defense     3          2.5
LI Melee defense        3          2

"Reduced Archer [offensive] bonus during Volley tactic (from +300% to +200%)."
[Archer skirmish attack was left unchanged, but the offensive bonus from its exclusive skirmish tactic was decreased. The offensive bonuses of the other exclusive skirmish tactics (Swarm and Harass) were left at +300% (though the Swarm bonus would be decreased to +100% in v 2.4.x). The mod retains the decreased Volley bonus and sets the Swarm and Harass bonuses to +200% to match it.]

"Lowered Massive Longbow Volley tactic bonus to Archer [offense] to +350% (from +420%) and reduced the two affinities bonus [against the Harass and Charge groups] to +100% (from +300%)."
[The mod retains these changes.]

"Shieldwall tactic is now possible if a flank has at least 20% of either Light Infantry, Heavy Infantry, or Pikemen and at least 20% Archers."
[Previously, it required only Heavy Infantry. With v 2.5.x, the Archer fraction is decreased to 1%. The mod requires that Light Infantry be accompanied by either Heavy Infantry or Pikemen.]

"Feint tactic is now a Light Infantry tactic [instead of a Heavy Infantry tactic]. It is possible with at least 20% Light Infantry [instead of 10% Heavy Infantry] and at least 20% Archers [up from 10% Archers] and gives bonus to Light Infantry and Archers [instead of Heavy Infantry and Archers] and a [-50%] penalty to Heavy Infantry [offense and defense] and Heavy Cavalry [offense and defense]."
[The mod allows Feint to fire with as few as 1% Archers but only if Heavy Infantry, Pikemen, and Heavy Cavalry are each less than 1%. It will fire normally when the vanilla conditions are met, regardless of the presence of Heavy Infantry, Pikemen, and Heavy Cavalry. This is to make up for the fact that the mod prohibits a flank composed entirely of Light Infantry and Archers from firing Shieldwall.]


v 2.4.x (Horse Lords)
Horse Archers, Archers, and Light Infantry nerfed; skirmish offensive bonuses decreased; attempt to mitigate the effect of Horse Archers counting as Light Cavalry


We get some patch notes for the changes in this update, too. I'll put them in quotes.


"Re-balanced troop stats"

Code:
                      2.3.x      2.4.x

HA Skirmish defense     4          2
HA Melee attack         3          1
HA Melee defense        4          2

A  Maintenance          1          2
A  Skirmish attack      5          2
A  Skirmish defense     3          1

LC Skirmish attack      2.5        2

HI Skirmish defense     3          4

LI Skirmish attack      2          1
LI Skirmish defense     2.5        2
LI Melee attack         3          1
LI Pursue attack        3          2
LI Pursue defense       3          2
Though Horse Archers, Archers, and Light Infantry were all nerfed, Archers were hit the hardest: not only were their skirmish attack and defense values more than halved but also their maintenance was doubled, resulting in a huge decrease in their cost-effectiveness. The current version of the mod does not re-balance unit stats (other than those of Camel Cavalry, which were made obviously overpowered in v 2.8.x), though I might attempt it in a future update.


Decreased the offensive bonuses imparted by tactics that involve Horse Archers

Skirmish Tactics (Swarm, Harass Swarm, and Swarm Volley)
Code:
                          2.3.x        |         2.4.x
                                       |
                    HA off     A off   |   HA off     A off
                                       |
Swarm                +300%       N/A   |    +100%       N/A
Harass Swarm         +240%       N/A   |    +120%       N/A
                                       |
Swarm Volley           N/A     +240%   |      N/A     +120%
Along with the change to Volley in v 2.2.x, the change to Swarm in v 2.4.x produced an asymmetry in the bonuses imparted by the exclusive skirmish tactics (Swarm: HA +100%, Volley: A +200%, Harass: LC +300%), which remains in v 2.8.x. It also made the HA + LC cooperative tactic (Harass Swarm) impart a greater offensive bonus to Horse Archers than their exclusive tactic (Swarm) does. While v 2.4.x halved the bonuses of the two skirmish cooperative tactics shown above, Volley Harass continued to impart a +240% bonus to Light Cavalry offense (which was lowered in v 2.5.x not to +120% but to +100%). The mod retains the changes to the cooperative tactics but sets the offensive bonuses of all three exclusive skirmish tactics to +200%.

"Rescaled random weights on Retreat and Ambush tactic."
Code:
                   2.3.x         2.4.x

weight               3             2

multiplier 1
factor               3             2
condition       martial≥12    martial≥10

multiplier 2
factor              N/A            2
conditions          N/A       martial≥ 4
                    N/A           HA ≥40% of light troops
I don't know why the minimum commander martial in the newly added weight-multiplier is so low. As long as a flank has a commander and more than 40% of its light troops are Horse Archers, it should hit the multiplier because it's very unlikely (though maybe the AI is dumb enough) to have a commander with less than 4 martial. The mod uses values of 12 and 8.

Decreased offensive bonuses imparted by Retreat and Ambush:
Code:
                              2.3.x            |             2.4.x
                                               |
                    HA off    A off   LC off   |   HA off    A off   LC off
                                               |
Retreat and Ambush   +420%    +180%    +240%   |    +200%    +100%    +120%


Attempted Mitigation of the Effect of Horse Archers Counting as Light Cavalry

For the Light Cavalry tactics Harass and Raid, the condition that the flank have fewer than 50% Horse Archers was introduced. I believe that these changes are not mentioned in the patch notes. This seems to have been an effort to mitigate the effect of Horse Archers counting as Light Cavalry. The prohibiting condition is true of a flank that's composed entirely of Horse Archer retinues but just barely (52% HA). So if you drop below that, then you could again fire Harass for -150% to HA offense. But this doesn't help the Cataphract retinue because it's only 40% HA, so even though it has 0% LC it's eligible for Harass. When fighting in the mountains of Anatolia, a flank composed entirely of Cataphract retinues will fire Harass 40% of the time. And since the 50% HA prohibition also applies to Raid, if you're playing as Altaic and get unlucky by having to fight on rough terrain (Forest, Jungle, Mountain) and make it to melee while still having over 50% HA, then you'll be ineligible for both Retreat & Ambush and Raid (the latter of which boosts LC without penalizing HA) and instead fire Wait. The upshot is that the 50% condition is an inadequate fix for the way that the introduction of “special troops” screwed up the skirmish Rock(Archers)-Paper(Horse Archers)-Scissors(Light Cavalry) game. Early versions of this mod tried to fix Horse Archers by changing their "base_type" in the special troops file from "light_cavalry" to "special_troops". That prevented them from firing Light Cavalry tactics but also seemed to screw up the calculation of troop fractions for the purpose of determining tactics probabilities. The current version of this mod prevents Horse Archers from firing Light Cavalry tactics by changing the form of the tactics trigger conditions.


Corrected Errors and Omissions

The patch notes mention having "fixed a minor error in the tactics script", which I assume refers to Feint, which had been affected by an error in its bonuses and penalties section that referred to the Heavy Cavalry unit as "heavy_cavalry" instead of "knights". This error had existed since 2.2.1. Compare it to the "base_type = heavy_cavalry" error for War Elephants in the special_troops file, which has existed since 2.1.x.

The patch notes say, "Now clever_ambush_tactic give horse archer offensive bonus." Clever Ambush had been affected by an error in its bonus to Horse Archer offense: it read "horse_archers = 1.2" instead of "horse_archers_offensive = 1.2".

Inspired Defense "now also gives +150% defensive bonus to War Elephants."

Religious Fervor "now also gives +150% offensive bonus to War Elephants."


Changes to War Elephant tactics

"Rescaled the random weights of the Crushing Charge tactic [and made it] unavailable before 10 days of combat."
Code:
                     2.3.x        2.4.x

multiplier 1
factor                10            3
condition            WE≥6%        WE≥4%

multiplier 2
factor                10            3
condition            WE≥4%        WE≥3%

multiplier 3
factor                10            3

"Added Elephant Trample tactic (melee phase)."
This is a tactic in the Advance group (i.e. the group of tactics usually tied to Heavy Infantry). Unlike Force Back (the elephant tactic in the Stand Fast group, which can be triggered by Pikemen or Heavy Infantry), Elephant Trample can be triggered only by War Elephants. It currently confers offensive bonuses to War Elephants, Heavy Infantry, Pikemen, Heavy Cavalry, and Light Cavalry (whereas Force Back confers a penalty to Heavy Cavalry offense and no bonus to Light Cavalry offense), but it originally conferred a penalty to Light Cavalry offense. The weight-multipliers of Elephant Trample (which use an OR operator) are identical to those of Force Back except that they can be satisfied also when Heavy Cavalry are at least 25% of total troops. Whereas Force Back is consistent with other Stand Fast tactics in conferring a penalty to the non-supporting unit (i.e. Heavy Cavalry), Elephant Trample is inconsistent with the two main Advance tactics in that it confers a bonus instead of a penalty to the non-supporting unit (i.e. Pikemen).


v 2.5.x (Conclave)
coming later
 
Last edited:
I believe there is a problem with using "base_type = special_troops" (as previous versions of this mod did). It seems to cause the unit type to be improperly accounted for during calculations of the flank's composition. This affected Horse Archers and War Elephants in previous versions (prior to 0.8) of the mod. It also affects War Elephants in vanilla because "base_type = heavy_cavalry" behaves the same way; the code should read "base_type = knights". With version 0.8, I have reverted Horse Archers to "base_type = light_cavalry", changed War Elephants to "base_type = knights", and changed the form of all tactics triggers from a "naked" check to a bracketed check against total troops. I believe that things are now working as I had envisioned, but if you notice any discrepancies between the tactics probabilities that I report above and what you actually encounter in the game, then please let me know.

EDIT: In case anyone actually reads this and is curious about the details, I was running SBI: Def: LS (8:2:1) in my recent India game using this mod and my retinue composition mod (56.9% Archers, 19.6% Pikemen, 15.7% Light Infantry, 7.8% War Elephants). I had calculated that this flank should have a 97.8% chance to fire Gray Wall at the beginning of skirmish, but I was getting Gray Wall 77.5%, Shieldwall 15.5%, Feint 5.1%, and Generic Skirmish 1.7%. At first I thought that there was a problem with the way that I had modded the Feint and Shieldwall triggers, but I got the same probabilities in vanilla, which led me to guess that the War Elephants weren't being properly counted, or more precisely that the flank was seen as having higher percentages of pikemen and light infantry than it actually did. When I changed the War Elephants entry in the special troops file to "base_type = knights", I got the expected chance of Gray Wall, but this causes heavy cavalry tactics to fire during melee, unless the "naked" troop check ("knights = 0.01") is replaced by a bracketed check ("troops = { who = knights value = 0.01}").
 
Last edited:
I have updated this mod for v 3.0 to accommodate the new "Call to Glory" tactics and "Honorable Combat" modifier, the latter of which disallows the ambush tactics. I changed all of the troop checks in the Call to Glory tactics triggers to the the bracketed form and changed several instances of checking Light Infantry against "light_troops" (toward which they don't count) to making them check against total troops.

Updated to allow an Outremer commander to fire Couched Lance Charge.
 
Last edited:
This was an interesting read. Archers do seem to have been overnerfed. It never rains, but it pours, that seems to be Paradox's approach to game balance. Sort of like chiropractic.

Personally, I feel Heavy Infantry is too strong; rather, Advance tactics feel too strong, maybe not because of their stats (though they are quite solid), but because most armies tend to have a lot of them, because they are castle holding's main unit. Flanks that get Advance tend to do a lot more damage than others, at least in my experience.

This game's combat system has a lot of potential, but it feels.. dunno, sloppy, or not fully/properly developed, as your observations demonstrate.

Might try to tweak stuff myself; I already did, in fact (slightly reduced HI defense in skirmish and melee, increased Archer attack in skirmish). Thing is, once I start changing things, I sort of get carried away, thinking: 'ok, so I did this.. but maybe now another troop type is too strong/weak compared to the things I changed' , and so on.

I'm very interested in your future updates, cheerio.
 
Personally, I feel Heavy Infantry is too strong; rather, Advance tactics feel too strong, maybe not because of their stats (though they are quite solid), but because most armies tend to have a lot of them, because they are castle holding's main unit. Flanks that get Advance tend to do a lot more damage than others, at least in my experience.

When it comes to Heavy Infantry, I think that there are two important points: (1) like you said, Heavy Infantry are the most numerous unit provided by a castle holding (neglecting cultural buildings), and (2) since 2.1.x (Rajas of India) Heavy Infantry alone have split tactics: they can fire and benefit from both Advance and Force Back.

It is possible that these two things are connected in the following way (though I haven't seen this point made elsewhere and I'm just speculating):

Force Back (a tactic in the Stand Fast group) was introduced as an "elephant tactic", but Pikemen or Heavy Infantry alone can trigger it, and they both benefit from it. Heavy Infantry alone will trigger Advance 50% of the time and Force Back 50% of the time. This makes Heavy Infantry more versatile than Pikemen and Heavy Cavalry, which, unless paired with another unit, are each limited to their typical tactics group. When Heavy Infantry fire Advance, they get an affinity bonus against Stand Fast tactics (Pikemen); when they fire Force Back they get an affinity bonus against Charge tactics (Heavy Cavalry). This may have been a deliberate design choice to diversify the tactics of a castle levy. Without Force Back, in non-Forest terrain a fully upgraded castle levy (neglecting cultural buildings) would be 52.2% likely to fire an Advance tactic, but with Force Back it is equally likely (37.2%) to fire Advance and Stand Fast tactics.

In devising this mod, I took the somewhat dogmatic approach of making the logic of the different tactics groups symmetrical and consistent (like they used to be) despite the fact that in most armies there will be an imbalance between the troop types that trigger them. I have believed that to be a potential shortcoming of the mod, but I'd be interested in hearing what other people think.
 
Thing is, it'd be quite an undertaking to fully revamp the tactics system in order to, as you say, account for the differences in unit numbers.

Your mod is already a great improvement over vanilla.

It's a numbers thing. The numbers of Heavy Infantry in an army, their very strong stats, the fact that the tactics system favours them due to these two things. Because of how tactics work and how bonuses are applied, +300% attack for Heavy Infantry (Advance) can trample through most tactics; plus, the fact that tactics carry attack and defense maluses is also a big deal. A flank that triggers Charge against a flank with Advance might still (despite the affinity) have less attack value than a flank with Advance, because Charge nerfs Heavy Infantry to the ground.

The only solution would be a full revamp, which takes into account average levy compositions, unit stats, ecc. Instead of ridiculously high bonuses and maluses (and affinities), there should be more moderate bonuses without maluses.

Very hard to balance correctly, tbh.
 
Can you post it as a download from this site..I don't particularly like suscribing to Steam itself for mods. The biggest reason is their automatic downloads for other games like Fallout 4 and Skyrim which can screw up my heavily modded games so I play with the Steam client offline all of the time.
 
Can you post it as a download from this site..I don't particularly like suscribing to Steam itself for mods. The biggest reason is their automatic downloads for other games like Fallout 4 and Skyrim which can screw up my heavily modded games so I play with the Steam client offline all of the time.
EDIT: moved direct download to the original post
 
Last edited:
Thanks! It's greatly appreciated! :)
 
what if I use Knight : Shock : Defence (3 : 1 : 1) ?

-> Let say I'm a German just inherited Byzantium Empire? How do I mix between my already pre-existed Knight and Cataphract?
 
Last edited:
what if I use Knight : Shock : Defence (3 : 1 : 1) ?
That composition shouldn't perform much differently than it does in vanilla. The biggest difference is that during skirmish it will be eligible for Volley Harass. During melee it will fire mostly the same tactics but at slightly different percentages, though it will also fire Stand Fast because I've allowed that tactic to fire on any terrain. Since it has a combination of all three types of heavy troop, I wouldn't consider it the most "efficient" composition. With this mod, firing tactics in all three tactics groups still means that you are always disadvantaging one of your troop types. The consolation of such a composition is that it also gives you a more diverse array of tactical affinity bonuses. Personally, I would aim for something more like Knight: Defense : Light Skirmish (9:3:2) because (like the composition you mention) it also won't fire Shieldwall in skirmish, but (unlike the composition you mention) it strongly commits to the Charge group in melee. I might update this post later with the tactics probabilities.

-> Let say I'm a German just inherited Byzantium Empire? How do I mix between my already pre-existed Knight and Cataphract?
Cataphract 2:1 Knight should be the best composition
 
Knight: Defense : Light Skirmish (9:3:2) because (like the composition you mention) it also won't fire Shieldwall in skirmish, but (unlike the composition you mention) it strongly commits to the Charge group in melee

I smell Alexander formation over there. Anyway, I always interest in combine arm warfare and i wish i can do the same in ck2.

how do u suggest for cataphract, calvary, defense, light skirmish? I want to break the morale fast in and put the most damage in pursuit phase.
 
In volley_tactic,
Code:
NOT = {
            AND = {
                flank_has_leader = yes
                leader = {
                    OR = {
                        culture = english
                        culture = welsh
                    }
                }
            }
            AND = {
                troops = {
                    who = archers
                    value = 0.4
                }
                troops = {
                    who = war_elephants
                    value = 0.025
                }
            }
        }
The check will be true so long as one of the sub curly braces is false, even if the other is true, I think the "NOT" at the beginning should be changed to "NOR".

Great works!