历史模组制作

咯咯炀讨论 | 贡献2020年9月28日 (一) 10:26的版本 (同步到官方wiki 09:01, 22 September 2020‎ Coriath)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

History modding is about applying changes to the data stored at the path game/history. The history folder contains subfolders for characters, cultures, provice mapping, provinces, titles and wars. Character modding is explained on a dedicated site. Except for characters, where history (birth and death) and other data like name and traits are definded, history modding is only about changing the history not the existence of for example a title.

Title history modding

Modding title history means to make changes about the holder history of landed titles and it's affiliation to a specific liege. The files for every existing dejure kingdom can be found at game/history/titles. The file contains the data for the kingdom, as well as all of it's dejure duchies and counties. For example the county of Lyon in the file k_burgundy.txt looks like this:

c_lyon = {
	867.1.1 = { change_development_level = 8 }
	1066.1.1 = { change_development_level = 10 }
	
	765.1.1 = {
		liege = "k_lotharingia"
		holder = 91491 #VUODO, historical count as placeholder
	}
	855.8.23 = {
		liege = "k_burgundy"
		holder = 144998
	}
	863.1.1 = {
		holder = 168238  #Guilhem I de Forez
	}
	863.1.25 = {
		liege = d_dauphine
	}
	871.1.1 = {
		holder = 168239  #Guilhem II de Forez
	}
	925.8.27 = {
		holder = 168240  #Artaud I de Forez
	}
	933.1.1 = {
		liege = k_burgundy
	}
	960.1.1 = {
		holder = 168241  #Geraud I de Forez
	}
	993.1.1 = {
		holder = 168242  #Artaud II de Forez
	}
	1000.10.11 = {
		holder = 168243  #Artaud III de Forez
	}
	1017.1.1 = {
		holder = 10028
	}
	1032.1.1 = {
		liege = e_hre
	}
	1058.1.1 = {
		holder = 20290
	}
	1079.12.1 = {
		holder = 212806
	}
	1097.6.1 = {
		holder = 212807
	}
	1107.1.1 = {
		holder = 205681 #Guy d'Albon
	}
	1138.10.27 = {
		holder = 205680 #Guigues d'Albon
	}
	1163.1.1 = {
		liege = "k_france"
	}
	1187.1.1 = {
		liege = "d_burgundy"
	}
	1193.1.1 = { #Guigues III should hold Lyon from 1193 to his death, after which his brother Archbishop Renaud holds it.
		holder = 205684
	}
	1202.11.28 = {
		holder = 205685 #Archbishop Renaud d'Albon
	}
	1226.10.21 = {
		holder = 138427 #ArchBishop Robert d'Auvergne
	}
	1234.1.1 = {
		holder = 138425 #ArchBishop Raoul I de La Roche-Aymon
	}
	1236.1.1 = {
		holder = 138437 #Bishop Aimery de Rives
	}
	1245.1.1 = {
		holder = 70913 #ArchBishop Philippe I de Savoie
	}
	1267.1.1 = {
		holder = 138438	#Bishop Guy II
	}
	1268.1.1 = {
		holder = 71827 #ArchBishop Pierre II de Tarentaise/future Pope Innocent IV
	}
	1273.1.1 = {
		holder = 138439	#ArchBishop Aymar de Roussillon
	}
	1283.1.1 = {
		holder = 138453 #ArchBishop Raoul II de la Tourette
	}
	1288.1.1 = {
		holder = 138404 #ArchBishop Bérard de Got brother of Pope Clement V
	}
	1294.1.1 = {
		holder = 138440 #ArchBishop Henri I de Villars
	}
	1301.1.1 = {
		holder = 138441	#ArchBishop Louis de Villars
	}
	1308.1.1 = {
		holder = 70926 #ArchBishop Pierre de Savoie
	}
	1312.4.10 = {
		liege = "k_france"
	}
	1332.11.1 = {
		holder = 138442 #ArchBishop Guillaume I de Sure
	}

}

