• 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.
@Divine with the coming patch notes and new commands, with your examples, could you please include usage examples to help us use the commands more easily.
 
  • 3
Reactions:
- Added back_faction and leave_faction effects.

* all twitterpated *

Er, uh, thank you so much! This will help immensely. I've been lobbying for this for so long that I'd given-up hope. Thank you, thank you, thank you.
 
Thanks for the cheerfulness of the CK usermod forums. :)

@Divine with the coming patch notes and new commands, with your examples, could you please include usage examples to help us use the commands more easily.
I've been meaning to but there were other things stealing my time yesterday.
Example usage:
Code:
character_event = {
    ...
    immediate = {
        back_faction = {
            faction = faction_succ_seniority
            faction_leader = event_target:my_evil_uncle
        }
    }
}

This was the best way that I came up with where we can specify a specific instance of a faction. This unfortunately means that you need to identify the leader of the faction to properly add more characters to it but it makes us able to tell different claimant factions apart.

Code:
character_event = {
    ...
    immediate = {
        leave_faction = faction_succ_seniority
    }
}

This should also be able to specify a specific faction. Both of these functions do presume what my limited testing found on faction mechanics; that you can only be a member (being a leader also counts as being a member here) of 1 instance of a specific type of faction at any given moment (ie you can't be a member of two different claimant factions at the same time). If this is not the case of if it's possible to mod in another behavior I'll probably have to change the syntax slightly.

Code:
character_event = {
    ...
    immediate = {
        leave_faction = all
    }
}

For ease of use I also added this variant.

Please give me your thoughts on the current implementation.
 
  • 1
Reactions:
Thanks for the cheerfulness of the CK usermod forums. :)


I've been meaning to but there were other things stealing my time yesterday.
Example usage:
Code:
character_event = {
    ...
    immediate = {
        back_faction = {
            faction = faction_succ_seniority
            faction_leader = event_target:my_evil_uncle
        }
    }
}

This was the best way that I came up with where we can specify a specific instance of a faction. This unfortunately means that you need to identify the leader of the faction to properly add more characters to it but it makes us able to tell different claimant factions apart.

Code:
character_event = {
    ...
    immediate = {
        leave_faction = faction_succ_seniority
    }
}

This should also be able to specify a specific faction. Both of these functions do presume what my limited testing found on faction mechanics; that you can only be a member (being a leader also counts as being a member here) of 1 instance of a specific type of faction at any given moment (ie you can't be a member of two different claimant factions at the same time). If this is not the case of if it's possible to mod in another behavior I'll probably have to change the syntax slightly.

Code:
character_event = {
    ...
    immediate = {
        leave_faction = all
    }
}

For ease of use I also added this variant.

Please give me your thoughts on the current implementation.

Sounds awesome to me.
Only question from me is if you do something like:
Code:
back_faction = {
    faction = faction_succ_seniority
    faction_leader = ROOT
}
Does that found a faction? If not could it please or even better a separate found_faction command along with the ability to specify a third_party = scope for things like claimants?
 
Thanks for the cheerfulness of the CK usermod forums. :)

Thanks for delivering on the important stuff; you are undeniably our champion. :)

Code:
character_event = {
    ...
    immediate = {
        back_faction = {
            faction = faction_succ_seniority
            faction_leader = event_target:my_evil_uncle
        }
    }
}

This was the best way that I came up with where we can specify a specific instance of a faction. This unfortunately means that you need to identify the leader of the faction to properly add more characters to it but it makes us able to tell different claimant factions apart.

This seems like it'll work fine for distinguishing between different instances of the same faction type (i.e., liege_titles_w_claimant). One wrinkle: what if the faction doesn't yet exist and thus doesn't have a leader yet?

Many applications of event-based faction assembly require the faction instance itself to be created/started as well. Is this possible? While one could specify THIS for the faction_leader parameter for non-claimant-type factions to mean the same thing (in terms of the API), for claimant-type factions it'd be necessary to specify the 3rd-party character in order to create the faction instance.

