• 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.
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:
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
  • 1Like
Reactions:
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:
@Rancher the tech is Superior Firepower.
 
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: