• 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.
Quick question about changing difficulty settings. In the static_modifiers.txt, there are several values, for example:

Code:
    land_morale = 0.3
    global_defensive = 0.4
    global_tax_modifier = 0.3
    max_manpower_mult = 0.4
    manpower_growth = 0.5
The question is really simple, I assume I can change them, to something like 0.25 instead of 0.2 or 0.4 .. I am not sure if it will work with two digit number after the point, or not, hence the question.

Also does anyone have any idea what is "global_defensive" modifier?
 
Does anyone have experience with customizable localisation? I have added the below code in a .txt file in the localisation\customizable_localisation folder for my mod, and this crashes the game during "Loading Databases" (roughly at the start of the minor titles being evaluated, based on comparing the setup log files with and without this), and the Validator isn't showing me anything wrong.

Code:
# Council voting pattern
defined_text = {
   name = GetVotingPattern
  
   text = {
       trigger = {
           is_voter = yes
           has_position = loyalist
       }
      
       localisation_key = GetLoyalist
   }
  
   text = {
       trigger = {
           is_voter = yes
           has_position = pragmatist
       }
      
       localisation_key = GetPragmatist
   }
  
   text = {
       trigger = {
           is_voter = yes
           has_position = glory_hound
       }
      
       localisation_key = GetGloryHound
   }
  
   text = {
       trigger = {
           is_voter = yes
           has_position = zealot
       }
      
       localisation_key = GetZealot
   }
  
   text = {
       trigger = {
           is_voter = yes
           has_position = malcontent
       }
      
       localisation_key = GetMalcontent
   }
}

# Council support
defined_text = {
   name = GetSupporting
  
   text = {
       trigger = {
           NOT = {
               has_any_opinion_modifier = supporting_on_council
           }
       }
      
       localisation_key = GetFreeAgent
   }
  
   text = {
       trigger = {
           has_any_opinion_modifier = supporting_on_council
       }
      
       localisation_key = GetIsSupporting
   }
}

# Government type
defined_text = {
   name = GetGovernmentType
  
   text = {
       trigger = {
           is_feudal = yes
       }
      
       localisation_key = GetFeudal
   }
  
   text = {
       trigger = {
           is_republic = yes
       }
      
       localisation_key = GetRepublic
   }
  
   text = {      
       trigger = {
           is_theocracy = yes
       }
      
       localisation_key = GetTheocracy
   }
  
   text = {
       trigger = {
           is_tribal = yes
       }
      
       localisation_key = GetTribal
   }
  
   text = {
       trigger = {
           is_nomadic = yes
       }
      
       localisation_key = GetNomadic
   }
}

The custom localization is called as e.g. [Root.GetGovernmentType] or [From.GetVotingPattern] in various log outputs, if it helps.

Edit: On further testing, I have narrowed it down to the first part, but I still don't know what the exact problem is (unless checks for being a voter and having a voting pattern isn't allowed in customizable localisation).
 
Last edited:
Hey, ambitions don't want to cooperate. This ambition does not appear under ambitions selection. I commented out a bit of script because I figured that I might have confused triggers and commands somewhere. All of the non-out-commented code is identical to an ambition in HIP, which should work in HIP. The same code does not work in my mod.

Code:
# Become sage ambition

obj_become_sage = {
    type = character
  
    potential = {
        ai = no
    }
  
    allow = {
        #religion = pagan
        #has_focus = focus_theology
        #NOT = { trait = sage }
        NOT = { trait = incapable }
        prisoner = no
    }
  
    chance = {
        factor = 0
    }
  
    success = {
        ai = no
        #trait = sage
    }
  
    #creation_effect = {
    #    add_trait = aspiring_sage
    #}
  
    abort = {
        OR = {
            trait = incapable
            ai = yes
            prisoner = yes
        }
    }
  
    abort_effect = {
        #remove_trait = aspiring_sage
        #prestige = -50
        #piety = -50
    }
  
    effect = {
        prestige = 50
        piety = 50
        give_nickname = nick_the_sage
        #remove_trait = aspiring_sage
    }
}

Also, additional info about this ambition:
  • The ambition code is in "common/objectives/sage_ambition.txt".
  • There is localization for "obj_become_sage_title" and " and "obj_become_sage_desc".
  • I copied one of the vanilla ambition icons into my "gfx/ambitions" folder and renamed it into "obj_become_sage.dds".
  • I made a spriteType entry into my .gfx file in interface.
