Crusader Kings III

Crusader Kings III

Cultivation
T 19 Apr, 2024 @ 9:42am
Bug Reports
(I'm going to be so bold as start a Bug Reports discussion, feel free to delete it and create your own topic if you'd prefer to be the top post or something!!)
< >
Showing 1-7 of 7 comments
T 19 Apr, 2024 @ 9:50am 
I'm sorry for the block of text (and I'm sorry it keeps getting longer T_T), I'm just excited for the mod :D

So keep in mind I'm not a modder, I'm just some nerd who likes editting mods to my liking; however, through the power of repeated observation and ck3tiger/ck3tiger for VSCode (both of which I highly recommend, they find syntax errors, missing localization, incorrect or missing scopes, etc.), I have found some bugs:

1) for the roots, the birth values above 1 (e.g. birth = 5) are incorrect; the value must be between 0 and 1; judging from the values for, say, the beauty traits, I believe it's a percent chance out of 100 (1.0); additionally for the roots, you forgot to add excellent_roots as an opposite trait in the other four roots, and forgot heavenly_roots as an opposite in excellent_roots; additionally, you have poor_roots marked as good = yes, which might not be intended?

2) traits no longer use a defined "index = ####", they're automatically assigned, so that can be removed

3) a lot of your files are in UTF-8 encoding (all non localization I think), but the game wants them in UTF-8 with BOM encoding; I think they still work, but the game will complain and there might be other issues I don't know of

4) animation = surprise doesn't exist, you probably mean animation = shock

5) you're missing the effect set_senior_immortal_age in 3217944322\common\scripted_effects\cu_event_effects.txt; I believe it should be set_elder_immortal_age

6) in scripted_effects\cu_decision_effects.txt, you have these effect = {...} that are not needed/are an unexpected block, which might break it. I believe it would work if you just take the inside of the blocks out into the base level of the effect

7) you're missing the artifact history history_cultivation_book; I think you'll need three keys in your .yml in the format <your key>, artifact_history_<your key>_title and artifact_history_<your key>_desc. The .yml keys are history_cultivation_book:0 "...", artifact_history_history_cultivation_book_title:0 "..." and artifact_history_history_cultivation_book_desc:0 "..." I'm unable to get it to work by monkey-see-monkey-do copying syntax and such from the base game files, so I dunno on this one. You might need to switch to using created_before_history or one of the other base game keys

8) rather than calling a trigger and effect in
random_yearly_playable_pulse = {...}
(which I don't believe works correctly?), I believe you should instead call
yearly_playable_pulse = { on_actions = { cultivation_random_yearly_playable_pulse } }
and have cultivation_random_yearly_playable_pulse = {...} contain verbatim your current random_yearly_playable_pulse = {...}. at the very least ck3tiger complains about the trigger being in the random_yearly_playable_pulse on action, but doesn't when I changed it to the aforementioned solution

9) those custom_description = {...} blocks in your cu_artifact_modifiers.txt are invalid; I believe you can just define them in the localization .yml (in format foundation_cultivation_book_modifier:0 "...") as they're just regular text descriptions

10) you're missing custom localizations (these keys need to be in quotes and have an accompanying key definition in common\trigger_localization\<your file>.txt, as well as an accompanying localization in your .yml; I'd look at, say, has_two_castle_county in the base game's common\trigger_localization\01_decision_triggers.txt as an example, since I think you only need the first person localization; I also believe you could just use a universal breakthrough_decision_valid_description key instead of having a different one for each trait, as it's easier but that's up to you): breakthrough_decision_1_valid_description through breakthrough_decision_6_valid_description

11) you're missing missing localizations for : cultivate.1051.c.tooltip, trait_track_soul_desc, nascent_cultivation_book, nascent_cultivation_book_desc... (EDIT: you have trait_track_suol_desc and nascent_cultiavtion_book, so some are misspellings)

12) This isn't a bug, but I added to the effect block for give_spiritual_roots_decision:
effect = { hidden_effect = { every_ruler = { limit = { is_ai = yes is_cultivator = no OR = { is_landed = yes any_held_title = { tier >= tier_duchy is_head_of_faith = yes } } highest_held_title_tier >= tier_duchy } random_list = { 10000 = { # no roots } 100 = {add_trait = poor_roots} 1000 = {add_trait = normal_roots} 100 = {add_trait = good_roots} 10 = {add_trait = excellent_roots} 1 = {add_trait = heavenly_roots} } # I don't know why I have to wrap in scope, # but ck3tiger errors if not save_scope_as = a_non_cultivator_ruler scope:a_non_cultivator_ruler = { every_child = { # kids could take rulership limit = { is_ai = yes is_cultivator = no } random_list = { 10000 = { # no roots } 100 = {add_trait = poor_roots} 1000 = {add_trait = normal_roots} 100 = {add_trait = good_roots} 10 = {add_trait = excellent_roots} 1 = {add_trait = heavenly_roots} } } every_heir = { # non-kid-of-ruler could take rulership limit = { is_ai = yes is_cultivator = no } random_list = { 10000 = { # no roots } 100 = {add_trait = poor_roots} 1000 = {add_trait = normal_roots} 100 = {add_trait = good_roots} 10 = {add_trait = excellent_roots} 1 = {add_trait = heavenly_roots} } } } } this.dynasty = { every_dynasty_member = { limit = { is_cultivator = no is_ai = yes } random_list = { 10000 = { # no roots } 100 = {add_trait = poor_roots} 1000 = {add_trait = normal_roots} 100 = {add_trait = good_roots} 10 = {add_trait = excellent_roots} 1 = {add_trait = heavenly_roots} } } } } trigger_event = { id = cultivate.001 } show_as_tooltip = { give_spiritual_roots_decision_effect = yes } }
to allow for the mod to be added mid-game, I believe that has the intended effect of rolling roots on non-trivial rulers

13) this one might not be a bug, but instead be intended, but the random_cultivator_pill_root_effect has a 1000000 chance of upgrading your spiritual root if you're at the foundation_establishment level, while at other levels it's only a 1 chance; is that intended?

14) minor, but I believe that the following might be a bit less resource intensive way of running the on_action (since it cuts out a lot of checks):
on_birthday = { on_actions = { delay = { days = { 1 100 } } #to avoid them always firing the same day cultivator_on_birthday start_cultivating_on_action } } cultivator_on_birthday = { trigger = { is_cultivator = yes has_trait = spiritual_roots } first_valid_on_action = { # since only one fires anyway qi_gathering_on_action foundation_establishment_on_action core_formation_on_action nascent_soul_on_action spirit_severing_on_action dao_seeking_on_action immortal_ascension_on_action } on_actions = { delay = { days = 15 } breakthrough_on_action } }

15) give_spiritual_roots_decision, despite only being shown for non-ai, has ai_check_interval = 3 (months); since it's not shown, I think it doesn't matter, but consider changing it to ai_check_interval = 0

16) You should add a few is_capable_adult = yes or is_incapable = no checks to things like starting cultivation; I noticed my incapable daughter, who was so when I installed the mod, is now a cultivator, which seems wrong. In all, I added a is_incapable = no to the following: my cultivation_random_yearly_playable_pulse, my cultivator_on_birthday, your start_cultivating_on_action, and your breakthrough_on_action. I also changed cure_incapable such that one has to be at least core formation level to be cured, again for balance.

(EDIT explanations:
Apr.19: fixed formatting; corrected points about history_cultivation_book and set_senior_immortal_age; corrected point about missing locs; added to point about roots; added point 12-15;
Apr.20: moved start_cultivating_on_action back to on_birthday proper;
Apr.21: added point 16)

PS: thank you for this great mod!!
Last edited by T; 21 Apr, 2024 @ 8:33am
notorius_marauder 22 Apr, 2024 @ 1:32am 
bruh @M when using ck3tiger it shows 1k erros wth
notorius_marauder 22 Apr, 2024 @ 2:11am 
ok i was stupid and didnt know installed another ck3t tool extension on vs code
T 23 Apr, 2024 @ 9:50am 
Things I noticed in your new update:

17) under cultivation_random_event.0741, the send_interface_toast = {...} should be inside the immediate = {...} block

18) in encounter_events.txt, you have two instances of var.danger_value where you meant var:danger_value (i.e. you used a period . not a colon : )

19) in elective_succession_scripted_modifiers.txt, you have some references to
scope:title = { has_title_law = scandinavian_elective_succession_law }
that the compiler doesn't seem to like, and are probably unneeded? As well as some references to gaelic_elective_succession_law

20) missing localization for tooltip_sect_vote_strength_is_diarch and tooltip_sect_vote_strength_is_soul_formation_cultivator; as well, you have tooltip_sect_vote_strength_is_soul_formation_cultivator for the last three entries of elector_vote_strength for sect_elective
notorius_marauder 27 Apr, 2024 @ 12:03am 
i guess thats all the bugs you found? almost finish to publish the submod for this mod i hope the author dont mind
Thot Smasher 69 27 Apr, 2024 @ 10:40am 
authors dont really care, just remember to categorize that it also needs this mod as a requirement
Roland of Gilead 27 Apr, 2024 @ 5:05pm 
Yeah, just let us know so we can subscribe to the fix :)
< >
Showing 1-7 of 7 comments
Per page: 1530 50