Losa10/PreTrain-HOI4-Modding-Assistant huggingface dataset:
### Entity: Military Industrial Organization
Component: CZE_ckd_praga_organization
Constructs: has_completed_focus, limit, has_country_flag, has_dlc, add_trait, production_bonus, set_country_flag, equipment_bonus
Source: game
File: common/military_industrial_organization/organizations/CZE_organization.txt

Code:
CZE_ckd_praga_organization = {
	include = generic_multi_role_aircraft_organization
	icon = GFX_idea_CZE_ckd_praga
	allowed = {
		OR = {
			tag = CZE
			AND = {
				tag = ETH
				has_dlc = By Blood Alone
			} {
				tag = HUN
				has_dlc = Gotterdammerung
			}
		}
	}
	tree_header_text = {
		text = mio_header_light_aircraft
		x = 2
	} {
		text = mio_header_medium_aircraft
		x = 6
	}
	visible = {
		IF = {
			limit = {
				FROM = {
					original_tag = HUN
				}
			}
			FROM = {
				has_completed_focus = wuw_HUN_integrate_bohemian_and_austrian_industries
			}
		}
	}
	override_trait = {
		token = generic_mio_trait_armored_cockpit
		position = {
			x = 2
			y = 0
		}
	} {
		token = generic_mio_trait_escort_designs
		position = {
			x = 4
			y = 0
		}
	} {
		token = generic_mio_trait_not_enough_guns_never_enough_guns
		position = {
			x = 2
			y = 0
		}
		relative_position_id = generic_mio_trait_upgraded_engines
	}
	add_trait = {
		token = CZE_mio_trait_expanded_production_facilities_ckd_praga
		name = USA_mio_trait_expanded_production_facilities
		icon = GFX_generic_mio_department_icon_facilities
		special_trait_background = yes
		position = {
			x = 1
			y = 0
		}
		relative_position_id = generic_mio_trait_upgraded_engines
		visible = {
			FROM = {
				original_tag = CZE
				has_dlc = Peace For Our Time
			}
		}
		available = {
			FROM = {
				has_completed_focus = CZE_grow_ckd_secondary_facilities
			}
		}
		any_parent = {
			generic_mio_trait_light_airframe generic_mio_trait_medium_airframe
		}
		production_bonus = {
			production_cost_factor = -0.05
			production_capacity_factor = 0.05
		}
	} {
		token = CZE_mio_trait_walter_co
		name = CZE_mio_trait_walter_co_name
		icon = GFX_generic_mio_department_icon_plane_general_engine
		special_trait_background = yes
		position = {
			x = 9
			y = 0
		}
		visible = {
			FROM = {
				original_tag = CZE
				has_dlc = Peace For Our Time
			}
		}
		available = {
			FROM = {
				has_completed_focus = CZE_joint_stock_schemes
				NOT = {
					has_country_flag = CZE_mio_trait_walter_co_taken_flag
				}
			}
		}
		on_complete = {
			custom_effect_tooltip = generic_trait_will_not_be_available_in_other_organizations
			FROM = {
				set_country_flag = CZE_mio_trait_walter_co_taken_flag
			}
		}
		equipment_bonus = {
			maximum_speed = 0.05
			air_agility = 0.05
		}
		ai_will_do = {
			base = 2
		}
	} {
		token = CZE_mio_trait_bata_c
# ... (truncated)
### Entity: Event
Component: JUNO_brazil_events.70
Constructs: is_triggered_only, ai_chance, has_war, has_war_with
Source: game
File: events/TOA_Brazil.txt

Code:
country_event = {
	id = JUNO_brazil_events.70
	title = JUNO_brazil_events.70.t
	desc = JUNO_brazil_events.70.desc
	picture = GFX_report_event_generic_read_write
	is_triggered_only = yes
	option = {
		name = JUNO_brazil_events.70.a
		ai_chance = {
			base = 10
			modifier = {
				factor = 0
				FROM = {
					has_war_with = ROOT
				}
			} {
				factor = 0.5
				FROM = {
					has_war = yes
				}
			} {
				factor = 10
				strength_ratio = {
					TAG = FROM
					ratio = > 0.8
				}
			}
		}
		FROM = {
			country_event = {
				id = JUNO_brazil_events.71
				hours = 1
			}
		}
	} {
		name = JUNO_brazil_events.70.b
		ai_chance = {
			base = 10
		}
		FROM = {
			country_event = {
				id = JUNO_brazil_events.72
				hours = 1
			}
		}
	}
}
### Entity: Order of Battle
Component: Jerusalem & Lydda Area
Constructs: division_template, is_name_ordered
Source: game
File: history/units/MPL_1936.txt

Code:
division = {
	name = Jerusalem & Lydda Area
	division_name = {
		is_name_ordered = yes
		name_order = 1
	}
	location = 1086
	division_template = Mandatory Guard
	start_experience_factor = 0.2
	start_equipment_factor = 0.7
}
### Entity: National Focus
Tree: man_focus
Component: MAN_tsr_the_new_beiyang_government
Constructs: prerequisite, limit, completion_reward, is_subject, cancel_if_invalid, set_cosmetic_tag, unlock_decision_category_tooltip, swap_ideas
Source: game
File: common/national_focus/manchukuo_TSR.txt

Code:
focus = {
	id = MAN_tsr_the_new_beiyang_government
	icon = GFX_focus_CHI_restore_the_old_republic
	prerequisite = {
		focus = MAN_tsr_depose_puyi
	}
	x = -3
	y = 1
	mutually_exclusive = {
		focus = MAN_tsr_zhao_shangzhis_coup
	}
	relative_position_id = MAN_tsr_depose_puyi
	cost = 10
	ai_will_do = {
		factor = 10
	}
	available = {
		is_subject = no
	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	search_filters = {
		FOCUS_FILTER_ANNEXATION FOCUS_FILTER_POLITICAL
	}
	completion_reward = {
		set_cosmetic_tag = MAN_beiyang
		custom_effect_tooltip = MAN_cores_beiyang_tt generic_skip_one_line_tt generic_skip_one_line_tt
		unlock_decision_category_tooltip = MAN_march_on_beijing_decisions
		swap_ideas = {
			remove_idea = MAN_illegitimate_government
			add_idea = MAN_rival_government
		}
		IF = {
			limit = {
				MEN = {
					is_subject_of = ROOT
				}
			}
			MEN = {
				every_army_leader = {
					set_nationality = ROOT
				}
			}
			annex_country = {
				target = MEN
				transfer_troops = yes
			}
		}
		hidden_effect = {
			614 = {
				add_core_of = ROOT
			}
			608 = {
				add_core_of = ROOT
			}
			1039 = {
				add_core_of = ROOT
			}
			1038 = {
				add_core_of = ROOT
			}
			597 = {
				add_core_of = ROOT
			}
			743 = {
				add_core_of = ROOT
			}
			612 = {
				add_core_of = ROOT
			}
			611 = {
				add_core_of = ROOT
			}
			1043 = {
				add_core_of = ROOT
			}
			746 = {
				add_core_of = ROOT
			}
			616 = {
				add_core_of = ROOT
			}
			621 = {
				add_core_of = ROOT
			}
			1040 = {
				add_core_of = ROOT
			}
			615 = {
				add_core_of = ROOT
			}
			622 = {
				add_core_of = ROOT
			}
			1045 = {
				add_core_of = ROOT
			}
			1032 = {
				add_core_of = ROOT
			}
			609 = {
				add_core_of = ROOT
			}
			set_politics = {
				ruling_party = democratic
				elections_allowed = yes
				election_frequency = 60
			}
			set_party_name = {
				ideology = democratic
				long_name = MAN_republican_party_long
				name = MAN_republican_party
			}
		}
	}
}
### Entity: Modifier Reference
Component: RAJ_south_east_asia_command_dm
Constructs: breakthrough_factor, coordination_bonus
Source: game
File: common/dynamic_modifiers/GoE_dynamic_modifiers.txt

Code:
RAJ_south_east_asia_command_dm = {
	enable = {
		always = yes
	}
	icon = GFX_idea_raj_indian_gentlemen_officers
	org_loss_when_moving = RAJ_south_east_asia_command_dm_org_loss_when_moving
	army_org_regain = RAJ_south_east_asia_command_dm_army_org_regain
	experience_gain_army_factor = RAJ_south_east_asia_command_dm_experience_gain_army_factor
	max_command_power = RAJ_south_east_asia_command_dm_max_command_power
	command_power_gain = RAJ_south_east_asia_command_dm_command_power_gain
	special_forces_cap = RAJ_south_east_asia_command_dm_special_forces_cap
	extra_marine_supply_grace = RAJ_south_east_asia_command_dm_extra_marine_supply_grace
	shore_bombardment_bonus = RAJ_south_east_asia_command_dm_shore_bombardment_bonus
	modifier_army_sub_unit_marine_attack_factor = RAJ_south_east_asia_command_dm_modifier_army_sub_unit_marine_attack_factor
	army_attack_speed_factor = RAJ_south_east_asia_command_dm_army_attack_speed_factor
	breakthrough_factor = RAJ_south_east_asia_command_dm_breakthrough_factor
	coordination_bonus = RAJ_south_east_asia_command_dm_coordination_bonus
	max_planning_factor = RAJ_south_east_asia_command_dm_max_planning_factor
	max_dig_in_factor = RAJ_south_east_asia_command_dm_max_dig_in_factor
	recon_factor_while_entrenched = RAJ_south_east_asia_command_dm_recon_factor_while_entrenched
	army_core_defence_factor = RAJ_south_east_asia_command_dm_army_core_defence_factor
	army_core_attack_factor = RAJ_south_east_asia_command_dm_army_core_attack_factor
	air_mission_efficiency = RAJ_south_east_asia_command_dm_air_mission_efficiency
	navy_anti_air_attack_factor = RAJ_south_east_asia_command_dm_navy_anti_air_attack_factor
	air_ace_generation_chance_factor = RAJ_south_east_asia_command_dm_air_ace_generation_chance_factor
	static_anti_air_hit_chance_factor = RAJ_south_east_asia_command_dm_static_anti_air_hit_chance_factor
	industrial_capacity_dockyard = RAJ_south_east_asia_command_dm_industrial_capacity_dockyard
	navy_org_factor = RAJ_south_east_asia_command_dm_navy_org_factor
	naval_coordination = RAJ_south_east_asia_command_dm_naval_coordination
	naval_morale_factor = RAJ_south_east_asia_command_dm_naval_morale_factor
}
### Entity: Event
Component: usa.45
Constructs: is_triggered_only, has_completed_focus, random_days
Source: game
File: events/USA.txt

Code:
country_event = {
	id = usa.45
	title = usa.45.t
	desc = usa.45.desc
	picture = GFX_report_event_FDR_speech
	is_triggered_only = yes
	trigger = {
		tag = USA
		NOT = {
			OR = {
				has_completed_focus = USA_voter_registration_act USA_union_representation_act
			}
		}
	}
	option = {
		name = usa.45.a
		USA_house_medium_support = yes
		hidden_effect = {
			country_event = {
				id = usa.51
				days = 70
				random_days = 10
			}
		}
	}
}
### Entity: Character
Component: SWE_birger_furugard
Constructs: has_government, is_country_leader
Source: game
File: common/characters/SWE.txt

Code:
SWE_birger_furugard = {
	advisor = {
		slot = political_advisor
		cost = 150
		idea_token = SWE_birger_furugard
		allowed = {
			original_tag = SWE
		}
		available = {
			is_country_leader = no
		}
		visible = {
			has_government = fascism
		}
		traits = {
			national_socialist_veterinarian
		}
	}
	name = SWE_birger_furugard
	portraits = {
		civilian = {
			large = GFX_portrait_SWE_birger_furugard
			small = GFX_portrait_SWE_birger_furugard_small
		}
	}
}
### Entity: National Focus
Tree: cyp_focus
Component: CYP_neutral
Constructs: prerequisite, completion_reward
Source: game
File: common/national_focus/r56_cyprus.txt

Code:
focus = {
	id = CYP_neutral
	icon = GFX_goal_generic_neutrality_focus
	cost = 1
	x = 3
	y = 1
	relative_position_id = CYP_establish_politics
	prerequisite = {
		focus = CYP_establish_politics
	}
	mutually_exclusive = {
		focus = CYP_communist CYP_democracy CYP_fascist
	}
	completion_reward = {

	}
}
### Entity: Character
Component: KOR_syngman_rhee
Source: game
File: common/characters/KOR.txt

Code:
KOR_syngman_rhee = {
	name = KOR_syngman_rhee
	portraits = {
		civilian = {
			large = GFX_portrait_Syngman_Rhee
		}
	}
	country_leader = {
		ideology = conservatism
		traits = {
			KOR_unam
		}
		expire = 1965.1.1.1
		id = -1
	}
}
### Entity: National Focus
Tree: fra_focus
Component: FRA_strengthen_the_little_entente
Constructs: prerequisite, limit, has_government, completion_reward, is_subject, cancel_if_invalid, is_faction_leader, is_subject_of
Source: game
File: common/national_focus/france.txt

Code:
focus = {
	id = FRA_strengthen_the_little_entente
	icon = GFX_focus_generic_little_entente
	x = -1
	y = 1
	prerequisite = {
		focus = FRA_confirm_eastern_commitments
	}
	relative_position_id = FRA_confirm_eastern_commitments
	cost = 10
	ai_will_do = {
		factor = 1
	}
	available = {
		country_exists = CZE
		is_subject = no
	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	completion_reward = {
		if = {
			limit = {
				CZE = {
					has_government = ROOT
					is_faction_leader = yes
				}
			}
			CZE = {
				country_event = generic.2
			}
		}
		else_if = {
			limit = {
				CZE = {
					has_government = ROOT
					OR = {
						is_subject = no
						is_subject_of = ROOT
					}
				}
				is_faction_leader = yes
			}
			CZE = {
				country_event = generic.5
			}
		} {
			limit = {
				CZE = {
					has_government = ROOT
					is_in_faction = no
					OR = {
						is_subject = no
						is_subject_of = ROOT
					}
				}
				is_in_faction = no
			}
			set_rule = {
				can_create_factions = yes
			}
			create_faction_from_template = faction_template_the_little_entente
			CZE = {
				custom_effect_tooltip = invite_to_faction_tt
			}
			hidden_effect = {
				CZE = {
					country_event = generic.5
				}
			}
		}
	}
}
### Entity: Idea
Component: ADR_defense_of_andorra
Source: game
File: common/ideas/andorra.txt

Code:
ADR_defense_of_andorra = {
	picture = generic_fortify_the_borders
	allowed = {
		always = yes
	}
	allowed_civil_war = {
		always = yes
	}
	modifier = {
		army_core_defence_factor = 0.05
	}
}
### Entity: Modifier Reference
Construct: army_speed_factor_for_controller
Source: vanilla_docs
File: documentation/modifiers_documentation.md

Doc:
## army_speed_factor_for_controller

* Number with 2 decimal places
* **Categories**: state, army
### Entity: Define
Component: NDefines.NAI.AREA_DEFENSE_HOME_BASE_WEIGHT
Source: game
File: common/defines/EAI_defines.lua

Code:
NDefines.NAI.AREA_DEFENSE_HOME_BASE_WEIGHT = {
0.5 , 1.0 , 1.0
}
### Entity: Event
Component: MUN_czech.1038
Constructs: is_triggered_only, ai_chance, limit, check_variable, has_template_containing_unit, has_tech, create_production_license, cost_factor
Source: game
File: events/MUN_Czechoslovakia.txt

Code:
country_event = {
	id = MUN_czech.1038
	title = {
		text = MUN_czech.1038.t.1
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 1
			}
		}
	} {
		text = MUN_czech.1038.t.2
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 2
			}
		}
	} {
		text = MUN_czech.1038.t.3
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 3
			}
		}
	} {
		text = MUN_czech.1038.t.4
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 4
			}
		}
	} {
		text = MUN_czech.1038.t.5
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 5
			}
		}
	}
	desc = MUN_czech.1038.d
	picture = GFX_report_event_tank_factory
	is_triggered_only = yes
	option = {
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 1
			}
		}
		ai_chance = {
			base = 1
			modifier = {
				factor = 0
				OR = {
					num_of_military_factories = < 20
					NOT = {
						has_template_containing_unit = light_armor
					}
					AND = {
						NOT = {
							has_tech = basic_light_tank_chassis
						} {
							has_tech = basic_light_tank
						}
					}
				}
			}
		}
		name = MUN_czech.1038.a
		FROM = {
			if = {
				limit = {
					OR = {
						has_tech = advanced_light_tank_chassis advanced_light_tank
					}
				}
				create_production_license = {
					target = ROOT
					equipment = {
						type = light_tank_chassis_3
					}
					cost_factor = 0
				}
			}
			else_if = {
				limit = {
					OR = {
						has_tech = improved_light_tank_chassis improved_light_tank
					}
				}
				create_production_license = {
					target = ROOT
					equipment = {
						type = light_tank_chassis_2
					}
					cost_factor = 0
				}
			}
			else = {
				create_production_license = {
					target = ROOT
					equipment = {
						type = light_tank_chassis_1
					}
					cost_factor = 0
				}
			}
		}
		CZE_make_weapons_payment = yes
	} {
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 2
			}
		}
		ai_chance = {
			base = 1
			modifier = {
				factor = 0
				has_equipment = {
					infantry_equipment = > 500
				}
			}
		}
		name = MUN_czech.1038.a
		FROM = {
			send_equipment = {
				equipment = infantry_equipment
				amount = 1000
				target = ROOT
			}
		}
		CZE_make_weapons_payment = yes
	} {
		trigger = {
			check_variable = {
				CZE_most_recent_sale_type = 3
			}
		}
		ai_chance = {
			base = 1
			modifier = {
				factor = 0
				OR 
# ... (truncated)
### Entity: National Focus
Tree: spa_focus
Component: SPA_fascist_economic_aid
Constructs: prerequisite, add_ideas, has_government, is_major, completion_reward, is_in_faction_with, swap_ideas, remove_idea
Source: game
File: common/national_focus/spain.txt

Code:
focus = {
	id = SPA_fascist_economic_aid
	available = {
		any_country = {
			is_in_faction_with = ROOT
			has_government = fascism
			is_major = yes
		}
	}
	bypass = {

	}
	prerequisite = {
		focus = SPA_join_the_axis
	} {
		focus = SPA_national_recovery
	}
	mutually_exclusive = {
		focus = SPA_autarky
	}
	icon = GFX_goal_generic_construction
	x = 1
	y = 1
	relative_position_id = SPA_join_the_axis
	cost = 10
	available_if_capitulated = yes
	search_filters = {
		FOCUS_FILTER_INDUSTRY FOCUS_FILTER_RESEARCH
	}
	completion_reward = {
		add_ideas = SPA_fascist_economic_aid
		swap_ideas = {
			remove_idea = SPA_recovering_from_civil_war
			add_idea = SPA_recovering_from_civil_war_2
		}
		add_tech_bonus = {
			name = SPA_fascist_economic_aid
			bonus = 1.0
			uses = 1
			category = industry
		}
	}
}
### Entity: Idea
Component: VEN_military_disloyalty2
Constructs: planning_speed
Source: game
File: common/ideas/r56_venezuela.txt

Code:
VEN_military_disloyalty2 = {
	picture = chi_army_corruption3
	allowed = {
		always = no
	}
	allowed_civil_war = {
		always = no
	}
	modifier = {
		planning_speed = 0.1
	}
}
### Entity: Special Project
Component: sp_rockets_scientist_xp_generic_reward
Constructs: fire_only_once, add_scientist_xp
Source: game
File: common/special_projects/prototype_rewards/generic_rocket_prototype_rewards.txt

Code:
sp_rockets_scientist_xp_generic_reward = {
	fire_only_once = no
	threshold = {
		min = 0
		max = 100
	}
	weight = {
		base = 1
	}
	option = {
		token = sp_rockets_scientist_xp_generic_reward_option
		iteration_output = {
			scientist_effects = {
				add_scientist_xp = {
					experience = constant:sp_scientist_xp_gain.very_high
					specialization = specialization_air
				}
			}
		}
	}
}
### Entity: Scripted Effect
Component: EAI_PC_validate_queued_provincial_projects
Constructs: limit, check_variable, is_in_array, add_to_temp_array, set_temp_variable, clear_temp_array
Source: game
File: common/scripted_effects/EAI_CONSTRUCTION_PRIORITY_strategies_misc.txt

Code:
EAI_PC_validate_queued_provincial_projects = {
	for_each_loop = {
		array = EAI_PC_queue
		value = _project_id
		if = {
			limit = {
				check_variable = {
					EAI_PC_type_id^_project_id = _strategy_id
				}
				NOT = {
					is_in_array = {
						_valid_provinces = EAI_PC_target_province^_project_id
					}
				}
			}
			add_to_temp_array = {
				_cancel_projects_PROVINCES = EAI_PC_target_province^_project_id
			}
		}
	}
	if = {
		limit = {
			check_variable = {
				_cancel_projects_PROVINCES^num = > 0
			}
		}
		add_to_temp_array = {
			_cancel_projects_TYPE_IDS = _strategy_id
		}
		set_temp_variable = {
			EAI_PC_cancel_projects_source = 5
		}
		EAI_PC_cancel_projects = yes
	}
	clear_temp_array = _valid_provinces
}
### Entity: Idea
Component: r56_GER_coerce_the_technocrats_idea
Constructs: removal_cost
Source: game
File: common/ideas/r56_germany.txt

Code:
r56_GER_coerce_the_technocrats_idea = {
	allowed = {
		original_tag = GER
		always = no
	}
	available = {
		original_tag = GER
	}
	removal_cost = -1
	picture = tur_etatism
	modifier = {
		production_speed_industrial_complex_factor = -0.1
		production_speed_arms_factory_factor = 0.1
		production_speed_nuclear_facility_factor = -0.1
		production_speed_steel_mill_factor = 0.1
		specialization_nuclear_speed_factor = -0.1
		sp_tag_rocket_speed_factor = 0.1
	}
}
### Entity: Special Project
Component: sp_rockets_ground_to_air_missile
Constructs: fire_only_once, breakthrough_cost, resource_cost, has_dlc, has_tech, enable_equipments, add_project_progress_ratio, add_scientist_xp
Source: game
File: common/special_projects/projects/rocket_projects.txt

Code:
sp_rockets_ground_to_air_missile = {
	specialization = specialization_air
	breakthrough_cost = {
		specialization_air = 2
	}
	icon = GFX_sp_rockets_surface_to_air_missiles
	project_tags = {
		sp_tag_rocket sp_tag_guided_bomb
	}
	resource_cost = {
		resources = {
			steel = 6
			aluminium = 9
			tungsten = 6
		}
	}
	complexity = sp_complexity.large
	allowed = {
		has_dlc = Gotterdammerung
	}
	special_project_parent = {
		sp_rockets_ballistic_missile
	}
	available = {
		FROM = {
			has_tech = experimental_rockets
		}
	}
	ai_will_do = {
		base = 1
	}
	prototype_time = sp_time.prototype.medium
	project_output = {
		country_effects = {
			custom_effect_tooltip = {
				localization_key = SP_ROCKET_SITE_REMINDER_PROJECT
				PROJECT = sp_rockets_ground_to_air_missile
			}
		}
		enable_equipments = {
			sam_missile_equipment_1
		}
	}
	generic_prototype_rewards = {
		sp_rockets_scientist_xp_generic_reward sp_rockets_political_interference_generic_reward sp_rockets_onsite_explosion_generic_reward sp_rockets_generic_major_breakthrough_reward sp_rockets_generic_avionics_advancements_reward sp_air_generic_reward_scientist_xp_1 sp_air_generic_reward_scientist_xp_2 sp_air_generic_reward_scientist_xp_3 sp_air_generic_reward_air_xp_1 sp_air_generic_reward_air_xp_2 sp_air_generic_reward_air_xp_3 sp_air_generic_reward_major_progress_1 sp_air_generic_reward_major_progress_2 sp_air_generic_reward_major_progress_3 sp_air_generic_reward_test_failure_1 sp_air_generic_reward_test_failure_2 sp_air_generic_reward_test_failure_3
	}
	unique_prototype_rewards = {
		sp_rockets_ground_control_improvements_reward = {
			fire_only_once = yes
			threshold = {
				min = 0
				max = 75
			}
			weight = {
				base = 1
			}
			option = {
				token = sp_rockets_flying_bomb_launch_ramp_innovations_reward_option
				iteration_output = {
					country_effects = {
						FROM = {
							add_project_progress_ratio = constant:sp_progress.gain.low
						}
					}
				}
			}
		}
		sp_rockets_vertical_launch_reward = {
			fire_only_once = yes
			threshold = {
				min = 0
				max = 30
			}
			weight = {
				base = 1
			}
			option = {
				token = sp_rockets_flying_bomb_launch_ramp_innovations_reward_option
				iteration_output = {
					country_effects = {
						FROM = {
							add_project_progress_ratio = constant:sp_progress.gain.low
						}
					}
					scientist_effects = {
						add_scientist_xp = {
							e
# ... (truncated)