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_priority
in 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_consort
entry 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_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.
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_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:
- (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:d7
is moved - (3)
GFX_character_eyepatch:p13
is moved
- For scars there are 3 variants:
GFX_character_scars_light
,GFX_character_scars
andGFX_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
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.
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 = no
andonly_playable = yes
are now valid pre-trigger for decisions, to optimize them.dynasty = random
is sometimes replaced bydynasty = actually_culture
in create_character commands.trait = fair
is replaced byhas_fair_trait_trigger = yes
trait = ugly
is replaced byhas_ugly_trait_trigger = yes
NOT = { 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 = yes
can be used a character event pre-trigger (typically for job title events)- When using
remove_trait = wounded
, consider using the newadd_scarred_tiered_effect = yes
as 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 = yes
must be called. Note that a 5 year pulse event will re-calculate the physique_variable based on traits.