• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Dr Pippy

Major
19 Badges
Sep 27, 2020
613
1.880
  • Stellaris: Distant Stars
  • Stellaris: Nemesis
  • Stellaris: Necroids
  • Stellaris: Federations
  • Stellaris: Lithoids
  • Age of Wonders: Planetfall
  • Stellaris: Ancient Relics
  • Stellaris: Megacorp
  • Shadowrun: Hong Kong
  • Shadowrun: Dragonfall
  • Stellaris
  • Stellaris: Apocalypse
  • Stellaris: Humanoids Species Pack
  • Age of Wonders III
  • Stellaris: Synthetic Dawn
  • Stellaris - Path to Destruction bundle
  • Stellaris: Leviathans Story Pack
  • Stellaris: Digital Anniversary Edition
  • Tyranny: Archon Edition
So apparently there's a (afaik) unrecoverable bug that can potentially hit when the Contingency is trying to spawn its hubs, if you've happened to build a ring world in one of its systems.

If I'm understanding the debug tooltips correctly, four random uninhabitable worlds will get tagged as Contingency worlds at the beginning of the game:

ContingencyPlanetFlag.jpg


If you build a ring world in one of the systems, all of the planets are destroyed, and so the Contingency hub can't spawn:

BuggedContingencyCropped.jpg


You'll only get three of the four worlds, and (at least in my playthrough), it also will fail to spawn any fleets or outposts in any of the other worlds. You also can't bombard the planet or interact with it in any way, so it's impossible for the event to proceed.

Why not post this in the bug forums? Because it has already been posted in the bug forums, at least twice:
The older report dates back to January 2022; neither report was acknowledged, nor has the issue been addressed in the intervening two and a half years.

It's pretty frustrating having this crop up a good 20 or 30 hours into a playthrough that now appears more or less ruined. I'll just say that I don't think that proper attention was paid to dealing with corner cases when this system was being designed, and it really needs to be a bit more robust: have a fallback world (or two) that can spawn a Contingency hub if one of them is unavailable for some reason. Or don't pick them at the game start, wait until the Contingency spawns and choose from worlds that are available at that point. But the current design seems guaranteed to be fragile.
 
  • 6
Reactions:
Could make for an interesting event during the construction - if you build in a Contingency system, you could accidentally activate it and trigger the Contingency or get a special project to try and take advantage of it.

[EDIT]: Huh, a thought. What happens if the system is destroyed by releasing the Elder One or a Star Eater?
 
Last edited:
  • 3
  • 1Like
  • 1Love
Reactions:
Honestly I'm surprised the first bug report is from 2022; this seems like it should have been an issue since Contingency and ringworlds both existed simultaneously, so like... 2017?
 
Isnt there an explicite excemption in the code for contingency systems? The player should usually not even be able to build a ringworld in a system with contingency flag.
If this somehow is still possible that section of the code is bugged or can be circumvented by the player.
 
  • 1
Reactions:
Could make for an interesting event during the construction - if you build in a Contingency system, you could accidentally activate it and trigger the Contingency or get a special project to try and take advantage of it.

[EDIT]: Huh, a thought. What happens if the system is destroyed by releasing the Elder One or a Star Eater?
The planet getting cracked has no impact on the hub. As the contingency flag stays on that planet - so it fixes the crack when the hub spawns.
 
  • 1Haha
Reactions:
Honestly I'm surprised the first bug report is from 2022; this seems like it should have been an issue since Contingency and ringworlds both existed simultaneously, so like... 2017?
It was the earliest one I found after a really quick search; there could definitely have been more!
Isnt there an explicite excemption in the code for contingency systems? The player should usually not even be able to build a ringworld in a system with contingency flag.
If this somehow is still possible that section of the code is bugged or can be circumvented by the player.
Not that I've been able to find. There are a lot of .txt files that might contain the code setting the ai_hub tag, but it's not obvious to me which one and I've not been able to find it yet. Or it could be hard-coded. Regardless, there was no indication that anything was different about that system. I even went back and reloaded a save from before I built that ring world and tried building it again, and it just showed the normal interface for building a ring world.

Seems like one easy fix would be to limit potential Contingency planets to those in binary or triple star systems, since you can't build ringworlds in those.
 
  • 1
Reactions:
It was the earliest one I found after a really quick search; there could definitely have been more!

Not that I've been able to find. There are a lot of .txt files that might contain the code setting the ai_hub tag, but it's not obvious to me which one and I've not been able to find it yet. Or it could be hard-coded. Regardless, there was no indication that anything was different about that system. I even went back and reloaded a save from before I built that ring world and tried building it again, and it just showed the normal interface for building a ring world.

