• Crusader Kings II Expansion Subscription

    Subscribe to the CK II Expansion and enjoy unlimited access to 13 major expansions and more!


  • Crusader Kings III Available Now!

    The realm rejoices as Paradox Interactive announces the launch of Crusader Kings III, the latest entry in the publisher’s grand strategy role-playing game franchise. Advisors may now jockey for positions of influence and adversaries should save their schemes for another day, because on this day Crusader Kings III can be purchased on Steam, the Paradox Store, and other major online retailers.


    Real Strategy Requires Cunning

djconklin

Colonel
38 Badges
Dec 31, 2002
1.156
19
Visit site
  • Stellaris - Path to Destruction bundle
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • 500k Club
  • Pride of Nations
  • Europa Universalis IV: Common Sense
  • Europa Universalis IV: Mare Nostrum
  • Stellaris
  • Hearts of Iron IV: Cadet
  • Stellaris: Leviathans Story Pack
  • Victoria 2
  • Europa Universalis IV: Mandate of Heaven
  • Europa Universalis IV: Third Rome
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Synthetic Dawn
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • For the Motherland
  • Europa Universalis III
  • Europa Universalis III: Chronicles
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For The Glory
  • Darkest Hour
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Heir to the Throne
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Europa Universalis IV: Res Publica
  • Victoria: Revolutions
  • Semper Fi
Some mods let you have more than 4 brigades/division.

  1. How and what do I edit in tfh (need specific files) to do that?
  2. Would it affect current saved games?
 

Paglia

a.k.a. Asafetida & Otto Steiner (WoT)
34 Badges
Dec 29, 2010
6.419
698
forum.paradoxplaza.com
  • Crusader Kings II
  • Semper Fi
  • Magicka
  • Heir to the Throne
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Divine Wind
  • Europa Universalis III Complete
  • Europa Universalis III: Chronicles
  • Europa Universalis III
  • Dungeonland
  • Deus Vult
  • Cities in Motion
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Steel Division: Normand 44 Sign-up
  • Imperator: Rome Sign Up
  • Steel Division: Normandy 44
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Stellaris Sign-up
  • Hearts of Iron IV Sign-up
  • Magicka: Wizard Wars Founder Wizard
  • Crusader Kings II: Holy Knight (pre-order)
  • 500k Club
  • Victoria 2
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Europa Universalis IV
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: The Old Gods
Some mods let you have more than 4 brigades/division.

  1. How and what do I edit in tfh (need specific files) to do that?
  2. Would it affect current saved games?

Adding more units requires serious thinking on how to preserve the balance in your game...

... since the engine won't make a difference between a full scaled unit and a support unit when calculating if a ceiling is met or not

e.g. a ceiling of 6 means you can have 2 INF + 4 support divisions as well as 6 INF + 0 support divisions or even worse... 6 x HARM + 0 support divisions

So you might have to review your units characteristics or role-play your game in order to not take advantage of that beyond some reasonnable extent

-------------

The basic change is quickly done : open the dfines.lua file and change this parameter : BRIGADES_IN_DIVISION

You can also mod the tech that affect that (superior_firepower)

Code:
superior_firepower = {

    division_size = 1                                   #allow 1 extra brigade   <-------------------------- THIS IS THE TECH IMPACT ON "BRIGADES_IN_DIVISION"

    allow = {
        has_country_flag = "allow_research"                        #20160127: added to prevent tech bug
        tactical_command_structure = 3
        # land_doctrine_practical = 10
    }

    research_bonus_from = {
        superior_firepower_theory = 0.3
        land_doctrine_practical = 0.7
    }

    change = no
    on_completion = superior_firepower_theory

    difficulty = 5
    start_year = 1940
    folder = land_doctrine_folder
}

-------------

But, of all the technical issues at stake, your real one will be to mod the AI behavior so that he can make use of those extra brigades...

... so you will have to mod the production_minister.lua file and maybe some country specific files to allow AI to take advantage of that

In my mod, I kept the 4 (max 5 with tech) brigades ceiling but I coded the AI behavior so that he now takes full advantage of that by producing efficient division, according to its current techs portfolio or the situation (political and military)

A quick example here (beware, the coding is specific to how both my countries specific files and production_minister.lua file are coded... you can't import that straight into vanilla coding) :

... this codes tells AI (Italian) for which unit he should consider adding a 5th brigade :

Code:
--Downfall added
-- Which units should get 1 more Support unit with Superior Firepower tech
function P.FirePower(voProductionData)
    local laArray = {
        "infantry_brigade",
        "alpini_brigade"};
      
    return laArray
end


... this code tells AI which combo of brigades he should do for INF

Code:
function P.Build_infantry_brigade(ic, viManpower, voType, voProductionData, viUnitsNeeded)

    if viUnitsNeeded >= voType.Size then

        local itaTag = CCountryDataBase.GetTag("ITA")
        local loItaCountry = itaTag:GetCountry()
        local loItaIdeology = loItaCountry:GetRulingIdeology():GetGroup()
      
        local voSpecialType = {
                NeededUnitName = "infantry_brigade", -- this should have a 100 % chance to be part of the division at least once and should match function name
                Serial = 2,
                DivisionSizeRatio = {},                   
                DivisionComposition = {},
                SpecialRatio = {},          
                SubUnit = {}
                }
  
            -- ratio of how many brigades a division contains
            voSpecialType.DivisionSizeRatio = { 0,   -- 1 brig
                                                0,   -- 2 brigs
                                                0,  -- 3 brigs
                                                50,  -- 4 brigs
                                                50} -- 5 brigs
  
        if loItaIdeology == "fascistic" and not(voProductionData.IsExile) then            <----------------- EXAMPLE OF POLITICAL FACTOR TO ACCOUNT FOR

            -- it will never build more brigades then defined (if only two are defined the maximum division size is two
            -- idependent of the division size ratio defined
            -- with the keyword special_brigade one unit will be selected of the special ratio (this unit is the same for the whole division)
            voSpecialType.DivisionComposition[1] = {infantry_brigade = 100}
            voSpecialType.DivisionComposition[2] = {infantry_brigade = 100}
            voSpecialType.DivisionComposition[3] = {camicie_nere_brigade = 100}
            voSpecialType.DivisionComposition[4] = {artillery_brigade = 100}
            -- if we have superior firepower
            voSpecialType.DivisionComposition[5] = {special_brigade = 100}
            voSpecialType.SpecialRatio = {    anti_tank_brigade = 80,
                                            anti_air_brigade = 20}
        else
            voSpecialType.DivisionComposition[1] = {infantry_brigade = 100}
            voSpecialType.DivisionComposition[2] = {infantry_brigade = 100}
            voSpecialType.DivisionComposition[3] = {infantry_brigade = 100}
            voSpecialType.DivisionComposition[4] = {special_brigade = 90,
                                                    engineer_brigade = 10}
            voSpecialType.DivisionComposition[5] = {special_brigade = 100}
            voSpecialType.SpecialRatio = {    artillery_brigade = 45,
                                            anti_tank_brigade = 45,
                                            anti_air_brigade = 10}
        end  
            -- Sub Units that should be build when one of those mainunits is ordered (used for CAGs)      
            voSpecialType.SubUnit = { SubUnitName     = nil,
                                      SubUnitQuantity = 0 }
          
        return Support.CreateCustomUnit(ic, viManpower, voSpecialType, voProductionData, viUnitsNeeded)      
      
    end

    return ic, viManpower, viUnitsNeeded
end


Another example for MOT

Code:
function P.Build_motorized_brigade(ic, viManpower, voType, voProductionData, viUnitsNeeded)

    local liCYear = CCurrentGameState.GetCurrentDate():GetYear()
  
    if viUnitsNeeded >= voType.Size then
  
        local voSpecialType = {
                NeededUnitName = "motorized_brigade", -- this should have a 100 % chance to be part of the division at least once and should match function name
                Serial = 2,
                DivisionSizeRatio = {},                   
                DivisionComposition = {},
                SpecialRatio = {},          
                SubUnit = {}
                }

        if liCYear < 1941 and not(voProductionData.IsExile) then           <------------------ EXAMPLE OF SITUATIONAL FACTOR TO ACCOUNT FOR

            -- ratio of how many brigades a division contains
            voSpecialType.DivisionSizeRatio = { 0,   -- 1 brig
                                                0,   -- 2 brigs
                                                100,  -- 3 brigs
                                                0,  -- 4 brigs
                                                0} -- 5 brigs
                                              
            -- it will never build more brigades then defined (if only two are defined the maximum division size is two
            -- idependent of the division size ratio defined
            -- with the keyword special_brigade one unit will be selected of the special ratio
            voSpecialType.DivisionComposition[1] = {motorized_brigade = 100}
            voSpecialType.DivisionComposition[2] = {light_armor_brigade = 100}
            voSpecialType.DivisionComposition[3] = {special_brigade = 100}
            voSpecialType.DivisionComposition[4] = {special_brigade = 100}
            -- if we have superior firepower
            voSpecialType.DivisionComposition[5] = {special_brigade= 100}
            voSpecialType.SpecialRatio = {    tank_destroyer_brigade = 20,
                                            armored_car_brigade = 30,
                                            mot_artillery_brigade = 10,
                                            mot_anti_tank_brigade = 40}
        else
            -- ratio of how many brigades a division contains
            voSpecialType.DivisionSizeRatio = { 0,   -- 1 brig
                                                0,   -- 2 brigs
                                                0,  -- 3 brigs
                                                100,  -- 4 brigs
                                                0} -- 5 brigs
            voSpecialType.DivisionComposition[1] = {motorized_brigade = 100}
            voSpecialType.DivisionComposition[2] = {motorized_brigade = 100}
            voSpecialType.DivisionComposition[3] = {light_armor_brigade = 100}
            voSpecialType.DivisionComposition[4] = {special_brigade = 100}
            voSpecialType.DivisionComposition[5] = {special_brigade = 100}
            voSpecialType.SpecialRatio = {    tank_destroyer_brigade = 40,
                                            armored_car_brigade = 20,
                                            mot_artillery_brigade = 10,
                                            mot_anti_tank_brigade = 40}
        end
            -- Sub Units that should be build when one of those mainunits is ordered (used for CAGs)      
            voSpecialType.SubUnit = { SubUnitName     = nil,
                                      SubUnitQuantity = 0 }
          
        return Support.CreateCustomUnit(ic, viManpower, voSpecialType, voProductionData, viUnitsNeeded)

    end
  
    return ic, viManpower, viUnitsNeeded
  
end
 
Last edited:
  • 3Like
Reactions:

djconklin

Colonel
38 Badges
Dec 31, 2002
1.156
19
Visit site
  • Stellaris - Path to Destruction bundle
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • 500k Club
  • Pride of Nations
  • Europa Universalis IV: Common Sense
  • Europa Universalis IV: Mare Nostrum
  • Stellaris
  • Hearts of Iron IV: Cadet
  • Stellaris: Leviathans Story Pack
  • Victoria 2
  • Europa Universalis IV: Mandate of Heaven
  • Europa Universalis IV: Third Rome
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Synthetic Dawn
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • For the Motherland
  • Europa Universalis III
  • Europa Universalis III: Chronicles
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For The Glory
  • Darkest Hour
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Heir to the Throne
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Europa Universalis IV: Res Publica
  • Victoria: Revolutions
  • Semper Fi
Adding more units requires serious thinking on how to preserve the balance in your game...

... since the engine won't make a difference between a full scaled unit and a support unit when calculating if a ceiling is met or not

e.g. a ceiling of 6 means you can have 2 INF + 4 support divisions as well as 6 INF + 0 support divisions or even worse... 6 x HARM + 0 support divisions
I was only thinking in terms of number of brigades per division. I didn't realize all the other complexities!

THANKS for your post!, WOW!
 
  • 2
Reactions:

Rancher

Lt. General
25 Badges
Apr 2, 2010
1.628
62
  • Commander: Conquest of the Americas
  • Hearts of Iron IV: Together for Victory
  • Supreme Ruler: Cold War
  • Supreme Ruler 2020
  • Sword of the Stars
  • Semper Fi
  • Rome Gold
  • Naval War: Arctic Circle
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis III Complete
  • Darkest Hour
  • Arsenal of Democracy
  • 500k Club
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV Sign-up
  • Europa Universalis III Complete
  • Europa Universalis IV
  • Europa Universalis III Complete
You can of course gain one extra brigade /Regiment by researching the appropriate technology Im sorry I havent got access to my game at the moment but as soon as I can I will add the technology here providing that was the question you want answered or you havebnt found it already
 
  • 1
Reactions:

Wraith11B

Call Kenny Loggins, you're in the DANGER ZONE...
44 Badges
Dec 5, 2008
4.194
1.215
  • Europa Universalis III Complete
  • Heir to the Throne
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Magicka
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Conquest of Paradise
  • Divine Wind
  • Europa Universalis IV: Res Publica
  • Semper Fi
  • Sword of the Stars
  • Sword of the Stars II
  • Victoria 2: A House Divided
  • Crusader Kings II
  • Crusader Kings II: Way of Life
  • Stellaris
  • Crusader Kings II: Conclave
  • Stellaris: Distant Stars
  • Hearts of Iron IV Sign-up
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Crusader Kings II: Reapers Due
  • Stellaris: Leviathans Story Pack
  • Hearts of Iron IV: Together for Victory
  • Stellaris - Path to Destruction bundle
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • 500k Club
  • Victoria 2
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Europa Universalis IV
  • Victoria 2: Heart of Darkness
  • Europa Universalis IV: Call to arms event
  • Darkest Hour
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Charlemagne
@Rancher the tech is Superior Firepower.
 

Kovax

Field Marshal
10 Badges
May 13, 2003
8.558
3.613
  • Europa Universalis III Complete
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Heir to the Throne
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Semper Fi
  • Victoria 2
  • 500k Club
It takes several levels of one of the other techs to unlock Superior Firepower, so it's generally not available until around 1940, unless you research ahead. That gives you 5 brigades per division.

Unfortunately, the AI really doesn't handle the larger divisions well. For that matter, the AI doesn't seem to be able to distinguish a 2xGAR division from a 5-brigade Armor division, and will happily send the former to race ahead and seize enemy provinces (slowly), while using the latter as a massively overpowered garrison for some trivial port.
 
  • 1
Reactions: