Hi all, really quick question. Is it possible to make a certain innovation faster to discover than the others?
completely_controls_region = custom_slavia
unite_the_slavs_decision = {
effect = {
save_scope_as = slav_uniter
show_as_tooltip = { unite_the_slavs_decision_effects = yes } #Actually applied in east_europe.0010 - prestige, laws, title, innovation effects
custom_tooltip = unite_the_slavs_decision_effects_great_slavia
unite_the_slavs_decision_effects_great_slavia:0 "If you control certain areas of the [region|E] of [great_slavia.GetName], you may choose to also make them [de_jure|E] of the [slavia.GetName]"
unite_the_slavs_decision_titles_tt:2 "Every Slavic [kingdom|E] [title|E] will become [de_jure|E] of the [slavia.GetName]"
# Inform players of the de jure drift
title:e_slavia = { custom_tooltip = unite_the_slavs_decision_titles_tt } #Scope change for tooltip formatting.
title:e_slavia = { save_scope_as = slavia } #For localisation
region:custom_great_slavia = { save_scope_as = great_slavia } #For localisation
geographical_region:custom_great_slavia = { save_scope_as = great_slavia } #For localisation
Is it possible to make some specific innovations faster to discover? Or, if that's not possible, have them partially (like 30% of the progress bar) unlocked at the start of the game?
Also, alternatively, is it possible to create a modifier that gives a bonus to the Cultural Fascination Progress for only a specific innovation?
_culture.info
:Name of the file is the culture key that should get the history.
Culture groups can be used too; if a file exists for an individual culture that'll be used rather than the group. E.G., if "north_germanic_group.txt" and "norwegian.txt" both exist, Norwegian culture will use "norwegian.txt" while Swedish culture will use "north_germanic_group.txt".
date = { # When is executed
discover_innovation = innovation_key # Discovers this innovations. There can be multiple per date.
add_innovation_progress = { # Advances a % defined on the defined innovation. There can be multiple per date.
culture_innovation = innovation_key # Innovation
progress = 50 # How much progress dos it gains
}
join_era = culture_era_key # Joins the defined era. Only one per date.
progress_era = 50 # Progress inthe current era. Only one per date.
}
##################################
Everything is executed in the order specified before
# Anglo_saxon
867.1.1 = {
discover_innovation = innovation_motte
discover_innovation = innovation_catapult
discover_innovation = innovation_quilted_armor
#
discover_innovation = innovation_gavelkind
discover_innovation = innovation_currency_01
discover_innovation = innovation_crop_rotation
discover_innovation = innovation_ledger
add_innovation_progress = {
culture_innovation = innovation_barracks
progress = 50
}
}
950.1.1 = {
discover_innovation = innovation_barracks
discover_innovation = innovation_bannus
discover_innovation = innovation_mustering_grounds
#
discover_innovation = innovation_development_01
discover_innovation = innovation_city_planning
discover_innovation = innovation_plenary_assemblies
discover_innovation = innovation_casus_belli
#
join_era = culture_era_early_medieval
}
1066.1.1 = {
discover_innovation = innovation_burhs
discover_innovation = innovation_mangonel
discover_innovation = innovation_house_soldiers
#
discover_innovation = innovation_hereditary_rule
discover_innovation = innovation_manorialism
discover_innovation = innovation_currency_02
discover_innovation = innovation_baliffs
#
discover_innovation = innovation_hird
}
DeclareWarInteractionWindow = {
...
GetCbType -> CasusBelliType
...
}
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'lover.0003' found. New Location: 'events/zzoverwrite_mm_relations_events/zz_mm_lover_events.txt:8', Previous Location: 'events/relations_events/lover_events.txt:594'
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'knights.0001' found. New Location: 'events/zzoverwrite_mm_war_events/zz_mm_knight_events.txt:6', Previous Location: 'events/war_events/knight_events.txt:10'
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'seduce_outcome.8101' found. New Location: 'events/scheme_events/seduce_scheme/seduce_scheme_outcome_events.txt:2928', Previous Location: 'events/zzoverwrite_mm_scheme_events/zz_overwrite_mm_seduce_scheme/zz_mm_seduce_scheme_outcome_events.txt:4'
How do I make sure my events overwrite vanilla events? At first I thought it was related to paths/filenames but I can't figure out just how to make it work. For example, here's 3 lines from my error.log:
Code:[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'lover.0003' found. New Location: 'events/zzoverwrite_mm_relations_events/zz_mm_lover_events.txt:8', Previous Location: 'events/relations_events/lover_events.txt:594' [22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'knights.0001' found. New Location: 'events/zzoverwrite_mm_war_events/zz_mm_knight_events.txt:6', Previous Location: 'events/war_events/knight_events.txt:10' [22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'seduce_outcome.8101' found. New Location: 'events/scheme_events/seduce_scheme/seduce_scheme_outcome_events.txt:2928', Previous Location: 'events/zzoverwrite_mm_scheme_events/zz_overwrite_mm_seduce_scheme/zz_mm_seduce_scheme_outcome_events.txt:4'
As you can see, for the first two events it correctly overwrites the vanilla event with mine, but for the third event it's actually overwriting my event with the vanilla one. I do not know why, I've tried a variety of file names and file structures but I have yet to find one that gets it to load my event after the vanilla event.
You have to overwrite the original file, its a direct swap. You have to use the same path.
Instead or [ events/zzoverwrite_mm_relations_events/zz_mm_lover_events.txt ] put your updates in this file in your mod [ events/relations_events/lover_events.txt ]
Perhaps the others didn't cause a big enough error? the mods are only additions or overwrites to the vanilla therefore anything not in the mod will still be loaded first. If the path isn't the same both get loaded. Check Documents\Paradox Interactive\Crusader Kings III\logs\error.log even if the system allowed it doesn't mean it didn't count it as an error.The first two work though. Only the last one doesn't work.
I suppose I can replace the entire file if I have to, I'd really rather have avoided it, but I was wondering why in the first two cases it would overwrite the vanilla event with mine, and in the last case it overwrites my event with the vanilla one.
Perhaps the others didn't cause a big enough error? the mods are only additions or overwrites to the vanilla therefore anything not in the mod will still be loaded first. If the path isn't the same both get loaded. Check Paradox Interactive\Crusader Kings III\logs\error.log even if the system allowed it doesn't mean it didn't count it as an error.
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'lover.0003' found. New Location: 'events/zzoverwrite_mm_relations_events/zz_mm_lover_events.txt:8', Previous Location: 'events/relations_events/lover_events.txt:594'
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'knights.0001' found. New Location: 'events/zzoverwrite_mm_war_events/zz_mm_knight_events.txt:6', Previous Location: 'events/war_events/knight_events.txt:10'
[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'seduce_outcome.8101' found. New Location: 'events/scheme_events/seduce_scheme/seduce_scheme_outcome_events.txt:2928', Previous Location: 'events/zzoverwrite_mm_scheme_events/zz_overwrite_mm_seduce_scheme/zz_mm_seduce_scheme_outcome_events.txt:4'
My bad I had crash log in my mind. According to the log it moved to the new location, odd that it isn't working. How are you firing the event? normally or directly through debug? If through debug have you tried having it run through the seduce scheme?Oh, sure, they show up as errors. That's where I pasted it from.
Code:[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'lover.0003' found. New Location: 'events/zzoverwrite_mm_relations_events/zz_mm_lover_events.txt:8', Previous Location: 'events/relations_events/lover_events.txt:594' [22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'knights.0001' found. New Location: 'events/zzoverwrite_mm_war_events/zz_mm_knight_events.txt:6', Previous Location: 'events/war_events/knight_events.txt:10'
Notice in these two cases, it says "new location" and lists my mod folder, and then in "previous location" it shows the base game folder. However, that is reversed here:
Code:[22:22:57][jomini/script_system/jomini_eventmanager.h:204]: Duplicated event ID 'seduce_outcome.8101' found. New Location: 'events/scheme_events/seduce_scheme/seduce_scheme_outcome_events.txt:2928', Previous Location: 'events/zzoverwrite_mm_scheme_events/zz_overwrite_mm_seduce_scheme/zz_mm_seduce_scheme_outcome_events.txt:4'
Now, in game, it uses my events for the first two events, but it uses the base game event for the last one. So despite the "Duplicated event ID" line, it seems like these things work, so I was hoping to figure out why the last event is so problematic. But I guess I can just overwrite the whole file if it comes down to it.
My bad I had crash log in my mind. According to the log it moved to the new location, odd that it isn't working. How are you firing the event? normally or directly through debug? If through debug have you tried having it run through the seduce scheme?
I only discovered it wasn't working when the event fired and it didn't have the change I included in it (I tried to disable the hard reject option if it had a certain trigger, but since I got hard rejected I knew it wasn't working). This happened a few times before I looked at the log and noticed the discrepancy between the first two lines and the third one.
Hmm. Id rewrite the file and see if it still doesn't fire properly, it may just be something in the event code itself that is causing the line to be ignored. You could always revert back after you troubleshoot.
It's not that it's being ignored per se, it's just if you check the "New Location" and "Previous Location" entries in the error.log, it seems to be reading my event first and then replacing it with the base game one. It actually did this for the lover event too until I changed the file name by adding "zz" to the front, which I thought at the time meant I could manipulate the load order by changing the file name. But that doesn't seem to be working here, for some reason it's always reading the base game's seduce_outcome.8101 after it reads mine. I will try a new file, and more file names/file paths, but so far nothing I've been able to think of seems to make it load mine after it loads the base game's.
So basically you want to grab an item from a list and pair it with another random item and then remove them both?
Consider using awhile
block, since this will allow you to pick the first character and then randomly pick another.
Something like this:
Code:while = { limit = { any_in_list = { list = my_list count > 1 } } random_in_list = { list = my_list save_temporary_scope_as = picked_character # the picked character is removed here in case they don't have any consorts or lovers available # and must be removed from the list to satisfy the while block remove_from_list = scope:picked_character random_in_list = { list = my_list limit = { OR = { has_relation_lover = scope:picked_character is_consort_of = scope:picked_character } } save_temporary_scope_as = paired_character # Do something remove_from_list = scope:paired_character } } }
Also, by any chance are you making some kind of CK3 speed dating mod or something?
So I made a decision to allow for switching to Roman culture, and it worked pretty much perfectly (almost) first time. However what was less perfect was that on doing so the spot of culture head remained empty, and all the culture-specific innovations (longships, west african canoes, that sort of thing) were seemingly available.
I dunno, is there some sort of 'refresh' command that will get the game to wake up and sort out a culture that has only just (re-)emerged?
One more thing for my Slavia project. Is it possible to move a culture from one culture group to another? Because it seems weird to me that upon making a big deal out of unifying all Slavs into one empire each Slavic group still has the same exact negative opinion modifier towards the others that they'd have towards the Germans or the Mongols. So I was thinking about creating a giant Slavic culture group with no cultures of its own and then moving all individual West, East and South Slavic cultures to that through the decision.
I guess the same result could be achieved by filling that Slavic culture group with copies of each individual Slavic culture and then shifting, for example, West Slavic Polish characters, zones and whatnot to Slavic Polish culture and do it for each individual Slavic culture, but that's a ton of new localization and a ton of extra code in the event. So if it's possible to shift cultures from one group to another that'd be much faster.
Also, I'd still appreciate answers to my issue with how to get a clickable name of my custom region to appear in my tooltip (and possibly how to make that tooltip appear at the end of the decision's description), as well as whether it's possible to change a title's name to a custom one through an event or not. I found an event that changes a title's coat of arms, but no examples of titles being renamed.
set_title_name
:# using England as an example
title:k_england = {
set_title_name = new_england_name
}
# localization
l_english:
new_england_name:0 "New England"
new_england_name_adj:0 "New English"
set_title_prefix
and set_definitive_form = yes
to fine-tune it some more, though I'm less sure about how those work in practice.