CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Interaction · Landless adventurer actions

Travel to Complete a Contract

No costRoads to PowerAccepted automatically

What you need

You

To send it

  • Also needed: available (not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity · not busy in a Mandala succession

To see it in the menu

  • Any character active contract:
    • One of these

      • One of these

        • has_task_contract_type = laamp_transport_vip
        • or

          has_task_contract_type = laamp_transport_artifact
        • or

          has_task_contract_type = laamp_transport_gold
        • or

          has_task_contract_type = laamp_transport_ward
        • or

          has_task_contract_type = laamp_transport_explorer
        • or

          has_task_contract_type = laamp_transport_animal
        • or

          has_task_contract_type = laamp_construction_contract
      • or

        has_task_contract_type = laamp_help_increase_control_contract
    • One of these

      • task_contract_employer ?= scope:recipient
      • or

        task_contract_destination.province_owner ?= scope:recipient
      • or

        task_contract_target ?= scope:recipient
      • or

        Task contract object is scope:recipient

Travel to Complete a Contract is a landless adventurer character interaction in Crusader Kings III. You need: Is available (not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy … and 2 more. Accepted automatically. It needs Roads to Power. Patch 1.20.1.2, from game/common/character_interactions/06_ep3_laamp_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Travel to Complete a Contract in CK3?
You: Is available (not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy …, You are already planning another Activity and You are currently busy in a Mandala succession. (patch 1.20.1.2)
Will the AI accept Travel to Complete a Contract?
Yes: it is accepted automatically.

Will they accept?

The other character has no choice: the game accepts it automatically.

What happens

Effects

  • The task contract › Depending on has task contract type:
    • When has task contract type is laamp transport vip › You: You will Travel to … escorting … to the Court of …
    • When has task contract type is laamp transport ward › You: You will Travel to … ensuring … begins … education.
    • When has task contract type is laamp transport explorer › You: You will Travel to … alongside the explorer, …
    • When has task contract type is laamp transport artifact › You: You will Travel to … and gift … … to …
    • When has task contract type is laamp transport gold › You: You will Travel to …, delivering … gift to ….
    • When has task contract type is laamp transport animal › You: You will Travel to … escorting …
    • When has task contract type is laamp construction contract › You: You will Travel to … and deliver building materials to …
    • When has task contract type is laamp help increase control contract › You: You will Travel to a … County with County Corruption or low County Control
  • Depending on yes:
    • When yes is scope:with domicile:
      • Sets out on a journey (a travel plan)
      • Moving your Camp to … will cost Provisions
    • When yes is scope:without domicile: Sets out on a journey (a travel plan)

• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists

Who can use it and sees it (is_available, is_shown) (15 lines of game script)
is_shown = has_ep3_dlc_trigger = yes
scope:actor = {
	any_character_active_contract = {
		OR = {
			ep3_transport_contract_trigger = yes
			has_task_contract_type = laamp_help_increase_control_contract
		}
		OR = {
			task_contract_employer ?= scope:recipient
			task_contract_destination.province_owner ?= scope:recipient
			task_contract_target ?= scope:recipient
			var:task_contract_object ?= scope:recipient
		}
	}
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Can be sent when (is_valid…) (3 lines of game script)
scope:actor = {
	is_available = yes
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Effects (on_send, on_accept, on_decline) (146 lines of game script)
on_accept = scope:actor = {
	random_character_active_contract = {
		limit = {
			OR = {
				ep3_transport_contract_trigger = yes
				has_task_contract_type = laamp_help_increase_control_contract
			}
			OR = {
				task_contract_employer ?= scope:recipient
				task_contract_destination.province_owner ?= scope:recipient
				task_contract_target ?= scope:recipient
				var:task_contract_object ?= scope:recipient
			}
		}
		save_scope_as = task_contract
	}
	if = {
		limit = {
			exists = scope:task_contract.var:task_contract_employer
		}
		scope:task_contract.var:task_contract_employer ?= {
			save_scope_as = task_contract_employer
		}
	}
	if = {
		limit = {
			scope:task_contract = {
				has_task_contract_type = laamp_help_increase_control_contract
			}
		}
		scope:task_contract.var:task_contract_councillor_liege ?= {
			save_scope_as = task_contract_councillor_liege
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:task_contract_destination
		}
		scope:task_contract.var:task_contract_destination = {
			save_scope_as = task_contract_destination
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:task_contract_target
		}
		scope:task_contract.var:task_contract_target ?= {
			save_scope_as = task_contract_target
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:task_contract_object
		}
		scope:task_contract.var:task_contract_object = {
			save_scope_as = task_contract_object
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:escorted_artifact
		}
		scope:task_contract.var:escorted_artifact = {
			save_scope_as = escorted_artifact
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:escorted_gold
		}
		scope:task_contract.var:escorted_gold = {
			save_scope_as = escorted_gold
		}
	}
	if = {
		limit = {
			exists = scope:task_contract.var:escorted_story
		}
		scope:task_contract.var:escorted_story = {
			save_scope_as = escorted_story
		}
	}
	scope:task_contract = {
		switch = {
			trigger = has_task_contract_type
			laamp_transport_vip = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_vip
				}
			}
			laamp_transport_ward = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_ward
				}
			}
			laamp_transport_explorer = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_explorer
				}
			}
			laamp_transport_artifact = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_artifact
				}
			}
			laamp_transport_gold = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_gold
				}
			}
			laamp_transport_animal = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_animal
				}
			}
			laamp_construction_contract = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_construction
				}
			}
			laamp_help_increase_control_contract = {
				scope:actor = {
					custom_tooltip = ep3_contract_event.0001.tt_increase_control
				}
			}
		}
	}
	switch = {
		trigger = yes
		scope:with_domicile = {
			start_travel_plan = {
				destination = scope:task_contract_destination
				travel_with_domicile = yes
				return_trip = no
				on_arrival_destinations = all
			}
			custom_tooltip = ep3_contract_event.0001.with_domicile.tt
		}
		scope:without_domicile = {
			start_travel_plan = {
				destination = scope:task_contract_destination
				on_arrival_destinations = all
			}
		}
	}
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Category
Landless adventurer actions
DLC
Roads to Power
In the menu
main list
ID
complete_task_contract_interaction

Source: game/common/character_interactions/06_ep3_laamp_interactions.txt and the English localisation, Crusader Kings III 1.20.1.2. “You” is the character who sends it (scope:actor, or a puppet acting for you); “the character you target” is the recipient.

Spotted a mistake on this page?