Seems like one easy fix would be to limit potential Contingency planets to those in binary or triple star systems, since you can't build ringworlds in those.
It should be in the megastructure folder inside the ringworld file. Where the building rules are set.
 
  • 1
Reactions:
It should be in the megastructure folder inside the ringworld file. Where the building rules are set.
Thanks, I found it!

Looks like the relevant code is here:
Code:
possible = {
        hidden_trigger = {
            exists = starbase
        }
        custom_tooltip = {
            fail_text = "requires_inside_border"
            is_inside_border = from
        }
        custom_tooltip = {
            fail_text = "requires_surveyed_system"
            NOT = {
                any_system_planet = {
                    is_surveyed = {
                        who = prev.from
                        status = no
                    }
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_habitable_planets"
            NOT = {
                any_system_planet = {
                    colonizable_planet = yes
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_black_hole"
            NOT = { is_star_class = sc_black_hole }
        }
        custom_tooltip = {
            fail_text = "requires_no_binary_trinary"
            NOR = {
                is_star_class = sc_binary_1
                is_star_class = sc_binary_2
                is_star_class = sc_binary_3
                is_star_class = sc_binary_4
                is_star_class = sc_binary_5
                is_star_class = sc_binary_6
                is_star_class = sc_binary_7
                is_star_class = sc_binary_8
                is_star_class = sc_binary_9
                is_star_class = sc_binary_10
                is_star_class = sc_trinary_1
                is_star_class = sc_trinary_2
                is_star_class = sc_trinary_3
                is_star_class = sc_trinary_4
            }
        }


        custom_tooltip = {
            fail_text = "requires_no_existing_megastructure"
            has_no_non_gate_megastructure = yes
            NOT = {
                any_system_planet = {
                    is_planet_class = pc_cosmogenesis_world
                }
            }
        }
    }

Looks like the failure conditions (i.e., when you can't build a ring world) are:
  1. When the system is outside your borders
  2. When it's not fully surveyed
  3. When it has habitable planets
  4. When it's a black hole
  5. When it's a binary or trinary
  6. When it has an existing megastructure
Doesn't look like there's anything (or at least anything obvious) about Contingency hubs.
 
This being an issue across all paradox games needs to be addressed. This is not a stellaris only issue this is a corporate issue.
Grumble grumble EU4 envoy times grumble multiple reports over like five years before it was patched immediately after someone else made a main forum post about them grumble grumble
 
  • 1
Reactions:
Okay, I've now had a chance to look at this more thoroughly and try some troubleshooting. There appear to be no workarounds. In particular, things that don't work are:
  • Trying to use console commands to spawn the Contingency hub on another planet
  • Using console commands to skip the destruction of the hubs and go straight to the final system (which would be a bad solution but would at least let you finish the crisis)
  • Editing the save game to spawn the Contingency hub on another planet: apparently there's some kind of script that runs at the game start on all the Contingency systems, so there's not an obvious way to change this after the game start.
The only option seems to be reloading a save from before you built the ring world, which in my case would involve a rollback of about 75 years and 10+ hours of game play. The only way I can think of to be sure you avoid this would be to use the console to make sure you're not building a ringworld in a Contingency system, but aside from not getting achievements, this also means that you're missing the suspense of wondering where their systems will spawn.

As an aside: the Centana crisis seems to run into showstopping bugs (that are fortunately fixable with the console) ~1/3 of the time where she won't expand into neighboring systems and so her event won't progress. And the Prethoryn at least used to have a problem where some of their ships would go MIA for extended periods of time so that crisis would never end.

If you have four climatic endgame crises, and three of them suffer from bugs that cause them to not function, this raises some pretty serious concerns about the QA process.
 
  • 2
Reactions:
they could have an event, like the killer butterflies you discover when building a ringworld, where your construction ship is mysteriously destroyed before completing the ringworld frame. a situation can then be triggered, and all sorts of mysteries can happen in that system. it doesn't immediately trigger the contingency but it starts a situation countdown that goes faster the closer you are to late game. depending on your approach during the situation you can gain some (permanent) advantages or (temporary) disadvantages against the contingency. this way, they prevent you destroying the contingency world, while adding some fun content. you can then go build your ringworld elsewhere (costs are refunded upon construction ship destruction and event trigger). also, the system should probably prevent habitat construction the same way, don't want people losing colonies the moment the contingency arrives.
 
  • 1Like
Reactions:
Thanks, I found it!

Looks like the relevant code is here:
Code:
possible = {
        hidden_trigger = {
            exists = starbase
        }
        custom_tooltip = {
            fail_text = "requires_inside_border"
            is_inside_border = from
        }
        custom_tooltip = {
            fail_text = "requires_surveyed_system"
            NOT = {
                any_system_planet = {
                    is_surveyed = {
                        who = prev.from
                        status = no
                    }
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_habitable_planets"
            NOT = {
                any_system_planet = {
                    colonizable_planet = yes
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_black_hole"
            NOT = { is_star_class = sc_black_hole }
        }
        custom_tooltip = {
            fail_text = "requires_no_binary_trinary"
            NOR = {
                is_star_class = sc_binary_1
                is_star_class = sc_binary_2
                is_star_class = sc_binary_3
                is_star_class = sc_binary_4
                is_star_class = sc_binary_5
                is_star_class = sc_binary_6
                is_star_class = sc_binary_7
                is_star_class = sc_binary_8
                is_star_class = sc_binary_9
                is_star_class = sc_binary_10
                is_star_class = sc_trinary_1
                is_star_class = sc_trinary_2
                is_star_class = sc_trinary_3
                is_star_class = sc_trinary_4
            }
        }


        custom_tooltip = {
            fail_text = "requires_no_existing_megastructure"
            has_no_non_gate_megastructure = yes
            NOT = {
                any_system_planet = {
                    is_planet_class = pc_cosmogenesis_world
                }
            }
        }
    }

Looks like the failure conditions (i.e., when you can't build a ring world) are:
  1. When the system is outside your borders
  2. When it's not fully surveyed
  3. When it has habitable planets
  4. When it's a black hole
  5. When it's a binary or trinary
  6. When it has an existing megastructure
Doesn't look like there's anything (or at least anything obvious) about Contingency hubs.
It seems u are right. I misremembered - believed in contingency world instead of cosmogenesis world
 
Thanks, I found it!

Looks like the relevant code is here:
Code:
possible = {
        hidden_trigger = {
            exists = starbase
        }
        custom_tooltip = {
            fail_text = "requires_inside_border"
            is_inside_border = from
        }
        custom_tooltip = {
            fail_text = "requires_surveyed_system"
            NOT = {
                any_system_planet = {
                    is_surveyed = {
                        who = prev.from
                        status = no
                    }
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_habitable_planets"
            NOT = {
                any_system_planet = {
                    colonizable_planet = yes
                }
            }
        }
        custom_tooltip = {
            fail_text = "requires_no_black_hole"
            NOT = { is_star_class = sc_black_hole }
        }
        custom_tooltip = {
            fail_text = "requires_no_binary_trinary"
            NOR = {
                is_star_class = sc_binary_1
                is_star_class = sc_binary_2
                is_star_class = sc_binary_3
                is_star_class = sc_binary_4
                is_star_class = sc_binary_5
                is_star_class = sc_binary_6
                is_star_class = sc_binary_7
                is_star_class = sc_binary_8
                is_star_class = sc_binary_9
                is_star_class = sc_binary_10
                is_star_class = sc_trinary_1
                is_star_class = sc_trinary_2
                is_star_class = sc_trinary_3
                is_star_class = sc_trinary_4
            }
        }


        custom_tooltip = {
            fail_text = "requires_no_existing_megastructure"
            has_no_non_gate_megastructure = yes
            NOT = {
                any_system_planet = {
                    is_planet_class = pc_cosmogenesis_world
                }
            }
        }
    }

Looks like the failure conditions (i.e., when you can't build a ring world) are:
  1. When the system is outside your borders
  2. When it's not fully surveyed
  3. When it has habitable planets
  4. When it's a black hole
  5. When it's a binary or trinary
  6. When it has an existing megastructure
Doesn't look like there's anything (or at least anything obvious) about Contingency hubs.
There are a few ways go going about it I can think of off the top of my head.

1. When building a ringworld the game checks for flags of the planets and if the contingency flags are there it respawns them somewhere else in the galaxy. (Ringworld Megastructure files)
2. Only spawn the contingency flags in binary or trinary systems. (Probably a game start event. Super easy to mod. Just a few lines of code)
3. When contingency event fires, it will check for flags, and if it cant find one it will move it elsewhere. (Contingency event files)

I dont like the idea of players looking out for binary trinary systems though.. so I'd probably make it so that the flags move systems personally. But the 2nd option is super easy since it's probably just a few lines of extra code. Not an easy way to retroactively fix existing games though I wouldnt have thought. (maybe)