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.
Folders
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).
CBs
- There's a new optional
sort_priorityin CBs - Some CBs now check for on-going crusades via:
can_use_gui = {
check_if_crusader_trigger = yes
}
- For compatibility with Haruspicy religion feature, the following needs to be added to all CBs:
on_add = {
(...)
hidden_tooltip = { fire_haruspicy_event_effect = yes }
}
Minor titles
- A new
male_consortentry is expected by the engine insidecommon/minor_titles(will cause CTD if missing). - The feminist religion and status of women checks:
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
- The following effects are added to job & minor titles that vote on the council:
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 }
}
}
}
Religions
- Intermarrying AI logic has been changed, so now all religions that should be able to intermarry need to be specified in their entry of
common\religions, regardless of their group. Previously, only Pagans could refuse on religious grounds within their group. reformer_head_of_religionmust now be set on the reformed version of the religion instead of the original religion.can_hold_templesnow causes CTD. It was deprecated since patch 2.4.
Portraits
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.
- New properties up to p36 have been added, so any custom properties needs to be moved to p37 or later. For reference, the new layers for
PORTRAIT_westerngfx_maleare 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:
- (1) Empty layers not used here for headgear (p5) are added for reference:
:p5:c6(headgear behind hairlayer) and:p5:c7(headgear hairlayer) - (2)
GFX_western_male_ear:d7is moved - (3)
GFX_character_eyepatch:p13is moved
- For scars there are 3 variants:
GFX_character_scars_light,GFX_character_scarsandGFX_character_scars_dark, loosely correlated with the culturegfxskin_tone.
- Mods can take advantage of new portrait packs (in case players have the DLC active):
- levantinegfx (typically for cultures already using arabicgfx)
- englishgfx (typically for cultures already using saxongfx)
- trueoccitangfx (typically for cultures already using occitangfx)
- romangfx
- dalmatiangfx
- outremergfx
- italiangfx
- croatsouthslavicgfx
- serbsouthslavicgfx
- magyargfx
- pagangfx
- hellenicgfx
- berbergfx
westerngfxis 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.
Personal combat rescaling
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:
- Berserker: +25
- Master duelist: +20
- Whispering Sword: +15
- Won duel: +10
- Giant: +10
- Sword: +5
- Dwarf: -15
- Old: -15
- Very old: -35
- Obese: -50
- Bedridden illness: -100
New game rules
silly_events can be checked for easter egg events, if applicable.
Alternate starts
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
Misc scripting
ai = noandonly_playable = yesare now valid pre-trigger for decisions, to optimize them.dynasty = randomis sometimes replaced bydynasty = actually_culturein create_character commands.trait = fairis replaced byhas_fair_trait_trigger = yestrait = uglyis replaced byhas_ugly_trait_trigger = yesNOT = { has_character_flag = is_child_of_destiny }is added to all childhood personality events
if = {
limit = { religion = jain }
piety = -20
custom_tooltip = { text = jain_ahimsa_tooltip }
}
is replaced by
pacifists_lose_piety_effect = yes
has_job_title = yescan be used a character event pre-trigger (typically for job title events)- When using
remove_trait = wounded, consider using the newadd_scarred_tiered_effect = yesas well to increase the variablescarred_variable - Consider using
add_blood_splatter_effect = yes(combat, hunting, ...) orapply_random_minor_injury_effect = yes(concussion, ...) in custom events, so that it reflects in portraits - Consider using
gain_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 portraitsweight_trait_check_effect = yesmust be called. Note that a 5 year pulse event will re-calculate the physique_variable based on traits.