This should also be able to specify a specific faction. Both of these functions do presume what my limited testing found on faction mechanics; that you can only be a member (being a leader also counts as being a member here) of 1 instance of a specific type of faction at any given moment (ie you can't be a member of two different claimant factions at the same time). If this is not the case of if it's possible to mod in another behavior I'll probably have to change the syntax slightly.

...

Please give me your thoughts on the current implementation.

It's my understanding that your conclusion regarding rulers only backing a single instance of any given faction type (i.e., same-named faction) at once is indeed correct.
 
  • 1
Reactions:
It is indeed true that this will not give the possibility to found new factions. It is a bit messy because I'll probably need to handle the different classes of factions differently but I'll see if I can get together an additional effect called found_faction.
 
  • 5
Reactions:
It was a while since I implemented it now but I think that functionality was intended. If you just do pentarchy = yes then it will be a pentarch title for all religions using pentarchy and if you do pentarchy = orthodox you only add that title as a pentarch title for the orthodox religion.

Hmm... Let me approach it differently: currently, all Pentarchs are universal, where as the proposed change is that every religion now have the ability to have different sets (a welcome change). But what I'm wondering is if it is possible to make jurisdiction be under different Pentarchs depending on religion. So let's say that Orthodoxy has the default set, so nothing changes for them, where as the Miaphysites and the Nestorians do not have Constantinople and Jerusalem as their Pentarch, so in practice they are a Triarchy. Since now for the Miaphysites and the Nestorians they don't have the Pentarchial jurisdictions for Greece (Constantiople), Anatolia (Constantiople), Jersualem (Jerusalem), and Arabia (Jerusalem), would they be able to have their heads as Antioch for those religions?

Simply put, if the Kingdom of Jerusalem is owned by an Orthodox, they would be under the Patriarch of Jerusalem, but if they were either Miaphysite or Nestorian, they would be under the Patriarch of Antioch.

Not sure how it would be done with the code since it would have to affect the title history.
 
  • 2
Reactions:
This unfortunately means that you need to identify the leader of the faction to properly add more characters to it but it makes us able to tell different claimant factions apart.
What happens when the leader changes unexpectedly, for example, if the liege puts the leader on his council, or uses his spymaster to force the leader to stop factioning?
 
What happens when the leader changes unexpectedly, for example, if the liege puts the leader on his council, or uses his spymaster to force the leader to stop factioning?

You'd just need to know the leader, as a means of identifying the faction since not all faction types are unique in name only, at the time in which you want to use the `back_faction` command. It wouldn't matter if the leader changed later. Example:

Code:
liege = {
    random_vassal = {
        limit = {
            leads_faction = faction_claimant
            supported_claimant = { character = event_target:my_friend }
        }
        ROOT = {
            back_faction = {
                faction = faction_claimant
                faction_leader = PREV
            }
        }
    }
}
 
  • 2
Reactions:
Hmm... Let me approach it differently: currently, all Pentarchs are universal, where as the proposed change is that every religion now have the ability to have different sets (a welcome change). But what I'm wondering is if it is possible to make jurisdiction be under different Pentarchs depending on religion. So let's say that Orthodoxy has the default set, so nothing changes for them, where as the Miaphysites and the Nestorians do not have Constantinople and Jerusalem as their Pentarch, so in practice they are a Triarchy. Since now for the Miaphysites and the Nestorians they don't have the Pentarchial jurisdictions for Greece (Constantiople), Anatolia (Constantiople), Jersualem (Jerusalem), and Arabia (Jerusalem), would they be able to have their heads as Antioch for those religions?

Simply put, if the Kingdom of Jerusalem is owned by an Orthodox, they would be under the Patriarch of Jerusalem, but if they were either Miaphysite or Nestorian, they would be under the Patriarch of Antioch.

Not sure how it would be done with the code since it would have to affect the title history.
I'm unsure about exactly how these mechanics will play out. I haven't touched upon them with my separation of patriarchal titles.
 
- Renamed back_faction to join_faction.
- join_faction now supports the optional argument ignore_requirements = yes.
- Added start_faction effect.
- Added faction_exists trigger.
 
Last edited:
  • 4
Reactions:
I'm becoming more hyped about your modding improvements than the upcoming DLC!
 
Example usage of new triggers and effects.

start_faction
Code:
start_faction = {
    faction = faction_succ_seniority
    title = event_target:liege_primary_title
    can_join_existing = yes
}
This will try to join or create a seniority faction against the liege of the current character scope. The default behavior will fail to do anything if such a faction already exists.

faction_exists
Code:
faction_exists = {
   faction = faction_claimant
   title = event_target:my_precious_title
   thirdparty = event_target:illegitimate_bastard
}
This trigger will return true if one of the current scopes vassals are currently leading a claimant faction that is pushing the illegitimate_bastards claim to my_precious_title.

The needed input on these triggers and effects depend on the faction type. The current faction types require the following;
character: faction,
liege_titles: faction, title,
liege_titles_w_claimant: faction, title, thirdparty.
 
  • 4
Reactions:
Yeah, thanks Divine -- your thorough treatment is much appreciated and will be even more greatly appreciated by the many users whom will be affected by this improvement.

The current API does indeed appear to cover everything that I can imagine now. I only wish that I could test it. ;)
 
  • 1
Reactions: