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

Scripted effect · All Under Heaven files

tgp_on_member_house_joined_shared_effect

tgp_on_member_house_joined_shared_effect = yes

game/common/scripted_effects/10_dlc_tgp_house_bloc_scripted_effects.txt, line 795 (118 lines). No parameters.

tgp_on_member_house_joined_shared_effect is a scripted effect in Crusader Kings III, in the All Under Heaven files, written at line 795 of its file. It takes no parameters: tgp_on_member_house_joined_shared_effect = yes. The game's script calls it in 6 places, among them house_bloc_ceremony (confederation types), house_bloc_determination (confederation types) and house_bloc_humility (confederation types). Its body carries 2 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/10_dlc_tgp_house_bloc_scripted_effects.txt.

What it does

  • Every player:
    • Where:
    • If

      • NOT = { house = house.house_confederation.leading_house }
      • scope:bloc: Confederation member house (exactly 2):

      Then

      • House … will form the … Bloc

      Else if

      • house.house_confederation ?= scope:bloc

      Then

      • House … will join the …
  • Every in list:

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

“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.

The script as written (118 lines of game script)
tgp_on_member_house_joined_shared_effect = {
	save_scope_as = bloc
	scope:house ?= {
		save_scope_as = joiner
		set_variable = {
			name = recently_joined_bloc
			years = 5
		}
	}
	# MESSAGES
	every_player = {
		limit = {
			top_liege ?= scope:bloc.leading_house.house_head.top_liege
			tgp_uses_house_blocs_trigger = yes
		}
		if = {
			limit = {
				NOT = { house = house.house_confederation.leading_house } # avoid double message when creating
				scope:bloc = {
					any_confederation_member_house = { count = 2 }
				}
			}
			send_interface_message = {
				type = msg_house_bloc_created
				title = msg_house_bloc_created
				desc = msg_house_bloc_created_desc
				left_icon = scope:bloc.leading_house.house_head
				right_icon = scope:bloc.leading_house
				custom_description = {
					text = create_house_bloc_effect
					subject = scope:bloc.leading_house.house_head
				}
			}
		}
		else_if = {
			limit = { house.house_confederation ?= scope:bloc }
			send_interface_message = {
				type = msg_house_joined_house_bloc 
				title = msg_house_joined_bloc
				desc = msg_house_joined_bloc_desc
				left_icon = scope:joiner
				right_icon = scope:bloc.leading_house
				custom_description = {
					text = join_house_bloc_effect
					subject = scope:joiner.house_head
					object = scope:bloc.leading_house.house_head
				}
				# MEMBER LIST TOOLTIP
				#show_as_tooltip = {
				#	scope:bloc = {
				#		every_in_list = {
				#			variable = joining_house_members
				#			limit = { house = scope:joiner }
				#			custom = house_joined_bloc_member_custom
				#			custom_tooltip = house_bloc_member_tt
				#		}
				#	}
				#}
			}
		}
	}
	every_in_list = {
		variable = joining_house_members
		limit = { house = scope:joiner }
		save_temporary_scope_as = house_member_temp
		remove_character_flag = bloc_message_flag
		scope:bloc = {
			remove_list_variable = {
				name = joining_house_members
				target = scope:house_member_temp
			}
		}
		# Find Sub-Vassal houses of joining Vassal Houses
		if = {
			limit = { is_independent_ruler = no } # Kampaku is the only exception
			every_vassal_or_below = {
				limit = {
					is_house_head = yes
					any_held_title = { is_noble_family_title = yes }
					is_independent_ruler = no
					house = {
						NOR = {
							this = scope:house
							house_confederation ?= scope:bloc
							is_in_list = joining_vassal_houses
						}
					}
				}
				house = { add_to_list = joining_vassal_houses }
			}
		}
	}
	every_in_list = {
		list = joining_vassal_houses
		save_temporary_scope_as = vassal_house_temp
		if = {
			limit = { exists = house_confederation }
			set_variable = {
				name = bloc_leaving_reason
				value = flag:reason_followed_liege
				days = 4
			}
			tgp_leave_house_bloc_effect = {
				OPINION = flag:no
				TRUCE = flag:yes
			}
		}
		tgp_join_house_bloc_effect = {
			INVITER = scope:joiner
			OPINION = flag:no
		}
	}
	if = {
		limit = { debug_only = yes }
		debug_log = "house joined bloc"
		debug_log_scopes = yes
	}
}

As written in game/common/scripted_effects/10_dlc_tgp_house_bloc_scripted_effects.txt.

Where it is used

Every place in common/, events/ and history/ that calls tgp_on_member_house_joined_shared_effect.

Confederation types (6)

  • house_bloc_ceremony
  • house_bloc_determination
  • house_bloc_humility
  • house_bloc_prosperity
  • house_bloc_service
  • house_bloc_strength

Source: game/common/scripted_effects/10_dlc_tgp_house_bloc_scripted_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.

Spotted a mistake on this page?