Anybody know how governments are assigned? Like at the game start.
The first valid government is assigned, if I remember correctly. The exception would be nomads, as they are set with historical_nomad = yes.
Anybody know how governments are assigned? Like at the game start.
Instant game-over seems a bit harsh. If somebody forgets to activate the right DLCs before loading an Ironman game…
@NoxBestia: If you have MTTH or on_action events, I'm fairly certain that they all need to be individually checked for the DLC in one way or another. Decisions always need to be checked individually in one way or another.
In the unmodded game, DLC checks are done either directly (e.g. "has_dlc = "Reapers""), by checking something that requires the DLC (e.g. "trait = disfigured", as that trait only appears in vanilla if you have RD; if you were to add that trait without checking for RD you would invalidate the DLC check), or by checking something that ultimately depends on the DLC (e.g. "has_character_flag = looking_for_court_physician", as that flag only is set by an event that only is fired from a decision that requires RD; this check would not be a valid DLC check if you either fired the event that sets the flag from a decision, event, or pulse that does not check for RD or set the flag from an event, decision, or similar that does not ultimately depend on RD). As it is possible to make a mistake somewhere that can mess up a check that doesn't check for the actual DLC (e.g. by accidentally using an existing character flag), it is a good idea to actually check for the DLC at all times as that check will evaluate properly at all times (assuming it is set up properly, of course).
As mentioned above, MTTH and on_action events need individual checks, but if you have events triggered by other events (or by decisions) you only need to check for the DLC in the triggering event(s)/decision(s)/etc. For example, there is not a single check for WoL in wol_seduction_events.txt as the events there either require the Seduction focus (and thus WoL), are triggered from the Seduce targeted decision (which checks for WoL (and also the Seduction focus)), or (for the vast majority of the events) are triggered by other events that ultimately trigger from either the Seduce decision or an event that checks for the Seduction focus, thus removing a large number of checks while still ensuring that the events only can trigger for those with WoL.
If you are unlucky enough to have a lot of MTTH/on_action events (and you really should avoid the former, if possible, to optimize the mod), adding the check is still quite simple unless you have files where different DLCs are required for different events. Assuming you follow the style conventions of vanilla CK2 events, you will take care of many (though probably not all) of the cases by simply replacing "\n\ttrigger = {\r\n" with "\n\ttrigger = {\r\n\t\thas_dlc = [DLC]" (Note: "\ttrigger" is supposed to be written that way, not "\trigger", and you have to make sure that you use "Extended" search mode in Notepad++ (or the equivalent in whatever text processor you are using)) in your modded files. Again, decisions are not covered by this, though you can modify the approach and use "potential" instead of "trigger" and likely account for most of them, and, as mentioned above.
That said, you and you alone have to ensure that you don't miss something somewhere because an event doesn't have a trigger block, a trigger block does not follow the style conventions, some event options (as opposed to events) that only should appear with a certain DLC, etc.; no one else knows what you have done, so it is possible that something that you have done might not be covered by the checks that I or someone else here might think of.
I greatly appreciate your reply and I thank you for all the details provided. I know a lot of the existing DLC checks are done in such a way as to provide alternative events for people who don't have whatever DLC is needed for the event chain. Someday I might do that as well, but right now I'm not willing to do all of that. I'll go with the less user-friendly on_startup event that checks for the all the DLC my mod requires and if they aren't there, then game over.
So far, this seems to the the simplest option, even if it is a bit harsh. Thank you.
So I haven't been happy with the easy but harsh solution. Then it came to me: I write the startup event with a warning you are heading for game over in X days if you don't quit and reload with the correct DLC activated.
Now you have a 2-event system to verify DLC for compliance that won't destroy an iron man game.
NoxBestia
This is literally impossible to ensure, since modding is so easy, and all the prospective cheat has to do is take that event out of the mod. Indeed, even people who know nothing about modding could come here for help doing it, as long as they avoid specifying that they're trying to circumvent the rules.I'm not sure that's allowed, as you still get some time without the DLC where you might be able to use DLC content without the DLC, and depending on how you have set up the check you might be able to get around it by simply using the console when the second check is due (by switching to observer mode on the day the event forces you to become a theocracy/kills your dynasty/etc. and then switching back). As far as I understand the rules regarding DLC content and public mods, you must ensure that you always are unable to use the DLC content if you don't have the DLC, with no grace period whatsoever.
This is literally impossible to ensure, since modding is so easy, and all the prospective cheat has to do is take that event out of the mod. Indeed, even people who know nothing about modding could come here for help doing it, as long as they avoid specifying that they're trying to circumvent the rules.
As for using console, that avoids my original complaint, that it could break Ironman games. Using the console does that already.
Is it possible to give every single living character in the game a trait? I'm trying to make everyone immortal. (Don't ask why.)
namespace = immortal
character_event = {
id = immortal.1
hide_window = yes
is_triggered_only = yes
trigger = {
religion = catholic
controls_religion = yes
NOT = {
has_global_flag = immortals_set
}
}
immediate = {
set_global_flag = immortals_set
any_character = {
add_trait = immortal
}
}
}
character_event = {
id = immortal.2
hide_window = yes
is_triggered_only = yes
immediate = {
add_trait = immortal
}
}
After changing NDefines.NCharacter.MAX_CHILD_BIRTH_AGE, characters still refuse to marry my over-45 daughter, saying that she is past childbearing age. Is there anywhere else that needs to be modified, or is that hard coded?
So how about an event that has no clickable options, thus forcing the player to kill the program? We see that all the time in this thread as an error, so just do it on purpose.Of course the event could be removed by someone else, much like the checks in the base game can be disabled by a modder. That is impossible to prevent. However, I think there is a rather large difference between someone releasing a mod that locks down free access to DLC content unless someone else mods the mod and releasing a mod that allows free access to DLC content for some time without someone else modding the mod. Any mod of the mod, assuming the original modder hasn't had a hand in it beyond making the original mod, is not something they are responsible for, and thus a mod of the mod violating the rules is not their fault, but if the original version violates the rules then the modder that released the original mod is to blame.
This is the only other thing I can think of.After changing NDefines.NCharacter.MAX_CHILD_BIRTH_AGE, characters still refuse to marry my over-45 daughter, saying that she is past childbearing age. Is there anywhere else that needs to be modified, or is that hard coded?
NDefines.NCharacter.FEMALE_ATTRACTION_CUTOFF
No, that mechanic is hard-coded. You can change the localisation of born_in_the_purple, and the image, but you cannot duplicate it.Is it possible to create a trait that works like born in the purple, but has a different name?
option = {
name = name = "EVTOPTA_FRG_2"
war = { target = PREV casus_belli = claim thirdparty_title = k_italy tier = KING }
set_global_flag = provence_decides
}
If I recall correctly, that is used to denote female rulers.1) In the converter text files for each converted nation, the leader names have numbers (either 1 or -1) after them. Does -1 mean that those names aren't used for whatever reason, and is changing it as simple as removing the minus?
If I recall correctly, that is used to denote female rulers.