Every title needs his id, like here c_lyon. The Duchy of Viennois for example, it's dejure liege, would have the id d_dauphine. The second step determines the development of Lyon at the two starting dates. In 867 the county has a development of 8 and in 1066 a development of 10. The following lines set holder and liege at a specific date. It's possible to change the holder by inserting the id of another character. If no other liege or holder is added, they will be identical to the previous entry. A completely missing liege will result in an independent holder. For example Guilhelm de Forez becomes holder of the county with the king of burgundy as his liege on the 1.1.863 and gets transferred as a vassal to the Dauphin of Viennois in 863. He looses the title in 871 to his heir Guilhem II. As there are no changes between 863 and 867 Guilhelm I de Forez will be the Count of Lyon starting at the early bookmark.
In the textfile the lines look like this:

855.8.23 = {
		liege = "k_burgundy"
		holder = 144998
	}
	863.1.1 = {
		holder = 168238  #Guilhem I de Forez
	}
	863.1.25 = {
		liege = d_dauphine
	}
	871.1.1 = {
		holder = 168239  #Guilhem II de Forez
	}
	925.8.27 = {
		holder = 168240  #Artaud I de Forez

To change a liege at a certain date the line liege = "x" needs to be added inside the brackets of year.month.day = { }. This doesn't change the dejure liege, only which kingdom or duchy controls the county. The same can be done with the holder by inserting holder = id. Character ids can be found in the one of the culture.txt in game/history/characters.

Changes between the bookmarks are needed, even if due to Crusader Kings 3 beeing a giant sandbox the history will never happen like planned in the file. In Crusader Kings 2 you could see the lineage in the title history, which doesn't exist up to now in Crusader Kings 3. Nonetheless the assigned holders will still have been holders between the assigned dates. The only way to see old title holders is in the dynasty tree. For example if a member of the Forez-Dynasty is played in 1066, his ancestors Guilhelm I and II and Artaud I are shown as Counts of Lyon.
If modding titles, it is advised to adjust the living dates to those of the assigned holder. For example if an newly added character is assigned as Count of Lyon his death should be identical to the date when a successor takes over the title. If forgotten the mod will keep working, but in the dynasty tree the predecessor won't be Count X of Lyon but instead X of Dynasty Y because he will have lost the title before his death.

Culture history modding

The folder game/history/cultures contains the culture files for all culture groups. For example the frankish culture groups file looks like this:

# Frankish
# French
# Occitan
# Outremer

# Norman in separate file

867.1.1 = {
	discover_innovation = innovation_bannus
	discover_innovation = innovation_catapult
	discover_innovation = innovation_quilted_armor
	#
	discover_innovation = innovation_development_01
	discover_innovation = innovation_gavelkind
	discover_innovation = innovation_currency_01
	discover_innovation = innovation_crop_rotation
	discover_innovation = innovation_ledger
}

950.1.1 = {
	discover_innovation = innovation_motte
	discover_innovation = innovation_barracks
	discover_innovation = innovation_mustering_grounds
	#
	discover_innovation = innovation_city_planning
	discover_innovation = innovation_plenary_assemblies
	discover_innovation = innovation_casus_belli
	#
	join_era = culture_era_early_medieval
}

1066 = {
	discover_innovation = innovation_horseshoes
	discover_innovation = innovation_mangonel
	discover_innovation = innovation_arched_saddle
	#
	discover_innovation = innovation_hereditary_rule
	discover_innovation = innovation_royal_prerogative
	discover_innovation = innovation_manorialism
	discover_innovation = innovation_currency_02
}

It only contains the innovations discovered at a certain date. The lines are only true for the specific starting date. For example starting in 867 catapults are already discovered, but the date of discovery of the innovation barracks now depends on the cultural heads fascination and not on the year mentionned in the file (which is 950). If starting at a newly created bookmark in 950, every mentioned innovation as well as the past ones from 867 will have been discovered at game start.
Any existing innovation can be added here at a specific date. For example primogenitur can already exist in year 1000:

1000.1.1 = {
	discover_innovation = innovation_primogenitur
}


Innovation ids can be found in game/common/culture/innovations. Which culture is part of which culture group is defined by the associated file in game/common/culture/cultures. Changing cultures or creating new ones needs it's own article.