a. Understanding the code
This is an easy fix, but one I'd like to explain a bit.
Navigate to Crusader Kings II\mod\[mod's name]\common\
The file you're after is job_titles.txt. This controls all the councilor positions as well as the scopes for who can be that marshal. Let's look at an example from my mod and I'll break it down.
job_chancellor = {
is_chancellor = yes
attribute = diplomacy
dignity = 0.33
opinion_effect = 15
monthly_salary = 0.1
monthly_prestige = 0.015
allow = {
#is_female = no
is_adult = yes
prisoner = no
NOT = { trait = incapable }
}
gain_effect = {
}
lose_effect = {
opinion = { who = FROM modifier = opinion_fired_from_council }
}
action = action_improve_relations
action = action_fabricate_claims
action = action_sow_dissent
lift_fow = yes
}
This is the chancellor job entry which controls a number of different things. There's a number of cool variables in here, but the one we're after is the allow = { scope, which I have highlighted in bold. That controls who can be a chancellor and those who cannot be. Generally, the only restrictions you'll see here are no females allowed, no prisoners allowed and no incapable allowed. In order to get women the ability to be Chancellor all you have to do is place a # in front of "is_female = no"
# designate that line of code to be comment lines. These are special lines in the files which the game engine is specifically told NOT to read. So if you place one of those in front of a variable you don't like, in this case, the check to make sure women cannot be chancellor, you are telling the game to ignore it. This simple change can be duplicated for most of the other council positions with the exception of Spymaster and Marshal, which I will cover in the next paragraph.
The check for female marshals I made was one based on ability, rather than across the board gender equality. This section will require a small bit of explaining. As such, the allow ={ scope for marshal from my mod looks something like this:
job_marshal = {
is_marshal = yes
attribute = martial
dignity = 0.33
opinion_effect = 15
monthly_salary = 0.1
monthly_prestige = 0.015
allow = {
OR = {
is_female = no
AND = {
trait = brilliant_strategist
NOT = {
religion_group = muslim
}
}
AND = {
trait = skilled_tactician
NOT = {
religion_group = muslim
}
}
AND = {
martial = 15
NOT = {
religion_group = muslim
}
}
}
is_adult = yes
prisoner = no
NOT = { trait = incapable }
}
gain_effect = {
}
lose_effect = {
opinion = { who = FROM modifier = opinion_fired_from_council }
}
action = action_assist_arrest
action = action_train_troops
action = action_advance_mil_tech
lift_fow = yes
}
Lemme break it down slightly to make it a little easier to understand, as if you've never modded this might look a bit strange.
OR = { : This is a tag which states that the condition is fulfilled if ANY of the variables you define are correct. So let's say I wanted to allow the creation of a title if someone is English OR Saxon. An OR = { tag is what you'd use. In this case, I've used the OR tag in conjunction with the AND = { tags.
AND = { : This is a tag which states that the condition is fulfillied only if ALL of the variables you define are correct. It works exactly the same as the OR tag does, except
everything must be true, rather than just
anything.
Let's take a look at that same scope, but this time, we'll be thinking using the game's logic...
allow = {
"I will let a character be marshal if..."
OR = {
"If Any one of these is true, you can be Marshal"
is_female = no
"If a character is not female, they are allowed to be marshal."
AND = {
"If a character has the Brilliant strategist trait, AND is not a Muslim, they can be marshal."
trait = brilliant_strategist
NOT = {
religion_group = muslim
}
}
AND = {
"If a character has the Skilled Tactician trait, AND is not a Muslim, they can be marshal."
trait = skilled_tactician
NOT = {
religion_group = muslim
}
}
AND = {
"If a character has 15 martial skill AND is not a Muslim they can be marshal"
martial = 15
NOT = {
religion_group = muslim
}
}
}
is_adult = yes
"Only adult characters can be considered valid Marshals."
prisoner = no
"Only characters who are not prisoners can be Marshal"
NOT = { trait = incapable }
"Characters who have the Incapable trait cannot be marshal."
}
b. Implementing changes.
Combining OR and AND tags allows you to program really complex strings, and is the way Paradox and Modders both can come up with all the fancy systems the games uses. While it's true there's a bit more too it than that, a lot of the stuff I did for my mod boil down to those two tags. Kinda crazy huh?
Lastly there's spymaster which in vanilla, only allows women to serve if they are wife or mother to your character. All you have to do is delete the OR tag inside the allow and remove the is_female line to allow women to serve. That's really all there is to the basics understanding and modding councilor files.
You can pretty much just copy + paste the allow scopes for all these jobs over whatever mod in question you're running. You will then get my rules for councilors as opposed to whatever mod's you happen to be playing. But we're not done yet! We need to enable events for women, as all the councilor events are by default men only. If you don't follow this next step your women won't fire council events!
Navigate to Crusader Kings II\mod\[mod's name]\events\
You'll find an event file for each councilor title here with names like job_marshal, job_chancellor, etc. If you don't see them, simply go to the events in the Crusader Kings II directory and copy them over to the mod in question. Open them up one by one and do a control+F to bring up a search dialogue, you want to look for the
only_men = tag. This is the variable that says only men are checked for this event. Simply place a # in the front of that line and you're done. Keep doing control+F until you hit every one of those tags, then repeat for the rest of the council.
And.. that's it! Enjoy having EAB council mechanics.
Bookmarks