编辑游戏存档

本页面所适用的版本可能已经过时,最后更新于2.8

This page is intended to assist with editing the CKII Save File. Before editing save files, it is highly recommended that you create a copy of the files in question. Simple mistakes made while editing can make a save file unplayable. Save-game editing is IMPOSSIBLE on ironman.

File locations

  • Mac: ~/Documents/Paradox Interactive/Crusader Kings II/save games/
  • Linux: ~/.paradoxinteractive/Crusader Kings II/save games/
  • Windows: C:\Users\YOURNAME\Documents\Paradox Interactive\Crusader Kings II\save games

Save files will be compressed (ZIP format) unless you uncheck the box when saving. Autosaves and quick saves are not compressed. The encoding of the save file is Windows-1252.

Editing Characters

Any character in the game can be edited very easily. Any aspect of a character including stats, traits and prestige/piety can be changed. You can open save files in Notepad, but they will take several minutes to load. A more advanced text editor such as Notepad++ is therefore recommended.

In order to edit a character you must first locate them within the file. The Character ID of the player character can be found at the very top of the save file. Other Character IDs can be found in a non-ironman game by using the charinfo console command. When you have the character ID, search the document using Ctrl+F and type in the Character ID followed by =.

(EXAMPLE: 31443=)

If you do not know this number, then simply run a search for the name of the character and cross reference information like birth dates, parent names, or traits (this requires knowing the trait codes). This becomes a lot easier if the character has an uncommon name.

(EXAMPLE: bn="charactername")

The section below, Save File Contents, can help you identify if you are in the right spot.

Once you find the character you are looking for, you can edit any of their features. Numerical values such as health, base stats and fertility are very easy to alter. Traits must be added using their numerical ID as opposed to actual name.

If your character has moved capitals already and you wish to allow them to do it again, change the "moved_capital" variable to "yes" instead of "no", then choose your new capital from within the game. This is very helpful if your landed son inherits from you, as the inheritance causes them to change capitals. Given that rulers normally suffer a prestige penalty for having unlanded sons, most players opt to give them land, only to discover they're stuck with their current capital when the father dies.

Marriage

In order to create a marriage you need both Character IDs. You must search for each character and add the line:

spouse = ID

where the ID is the other characters ID. This will marry the two characters in game. For a free divorce from a non-matrilineal marriage, simply remove this section. In order to divorce a matrilineal marriage, you will also need to remove the section outlined below.

Matrilineal marriage

If you want a matrilineal marriage you will need to add to the relation={} section of the save file. As an example, let's take 1500 as the husband's ID, and 2800 as the wife's ID. Add this to the relation section:

relation=
{
...
diplo_1500= 
{
	2800=
	{
		succession=yes
	}
}
...

If you wish to turn a matrilineal marriage into a normal one, simply find and delete those lines.

Save File Contents

This is the order of content within the Save File. This can help the user navigate the areas of the file that they are trying to access.

Player information

version # game's patch when saved
date # game’s date when saved
player= # brackets containing player’s information
{
	id # player’s character’s ID
	type # 
}
player_realm # player’s main province title ID

# Following information duplicate those found in player's character information
player_name # player’s name (<=> Character’s name + nickname)
player_age # character’s age
player_portrait= # list infos on player’s character
{
	fem # no: male, yes: female
	dna # charater’s DNA
	properties # 
	religion # religion
	culture # culture
	government # government type
	dynasty # dynasty ID
}
is_zeus_save # 
game_rules= # 
{
	alternate_start # 
}
game_speed # game’s speed (0: Paused, 4: Max)
mapmode # 
playthrough_id # 

Dynamic titles

dyn_title # information on titles that are dynamic (for rebels, nomad, etc.)
{
	title # Province title ID (dynamic)
	base_title # title associated with this dynamic title (e.g. if duke of “X” rebels, here will be written “X”)
	is_custom # only appear if yes. yes: title specifically created for this game
	is_dynamic # yes: is dynamic
}

Game information

Unit # 
sub_unit #
start_date # game’s start date
flags= # list of global events and date at which they were triggered
{
	[…]
}
vars= # list of specific variables, with self-explanatory titles
{
	global_amount_of_times_china_civil_war
	global_amount_of_times_china_expansionist_policy
	global_amount_of_times_china_famine
	global_amount_of_times_china_jurchen_invasion
	global_amount_of_times_china_mongol_invasion
	global_amount_of_times_china_plague
	global_amount_of_times_china_stable
	global_amount_of_times_china_unrest
	global_children_of_destiny_bloodlines_founded
	global_children_of_destiny_on_birth
	global_china_change_to_expansionist_count
	global_deaths_in_battle
	global_miracle
	global_raiding_adventurer_recruit_troops
	global_raiding_adventurer_spawn_by_courtier_MTTH
	global_raiding_adventurer_spawn_by_displacement
	global_raiding_adventurer_spawn_by_jurchen_invasion
	global_saint_number
	global_temp_policy_years
	global_temp_status_years
}
saved_event_target= #
{
	#
}

Dynasties

For more information: dynasty modding.

dynasties=
{
	# == Non historical (created for this particulier game) dynasties ==
	10290905= # dynasty’s ID
	{
		name # name of dynasty (i.e. character’s last name
		culture # original culture of dynasty. Useless in-game as used to determine if it will appear as a random name in the Ruler Designer
		religion # original religion of dynasty. Useless
		is_modified=yes #only appear if yes. yes: name of dynasty was modified by player
		coat_of_arms= # For more information: coats of arms modding
		{
			data= # appearance of coat of arms
			{
				3 1 0 6 14 5 5 1 0 6 14 5 5 1 0 6 14 5 5 1 0 6 14 5 5 
			}
			religion # type of coat of arms
		}
		set_coat_of_arms=yes # only appear if yes. yes: coat of arms was set manually by player
	}
	
	# Note on Historical dynasties ("de Valois", etc.)
	25= # dynasty’s ID
	{
		coat_of_arms= # only coat of arms is available
		{
			data=
			{
				0 0 0 21 6 13 13 
			}
			religion
		}
	}
}

Characters

For more information: character modding.

character=
{
	987898= # character’s ID
	{
		bn # birth name
		name # current name (for instance Papal name)
		nick # nickname
		fem # only appear if yes. yes: character is a woman
		pi # only appear if yes
		b_d # birth date
		d_d # death date – if appear, then character is considered in game as dead
		c_d # cause of death
		fat # character’s father’s ID – only appear if applicable
		rfat # character ID of real father – only appear if applicable
		mot # character’s mother’s ID – only appear if applicable
		spouse # spouse or husband character’s ID. If multiple, then character has had multiple spouse, in the order which they appear
		kill_list  # list information on all character’s kill
		{ 	
			{ # one set of brackets per kill
				id # killed character’s id
				type # killed character’s type
			} 
 				
		} 	
		att # attributes
		tr # traits
		rel # religion – does not appear if government make it unnecessary, e.g. if muslim_government and religion is sunni 
		secret_religion # secret religion – only appear if applicable
		cul # culture – does not appear if unnecessary
		g_cul # graphic culture (character’s appearance) – does not systematically appear
		dnt # dynasty’s ID – appear only if applicable
		dna # DNA
		prp # properties
		gov # government type – only appear if character has a title
		fer # fertility
		health # health
		lover # ID of character that is a lover of current character
		prs # prestige
		piety # piety
		bstd=yes # only appear if yes. yes: character is a bastard
		player=yes # only appear if yes. yes: is player’s character
		player_name=MrHuman # only appear if player’s character. Name of player (MrHuman by default for single player)
		claim # information on one of character’s claims – only appear if applicable
		{ 	
			title # Claimed title’s ID
			pressed=yes # only appear if yes. yes: pressed claim
			weak=yes # only appear if yes. yes: weak claim
		} 
		job # character’s job (marshal, spymaster, etc.) – only appear if applicable
		title # specific title (commander, consort, etc.) – only appear if applicable
		wealth # money
		emp # liege’s character ID
		host # character ID of host (i.e. for which current character is a courtier) or jailer
		imprisoned # date since which character is imprisoned
		guardian # character ID of guardian
		in_hiding=yes # only appear if yes. yes: character is in hiding
		known_plots # list ID of characters whose plots are known but current character
		{
		
		}
		emi #
		eme #
		eyi #
		eypi #
		lgr= #leger – only appear if character has a title
		{
			lastmonthincometable # income over the last months
			lastmonthexpensetable # expenses over the last months
			lastmonthincome # last month income
			lastmonthexpense # last month expense
		}
		flags= # list of character’s events and date at which they were triggered
		{
			recieved_royal_marriage_aid_duty=1441.2.3
		}
		vars= #list of specific variable
		{
			physique_variable=-2.000
		}
		md= # modifier
		{
			modifier # name of modifier
			hidden=yes # only appear if yes. yes: is not displayed
		}
		action # action as member of council (train troops, etc.)
		acdate # action start date
		acloc #
		ambition_date # date at which ambition was set
		focus_date # date at which focus was set
		plot_date # date at which plot was set
		cpos # council position (loyalist, etc.)
		cpos_start # date at which council position was set
		score # character’s score
		war_target # ID of character with which current character is at war 
		society #  ID of the society character is part of – only appear if applicable
		dmn= # domain information – only appear if character has a title
		{
			army
			{
			}
			navy
			{
			}
			capital # capital of domain
			liege_troops= # troops by type
			{
				li={18.850 25.375}
				hi={15.950 39.875}
				pi={2.150 5.375}
				lc={1.050 2.625}
				ar=1.750
			}
			raised_liege_troops= # raised levy
			{
				504504 
			}
			my_liegelevy_contribution=75 #
		}
		character_player_data # player’s chronicle 			
		{ 				
			chronicle_collection 			
			{ 			
				chronicle # chronicle for one character 
				{ 		
					chronicle_chapter # chronicle for one year 
					{ 	
						chronicle_entry  # chronicle on one entry
						{ 
							text # text
							picture # picture from a predetermined set
							portrait # ID of portraited character
							portrait_culture # type of portrait depending on culture
							portrait_title_tier # type of portrait depending on tier of title
							portrait_government # type of portrait depending on government type
						} 
						year # year of entry
					}
					character # character’s ID
				} 
				chronicle_position
				chapter_position
				entry_position
				chronicle_icon_lit
			}
		}
		retrat #
	}
}

Delayed events

delayed_event=
{
	event= # events ID
	days= # number of days before events happen
	scope= # scope information
	{
		seed #
		char # character ID
		from= 
		{
			seed #
			char # character ID
			root=
			{
				# delayed events can be recursive
			}
		}
	}
}

Relations

relation=
{
	rel_987898= # relations of character 987898
	{
		959480= # relation of character 987898 with character 959480
		{
			opinion_decreased_council_power= # modifier
			{
				d # end date
			}
			ry=4 # reigned years, determining the short or long reign opinion modifier 
		}
	}
}

ID

id=
{
	id  #
	type #
}

Religion

religion=
{
	catholic=
	{
		last_crusade # date of last crusade
		parent # parent religion. If none, "noreligion"
		was_heresy=no # religion was an heresy or not
		authority= # modifier on religion’s authority
		{
			modifier # ID of modifier
			d # end date
		}
		authority=
		{
		}
		holy_sites= # list of baronies that are regarded as holy site by religion
		{
			b_koln b_sutri b_sansebastian b_santiago b_jerusalem b_canterbury 
		}
		bloodline=
		{
			1 2 8 9 10 11 12 14 # 
		}
}

Religion Group

religion_group=
{
}

Culture

culture=
{
}

Culture Group

culture_group=
{
}

Provinces

For more information: province modding.

provinces=
{
	1= # province id
	{
		vars= # list of specific variables
		{
			prosperity_value=243.000
		}
		name="Vesturland" # name of provinces as displayed in-game
		culture=Norwegian # province culture
		religion=catholic # province religion
		max_settlements # max number of holdings
		modifier= # modifier – one by set of brackets
		{
			modifier # name of modifier
			date # end date
		}
		b_reykjavik= # name of holding
		{
			type=castle # type of holding
			date # date of creation
			build_time #
			# You find here the list of buildings and there level, e.g.:
			ca_shipyard_1=yes # shipyard, level 1
			levy= # amounts for levy
			{
				li=503.000
				hi=1019.000
				pi=132.000
				lc=397.000
				ar=159.000
				ga=27.000
			}
		}
		technology=
		{
			tech_levels # tech levels
		}
		loot # amount that can be looted
		primary_settlement="b_reykjavik" # primary holdings, i.e. the one that is held when holding the province
	}
}

Bloodline

bloodline=
{
	0= # ID of bloodline
	{
		type # type of blood line
		name # name of bloodline (not name of dynasty)
		desc # description of bloodline 
		owner # founder bloodline
		flags= # list of flags relating to this bloodline, and the date at which they happen
		{
		}
		created # date of creation
		member # character ID of member
		inheritance # type of inheritance (matrilineal, etc.)
		allow_bastards=yes # only appear if yes. yes: bastards inherit bloodline
	}
}

Title

For more information: title modding.

title=
{
	e_rebels= # province title ID
	{
		# == FOR LIEGE ==
		# Either:
		liege # province title ID for liege
		# Or:
		liege=
		{
	 		title # Province title ID (dynamic)
		 	base_title # title associated with this dynamic title (e.g. if duke of “X” rebels, here will be written “X”)
	 		is_custom # only appear if yes. yes: title specifically created for this game
		 	is_dynamic # yes: is dynamic
		}
		
		religion # 
		holder # character ID of current holder
		name # custom name, only appear if applicable
		custom_name=yes # only appear if yes. yes: name was changed by player
		adjective # adjective related to the province
		succession # type of succession
		gender # authorized gender for succession
		# == Hereafter are listed the laws, and there level ==
		law="agnatic_succession" 
		law="succ_open_elective"
		law="centralization_0"
		law="law_voting_power_0"
		law="war_voting_power_0"
		law="revoke_title_voting_power_0"
		law="imprison_voting_power_0"
		law="grant_title_voting_power_0"
		law="banish_voting_power_0"
		law="execution_voting_power_0"
		law="out_of_realm_inheritance_law_0"
		law="revoke_title_law_0"
		law="ze_administration_laws_0"
		law="tax_levy_law_feudal_4"
		law="tax_levy_law_republic_4"
		law="tax_levy_law_theocracy_4"
		law="tax_levy_law_tribal_4"
		law="status_of_women_0"
		law="vice_royalty_0"
		law="succession_voting_power_0"
		law="vassal_wars_law_0"

		coat_of_arms= # coat of arms of province, only customable for holdings
		{
			data= # appearance of coat of arms
			{
				0 0 0 1 7 1 9 
			}
			religion # type of coat of arms
		}
		de_jure_law_changer # ID of character who changed de jure law
		de_jure_law_change # date at which de jure law was changed
		de_jure_law_changes # number of changes of de jure law
		normal_law_changer # ID of character who changed normal law
		normal_law_change # date at which normal law was changed
		last_change # date of last event (change of owner)
		previous= # previous owners: list of character IDs
		{
		}
		set_allow_title_revokation #
		set_investiture #
		history= #history of province
		{
			769.1.1= # date of event
			{
				# EITHER:
				holder # character ID of holder during event
				# OR:
				holder=
				{
					who # character ID of holder during event
					type # type of event (election, etc.)
				}
			}
		}
		de_jure_liege # de jure liege, applicable to all except holdings and empire 
		de_jure_ass_years # number of years since province started to be assimilated by another province (assimilated when it reaches 100)
		assimilating_liege # province assimilating (future de jure liege)
		law_vote_date # date at which a vote for change of law happened 
		law_change_timeout # date where law can again be changed
		infamy= 	
		{ 	
			total_infamy # current total of infamy
			history= 
			{ 
				name # description of cause of infamy
				value # amount of infamy
			} 
		}
	}

	'# == SPECIFICITIES OF DYNAMIC PROVINCES ==
	k_dyn_reb_968442=
	{
		dynamic=yes # only appear if yes. yes: is dynamic, i.e. is specific to that game
		landless=yes # only appear if yes. yes: title is not associated with a county
		title # character’s title when holding province
		title_female # character’s title when holding province (female)
		foa # Gives localization key for holder's form of address if non-standard (e.g. "My Captain")
		capital=472 # capital of the province
		color={90 24 36 } # color of the province
		holding_dynasty=7215 # dynasty holding that title
		temporary=yes # only appear if yes. yes: is only temporary
		major_revolt=yes # only appear if yes. yes: province is rebelling
		base_title # title on which is based the province
	}
}

Active ambition / Active focus

active_ambition= / active_focus=
{
	type # type of ambition or focus
	scope=
	{
		seed #
		char # character ID
		from=
		{
			seed #
			char # character ID
		}
	}
	parent_scope=
	{
		seed
		char # character ID
	}
	backer # character ID of backer
	auto_invite=yes # only appear if yes. yes: auto invite character to these ambition
}

Nomad

nomad=
{
	k_dyn_925429= # dynamic province title
	{
		population # amount of population
		manpower # manpower
		technology=
		{
			tech_levels= # tech levels
		}
	}
}

Combat

combat=
{
}

War

war=
{
	name=""
	history=
	{
	}
}

Active war

active_war=
{
	name=""
	history=
	{
	}
}

Coalition

coalition=
{
	coalition_target_title # province title ID of target
	coalition_target # character ID of target
	coalition_member=
	{
		# list of character IDs of members of coalition 
	}
}

Previous wars

previous_war=
{
	# list of IDs of previous wars
}

Outbreak

next_outbreak_id # ID of disease where next disease will outbreak
dont_break_out_again_entity= # information on disease which should not happen next
{
	disease # disease ID
	timeperiod # [years?] before this disease can again happen
}
disease_outbreak= # information on disease that already started
{
	start_date # outbreak date
	outbreak_id # disease id
	origins_province # province id where the outbreak happened
	disease_period=
	{
		#
	}
	provinces=
	{
		# list of provinces where there is currently an outbreak
	}
	past_provinces=
	{
		# list of provinces where there was an outbreak
	}
	active #if yes, is currently active. If no, is a past outbeak
}

Disease

disease= 
{
	disease_tuberculosis= #type of desease
	{
		active=yes # is disease active or not
	}
}

Character history

character_history={ # list of characters played by player, as they appear on score panel
	{
		identity # character ID
		date # date where they started their reign
		score # score
	}
}

Nomad relation

nomad_relation=
{
	k_dyn_947877 # relations of title k_dyn_947877
	{
		k_dyn_947877= # relation of title k_dyn_947877 with title k_dyn_947877
		{
			clan_opinion_created= # modifier
			{
				d # end date of event
			}
		}
	}
}

Other information

playthrough_duration # number of in-game days since game started
character_action #

Society

society=
{
	0= # ID of society
	{
		member= # information on one member of society
		{
			character # character ID
			society_rank # rank in society
			society_currency # 
			days_in_society # days since joining society
			days_at_current_society_rank # days since reach this rank in society
		}
		modifier= # modifier – one by set of brackets
		{
			modifier # name of modifier
			date # end date
		}
		society_leader #character ID of society leader
		type # type of society
	}
}

Artifacts

artifacts=
{
	33554432= # artifact id
	{
		type # type of artifact
		name # name of artifact
		desc # description of artifact
		owner # character ID of current owner
		org_owner # character ID of original owner
		flags= # list of flags and date at which they were triggered
		{
			trophy=1078.5.27
		}
		created # date of creation
		obtained # date at which it was obtained by current holder
		equipped # is equipped by character or not
		active # is active or not
		history=
		{
			860636=1322.3.28 # character ID and date of obtention
		}
	}

Offmap Powers

offmap_powers=
{
	0= # ID of offmap power
	{
		type # type of offmap power
		holder # character ID of current holder
		prev_holder # character ID of previous holder
		prev_policy # previous policy
		cur_policy # current policy
		policy_change # date of change of policy
		prev_status # previous status
		cur_status # current status
		status_change # date of change of status
		flags= # list of flags and date at which they were triggered
		{
			china_had_plague=1386.6.4
		}
		names= # 
		{
			china_china shu_china yuan_china 
		}
		likes # what does the current power likes currently
		dislikes # what does the current power dilikes currently
		temple_list #
		temple_name #
		temple_indices=
		{
		}
		history= #history of offmap power
		{
			769.1.1= # date of event
			{
				# EITHER:
				holder # character ID of holder during event
				# OR:
				holder=
				{
					who # character ID of holder during event
					type # type of event (election, etc.)
				}
			}
		}
	}
}

Wonder Upgrade

wonder_upgrade=
{
	0= # ID of wonder’s upgrade
	{
		type # type of wonder’s upgrade
		completed # is wonder’s upgrade built or not
		active=yes # is wonder’s upgrade active or not
		progress # [completion?]
		wonder # ID of wonder related to that upgrade
		construction_paused=no # is construction posed
		name # name of wonder’s upgrade
		desc # description of wonder’s upgrade
		flags= # list of flags and date at which they were triggered
		{
		}
	}
}

Wonder

wonder=
{
	16777216= # ID of wonder
	{
		type # type of wonder
		province # ID of province where wonder is located
		name # name of wonder
		desc # description of wonder
		wonder_upgrade=
		{
			# List of IDs of wonder upgrade 
		}
		construction_history= # List of EVENTS relating to the wonder
		{
			{
				type # type of construction
				wonder_historical_event_character # ID of character that started the events
				wonder_historical_event_date #
				province # province where the event happened
				new_name # name after event – in case of change of name
				old_name # name before event – in case of change of name
				custom_history #
				wonder_stage # stage of wonder at the time
				wonder_upgrade # type of upgrade – in case of construction of an update
			}
		}
		upgrade_slots # 
		stage=1 # current stage 
		progress # progress until next stage
		construction_paused=no # is construction paused
		is_damaged=no # is wonder damaged
		is_being_looted=no # is wonder being looted
		is_being_restored=no # is wonder being restored
		restoration_paused=no # is restoration paused
		historical=no # is the wonder historical
		active=yes # is it currently active
		is_constructing # is it construction
		looting_progress # progress of looting
		restore_progress # progress of restoration
		custom_name=yes # yes: name was changed by player
		custom_desc=no # yes: description was changed by player
		background # background image (depends on province)
		background_frame_number # type of background frame
		model # model on image
		update_model=no #
		flags= # list of flags and date at which they were triggered
		{
		}
	}
}

Quests

quests=
{
	quest=
	{
		id # type of quests
		holder # character ID of holder of quest
		society # type of society
		target=
		{
			char_target # character ID of target of quest
		}
	}
}

Final information

generated_societies=yes # are societies activated
generated_artifacts=yes # are artefacts activated
trade_route=
{
	silk_road=
	{
		multiplier #
		wealth_change #
	}
}
vc_data #