code in my gfx file:
Code:
spriteTypes = {
    spriteType = {
        name = "GFX_trait_sage"
        texturefile = "gfx/traits/pagan_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
    spriteType = {
        name = "GFX_trait_aspiring_sage"
        texturefile = "gfx/traits/pagan_aspiring_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
    spriteType = {
        name = "GFX_obj_become_sage"
        texturefile = "gfx/ambitions/pagan_become_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
}

How do I make it work?
 
Is there any way to scope to a combat flank of an army without a leader?
 
Hey, ambitions don't want to cooperate. This ambition does not appear under ambitions selection. I commented out a bit of script because I figured that I might have confused triggers and commands somewhere. All of the non-out-commented code is identical to an ambition in HIP, which should work in HIP. The same code does not work in my mod.

Code:
# Become sage ambition

obj_become_sage = {
    type = character
 
    potential = {
        ai = no
    }
 
    allow = {
        #religion = pagan
        #has_focus = focus_theology
        #NOT = { trait = sage }
        NOT = { trait = incapable }
        prisoner = no
    }
 
    chance = {
        factor = 0
    }
 
    success = {
        ai = no
        #trait = sage
    }
 
    #creation_effect = {
    #    add_trait = aspiring_sage
    #}
 
    abort = {
        OR = {
            trait = incapable
            ai = yes
            prisoner = yes
        }
    }
 
    abort_effect = {
        #remove_trait = aspiring_sage
        #prestige = -50
        #piety = -50
    }
 
    effect = {
        prestige = 50
        piety = 50
        give_nickname = nick_the_sage
        #remove_trait = aspiring_sage
    }
}

Also, additional info about this ambition:
  • The ambition code is in "common/objectives/sage_ambition.txt".
  • There is localization for "obj_become_sage_title" and " and "obj_become_sage_desc".
  • I copied one of the vanilla ambition icons into my "gfx/ambitions" folder and renamed it into "obj_become_sage.dds".
  • I made a spriteType entry into my .gfx file in interface.
code in my gfx file:
Code:
spriteTypes = {
    spriteType = {
        name = "GFX_trait_sage"
        texturefile = "gfx/traits/pagan_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
    spriteType = {
        name = "GFX_trait_aspiring_sage"
        texturefile = "gfx/traits/pagan_aspiring_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
    spriteType = {
        name = "GFX_obj_become_sage"
        texturefile = "gfx/ambitions/pagan_become_sage.dds"
        noOfFrames = 1
        norefcount = yes
        effectFile = "gfx/FX/buttonstate.lua"
    }
}

How do I make it work?

SOLVED:

It appears that the new objective does not appear ingame if there is no icon defined for it in spriteTypes. I did have a spriteType for it, but the filename was wrong. So I added a proper filename into its spriteType. Now it appears ingame.
 
Here's a quick one:

What controls the colour of the skull icon for deaths? Is it possible to add a new one?

Thanks,

nd
As far as I know that is hardcoded to be white for normal, red for killer and yellow for illness. I think you can change what colour they are but you cannot actually add more types of skulls just those existing three
 
Is there any way, directly or indirectly, to make units stronger for sieges (in a way that the AI knows about it and can use it)? Or alternatively to make troops better at assaulting?


I have the idea of a elite faction with few but powerful units, but that doesn't really work out as I am unable to overcome even small garrisons.
 
Last edited:
I don't know if you can put it on a unit, but try siege_speed
Wouldn't that just increase the speed of ticks?
That wouldn't do anything if I do not have more manpower than the garrison which is my actual problem with my "small elite unit" idea. Sieges seem completely focused on quantity with quality having no effect.
I also don't see a way to make units (cultures, generals, etc.) stronger at assaults. The assault mechanic seems to be hardcoded or at least global without the chance to influence it by conditions.
 
I think siege_speed increases the progress on each tick - it's the same bonus on the siege leader trait. If you're trying to siege a holder where the garrison outnumbers you, I think that's hard coded.
If you're trying to be better at assaulting, that's based on the melee stat, but there's not a way to increase it only for assaulting holdings, you'd be stronger in normal combat too.

EDIT: For sieges, there's also a speed bonus from technology. It think this is also just siege_speed, but can't check right now
 
Is there any way, directly or indirectly, to make units stronger for sieges (in a way that the AI knows about it and can use it)? Or alternatively to make troops better at assaulting?


I have the idea of a elite faction with few but powerful units, but that doesn't really work out as I am unable to overcome even small garrisons.


In theory you could do a custom tactic, that only specific generals can use. Alternatively, try using the set_tactic from a flank commander.
 
In theory you could do a custom tactic, that only specific generals can use. Alternatively, try using the set_tactic from a flank commander.
Do combat tactics apply on siege assaults?
Can I somehow see which tactic is active during an assault?

Sadly that would not solve all problems as the AI seems to be hardcoded not to assault unless it has a 10:1 advantage in numbers no matter the strength.
 
Last edited:
Do combat tactics apply on siege assaults?
Can I somehow see which tactic is active during an assault?

Sadly that would not solve all problems as the AI seems to be hardcoded not to assault unless it has a 10:1 advantage in numbers no matter the strength.

You can change the ratio in the defines, but it is global, so it might have unintended side-effects.
 
Hi guys, I got a question.

I use my own mod and I was recently trying to implement the name changes for Francia Orientalis/Occidentalis. To make things easier I copied the event from HIP mod and added the east_francia part.

It works for West Francia. When Karlings rule, it's called Francia Occidentalis, if not it's called France/Frankreich/Frankrijk etc depending on the culture of the King.

Sadly it doesn't work for East Francia though. It's called Francia Orientalis when ruled by a Karling, which is fine. But if it's not ruled by a Karling it is called Germany no matter the culture. Why is that?
 
Is there any way, directly or indirectly, to make units stronger for sieges (in a way that the AI knows about it and can use it)? Or alternatively to make troops better at assaulting?


I have the idea of a elite faction with few but powerful units, but that doesn't really work out as I am unable to overcome even small garrisons.

Sieges are, after all, just about encircling enemy castles with the intent of cutting off influx of consumables. So, a small band of elite units not being able to siege properly seems as it should be. Thus, you should think of a way how an elite unit might approach castle conquests in their own way. Here are ways that come to my mind:
  • Be really good at outright assaults - but AI won't utilize this.
  • They infiltrate the castle and open gates from the inside, resulting in enemy being forced to sally and encage.
  • They undertake special missions to lower defender morale without having a numeric superiority.
  • Combination of those.
It seems that you should be handling the sieges with custom events while the garrison is too big. These events would lower the enemy garrison size. These events might possibly make checks against your and enemy stats where appropriate. For example you can send a team to pose as supply smugglers and smuggle poisoned food inside, which will kill few men from enemy garrison. You can embark a team to secretly climb castle walls during night, who will then set fire to granary, which will lower the garrison size and morale. Or the team sneaks inside to just kill a few enemies.

Once the garrison small enough to normally siege, then normal siege can continue. Obviously these event missions should be more dangerous.

Well, this is what I think, at least.
 
Is there any way, directly or indirectly, to make units stronger for sieges (in a way that the AI knows about it and can use it)? Or alternatively to make troops better at assaulting?

I have the idea of a elite faction with few but powerful units, but that doesn't really work out as I am unable to overcome even small garrisons.


Early last year I did some work on a late game style mod. I was/am going to include all sorts of things such as borrowing from the Lombards etc as well as handguns and cannons. The last one I was going to implement via a series of late game buildings that massively increased siege speed. It didn't seem to be appreciably working so I went absolutely bananas and made the figure something like x1000 - after that I could tell it was DEFINITELY working !

The reason that I mentioned this is because you could do the same thing for your hypothetical AI - make a new building type that only the AI can build that massively boosts their siege power or whatever else you want them to be good at.
 
This is a newbie question I know but how do I create an event that applies an effect (or runs a script to apply an effect) to a group of characters ?

What I'm trying to do is find all characters who were a Friend, Spouse or close family member of character who has been executed then run an event that makes them all a Rival of the character that ordered the execution, but only if they have certain traits (eg Wroth, Proud etc). My guess is that I need one script to filter for all qualifying characters then call a second script that applies the effect, is this correct or can it all done in one event ?