This guide describes the steps to make a mod compatible with patch 3.0.X from patch 2.8.3.2.
Note that this does not replace the usual step of merging files, in case the mod modifies some vanilla files.
In case of issues, run the latest version of The Validator, and try activating debug launch options, which will now report failed asserts in log files.
province_setup is no longer used when loading from saves, so no more need to duplicate information with province history files.
There is now more than 1 vanilla trade route: for custom maps, either replace_path = "common/trade_routes" or blank the new file.
When overriding a graphic file by name, the extension now has to be the same (.tga or .dds).
sort_priority in CBscan_use_gui = {
check_if_crusader_trigger = yes
}
on_add = {
(...)
hidden_tooltip = { fire_haruspicy_event_effect = yes }
}
male_consort entry is expected by the engine inside common/minor_titles (will cause CTD if missing).OR = {
is_female = no
AND = {
religion = cathar
liege = { religion = cathar }
}
AND = {
religion = messalian
liege = { religion = messalian }
}
}
liege = {
OR = {
primary_title = {
has_law = status_of_women_4
}
has_game_rule = {
name = gender
value = all
}
}
}
are moved to scripted triggers (and enriched to handle patriarchal/matriarchal religion features:
male_can_hold_minor_title_trigger = yes female_can_hold_minor_commander_title_trigger = yes
retire_effect = {
(...)
if = {
limit = {
NOT = { age = 65 }
health = 3
NOT = { is_sick_or_injured_trigger = yes }
can_be_councilmember_king_trigger = yes
}
FROM = {
opinion = { who = ROOT modifier = opinion_resigned_from_council }
}
}
}
common\religions, regardless of their group. Previously, only Pagans could refuse on religious grounds within their group.reformer_head_of_religion must now be set on the reformed version of the religion instead of the original religion.can_hold_temples now causes CTD. It was deprecated since patch 2.4.Note: all previous portrait packs have been impacted by the patch, so you may need to unzip the portrait DLCs again, to use as reference.
PORTRAIT_westerngfx_male are indicated:"GFX_character_background:p0" "GFX_western_male_clothes_behind:p3:c0" "GFX_western_male_headgear_behind:p5:c1" -> "GFX_frankish_male_overlayer_behind:p31" -> "GFX_character_special_crowns_behind:p18" "GFX_western_male_hair_behind:p1:h:y" "GFX_western_male_beard_behind:p4:h:y" (1)":p5:c6" "GFX_western_male_base:p2" "GFX_western_male_neck:d0" "GFX_western_male_cheeks:d4" "GFX_western_male_chin:d1" -> "GFX_character_western_male_physique:p21" "GFX_western_male_mouth:d2:o75x49" (2)"GFX_western_male_ear:d7:o27x54" "GFX_western_male_nose:d3:o80x65" "GFX_western_male_eyes:d6:o47x74" "GFX_western_male_eyes2:d6:e:o74x92" -> "GFX_character_freckles:p20" -> "GFX_character_western_male_pale:p22" "GFX_character_scars:p7:y" -> "GFX_character_scars_mid:p25" -> "GFX_character_scars_high:p26" -> "GFX_character_black_eye:p23" "GFX_character_reddots:p8" "GFX_character_boils:p9" -> "GFX_character_tattoos:p28" -> "GFX_character_warpaint:p29" -> "GFX_character_harelip_western:p24" "GFX_character_blinded_eyes:p10" -> "GFX_character_possessed:p30" "GFX_western_male_clothes:p3:c2" "GFX_western_male_headgear_mid:p5:c3" "GFX_western_male_beard:p4:h:y" -> "GFX_frankish_male_overlayer_mid:p31" (3)"GFX_character_eyepatch:p13:y:o32x63" "GFX_western_male_hair:p1:h:y" (1)":p5:c7" "GFX_character_mask:p12:y:o40x45" "GFX_western_male_clothes_infront:p3:c4" "GFX_western_male_headgear:p5:c5" -> "GFX_frankish_male_overlayer:p31" -> "GFX_character_special_crowns:p19" -> "GFX_character_special_helmets:p34" -> "GFX_character_special_masks:p35" -> "GFX_character_special_scepters:p36" -> "GFX_character_blood_splatter:p27" "GFX_character_imprisoned:p6" "GFX_player_overlay:p11"
Notes:
:p5:c6 (headgear behind hairlayer) and :p5:c7 (headgear hairlayer)GFX_western_male_ear:d7 is movedGFX_character_eyepatch:p13 is movedGFX_character_scars_light, GFX_character_scars and GFX_character_scars_dark, loosely correlated with the culturegfx skin_tone.westerngfx is now added explicitly as default in vanilla graphical_cultures when applicable.Note: it's important to always use a vanilla culturegfx as a backup for players without any portrait packs.
combat_rating attribute has been scaled up by a factor of 5 to 10.
Custom modifiers, traits, scripting checks, etc. need to be updated to take into account the new balance:
silly_events can be checked for easter egg events, if applicable.
A new folder common/alternate_start needs to be adapted to the mod settings.
To make a mod fully compatible with alternate start scenario, some tags need to be added:
In cultures nomadic_in_alt_start = yes and alternate_start = { has_alternate_start_parameter = { key = culture value = full_random } } if applicable.
In game rules: alt_start_default = off
ai = no and only_playable = yes are now valid pre-trigger for decisions, to optimize them.dynasty = random is sometimes replaced by dynasty = actually_culture in create_character commands.trait = fair is replaced by has_fair_trait_trigger = yestrait = ugly is replaced by has_ugly_trait_trigger = yesNOT = { has_character_flag = is_child_of_destiny } is added to all childhood personality eventsif = {
limit = { religion = jain }
piety = -20
custom_tooltip = { text = jain_ahimsa_tooltip }
}
is replaced by
pacifists_lose_piety_effect = yes
has_job_title = yes can be used a character event pre-trigger (typically for job title events)remove_trait = wounded, consider using the new add_scarred_tiered_effect = yes as well to increase the variable scarred_variableadd_blood_splatter_effect = yes (combat, hunting, ...) or apply_random_minor_injury_effect = yes (concussion, ...) in custom events, so that it reflects in portraitsgain_weight_small_effect = yes (feast, wedding, glutton events...) / lose_weight_small_effect = yes (hunting, travelling, ...) / gain_weight_medium_effect = yes / lose_weight_medium_effect = yes (oubliette, torture, ...) for events that switch from temperate to drunkard or gluttonous. In order to reflect in portraits weight_trait_check_effect = yes must be called. Note that a 5 year pulse event will re-calculate the physique_variable based on traits.Alternate start moddingMerging guidePatch 2.4Patch 2.4 mod compatibility guidePatch 2.5 mod compatibility guidePatch 2.6 mod compatibility guidePatch 2.7 mod compatibility guidePatch 2.8 mod compatibility guidePatch 2.8.3.2Patch 3.0.XPatch 3.1 mod compatibility guidePortrait moddingThe ValidatorTroubleshooting创建模组合并指南彻底转换指南模组安装程序创建指南游戏存档兼容性