Created
September 11, 2025 08:58
-
-
Save Akjosch/ce54597c35441250d3e71dfa0bd7358f to your computer and use it in GitHub Desktop.
Custom pre_ftl_tech_progress_situation for Stellaris, with more true-to-reality progress times
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Monthly Technological Progress of pre-FTL civilizations. | |
| # 12200 years in total | |
| # 10000 BC stone | |
| # 4000 BC bronze | |
| # 1200 BC iron | |
| # 1300 AC late medieval | |
| # 1500 AC renaissance | |
| # 1700 AC steam | |
| # 1800 AC industrial | |
| # 1900 AC machine | |
| # 1940 AC atomic | |
| # 1960 AC early space | |
| # 2200 AC end | |
| # Total progress needed 210000 * 12 = 2520000 | |
| @stone_progress_rate = 35 # 6000 years | |
| @bronze_progress_rate = 75 # 2800 years | |
| @iron_progress_rate = 84 # 2500 years | |
| @early_progress_rate = 1050 # 200 years (late medieval, renaissance) | |
| @mid_progress_rate = 2100 # 100 years (steam, industrial) | |
| @machine_progress_rate = 5250 # 40 years | |
| @atomic_progress_rate = 10500 # 20 years | |
| @early_space_progress_rate = 875 # 240 years | |
| @low_awareness = 100 | |
| @partial_awareness = 200 | |
| @high_awareness = 300 | |
| @full_awareness = 400 | |
| # AI empires don't have pulse events, so we're using non-player facing situations to give them a monthly on-action | |
| pre_ftl_tech_progress_situation = { # This situation's name-key is used in pre-FTL tech level UI code, do not change without code support! | |
| picture = GFX_evt_acquire_asset | |
| complete_icon_frame = GFX_situation_outcome_frame_blue | |
| complete_icon = GFX_situation_outcome_meh | |
| on_progress_complete = { | |
| # Tech up and start the situation again! | |
| custom_tooltip = situation_unknown_outcome_approach | |
| hidden_effect = { destroy_situation = this } | |
| owner = { | |
| country_event = { id = preftl.0 } | |
| } | |
| } | |
| on_abort = { | |
| #Effects when Situation is cancelled via abort_trigger trigger | |
| hidden_effect = { destroy_situation = this } | |
| owner = { | |
| country_event = { id = preftl.0 } | |
| } #Allows situation to be aborted to 'force' technological progress | |
| } | |
| abort_trigger = { | |
| owner = { | |
| is_primitive = no | |
| } | |
| } | |
| on_fail = { | |
| log_error = "pre_ftl_tech_progress_situation situation failed, this is not meant to happen" | |
| # Restart the situation | |
| # if we don't do this, the game crashes to desktop when you try to open the diplomacy screen | |
| custom_tooltip = situation_unknown_outcome_approach | |
| hidden_effect = { destroy_situation = this } | |
| owner = { | |
| start_situation = { | |
| type = pre_ftl_tech_progress_situation | |
| } | |
| } | |
| } | |
| on_monthly = { | |
| random_events = { | |
| 95 = 0 | |
| 5 = preftl.50 # Random event gatekeeper | |
| } | |
| events = { | |
| preftl.5 # Technological progress & setback gatekeeper | |
| preftl.20 # Societal Enlightenment gatekeeper | |
| awareness.200 # Awareness Decay | |
| } | |
| } | |
| stages = { | |
| high_level = { | |
| icon = GFX_situation_stage_1 | |
| icon_background = GFX_situation_stage_frame_blue | |
| end = 2520000 | |
| } | |
| } | |
| monthly_progress = { | |
| # Total: 2520000 | |
| base = 0 | |
| modifier = { | |
| add = @stone_progress_rate | |
| desc = stone_age | |
| owner = { | |
| has_country_flag = stone_age | |
| } | |
| } | |
| modifier = { | |
| add = @bronze_progress_rate | |
| desc = bronze_age | |
| owner = { | |
| has_country_flag = bronze_age | |
| } | |
| } | |
| modifier = { | |
| add = @iron_progress_rate | |
| desc = iron_age | |
| owner = { | |
| has_country_flag = iron_age | |
| } | |
| } | |
| modifier = { | |
| add = @early_progress_rate | |
| desc = early_age | |
| owner = { | |
| OR = { | |
| has_country_flag = late_medieval_age | |
| has_country_flag = renaissance_age | |
| } | |
| } | |
| } | |
| modifier = { | |
| add = @mid_progress_rate | |
| desc = mid_age | |
| owner = { | |
| OR = { | |
| has_country_flag = steam_age | |
| has_country_flag = industrial_age | |
| } | |
| } | |
| } | |
| modifier = { | |
| add = @machine_progress_rate | |
| desc = machine_age | |
| owner = { | |
| has_country_flag = machine_age | |
| } | |
| } | |
| modifier = { | |
| add = @atomic_progress_rate | |
| desc = atomic_age | |
| owner = { | |
| has_country_flag = atomic_age | |
| } | |
| } | |
| modifier = { | |
| add = @early_space_progress_rate | |
| desc = early_space_age | |
| owner = { | |
| has_country_flag = early_space_age | |
| } | |
| } | |
| modifier = { | |
| add = @low_awareness | |
| desc = awareness_low | |
| owner = { | |
| current_awareness_level = low | |
| } | |
| } | |
| modifier = { | |
| add = @partial_awareness | |
| desc = awareness_partial | |
| owner = { | |
| current_awareness_level = medium | |
| } | |
| } | |
| modifier = { | |
| add = @high_awareness | |
| desc = awareness_high | |
| owner = { | |
| current_awareness_level = high | |
| } | |
| } | |
| modifier = { | |
| add = @full_awareness | |
| desc = awareness_full | |
| owner = { | |
| current_awareness_level = full | |
| } | |
| } | |
| modifier = { | |
| mult = 1.5 | |
| desc = acquired_tech | |
| owner = { | |
| has_country_flag = acquired_tech | |
| } | |
| } | |
| modifier = { | |
| mult = 2 | |
| desc = technological_breakthrough | |
| has_situation_flag = technological_breakthrough | |
| } | |
| modifier = { | |
| mult = 1.25 | |
| desc = technological_breakthrough | |
| has_situation_flag = belives_the_great_gestalt | |
| } | |
| modifier = { | |
| mult = 1.25 | |
| desc = technological_breakthrough | |
| has_situation_flag = successful_asteroid_interception | |
| } | |
| modifier = { | |
| mult = 0.25 | |
| desc = technological_setback | |
| has_situation_flag = technological_setback | |
| } | |
| modifier = { | |
| mult = 0.50 | |
| desc = technological_setback | |
| mid_game_years_passed <= 0 | |
| } | |
| modifier = { | |
| mult = 0 | |
| desc = tech_frozen | |
| owner = { has_country_flag = tech_frozen } | |
| } | |
| modifier = { | |
| mult = 0 | |
| desc = tech_frozen | |
| owner = { | |
| capital_scope = { | |
| is_planet_class = pc_habitat | |
| } | |
| } | |
| } | |
| modifier = { | |
| mult = 3 | |
| desc = open_technological_enlightenment | |
| owner = { | |
| has_country_flag = open_technological_enlightenment_pact | |
| capital_scope = { | |
| has_observation_outpost = yes | |
| observation_outpost_owner = { | |
| if = { | |
| limit = { | |
| is_galactic_community_formed = yes | |
| is_galactic_community_member = yes | |
| } | |
| NOT = { is_active_resolution = resolution_pre_ftl_stances_equal_standing } | |
| } | |
| else = { | |
| always = yes | |
| } | |
| } | |
| } | |
| } | |
| } | |
| modifier = { | |
| mult = 4.5 | |
| desc = open_technological_enlightenment | |
| owner = { | |
| has_country_flag = open_technological_enlightenment_pact | |
| capital_scope = { | |
| has_observation_outpost = yes | |
| observation_outpost_owner = { | |
| is_galactic_community_formed = yes | |
| is_galactic_community_member = yes | |
| is_active_resolution = resolution_pre_ftl_stances_equal_standing | |
| } | |
| } | |
| } | |
| } | |
| modifier = { | |
| mult = 1.5 | |
| desc = good_trade | |
| owner = { | |
| capital_scope = { | |
| has_modifier = fruitful_coop_planet_mod | |
| } | |
| } | |
| } | |
| modifier = { | |
| mult = 1.25 | |
| desc = payback_student | |
| owner = { | |
| has_country_flag = open_technological_enlightenment_pact | |
| capital_scope = { | |
| has_observation_outpost = yes | |
| observation_outpost_owner = { | |
| has_modifier = payback_student | |
| } | |
| } | |
| } | |
| } | |
| } | |
| approach = { | |
| name = approach_revolt_do_nothing | |
| icon = GFX_situation_approach_this_is_fine | |
| icon_background = GFX_situation_approach_bg_yellow | |
| default = yes | |
| on_select = { | |
| custom_tooltip = deficit_approach_do_nothing_tooltip | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment