Beyond being a roguelike and RPG, Curious Expedition is first a story generator. The game generates storylines that are surprising to me, even after working for years on it. We achieved this by tying the random events together through shared "hooks."
Instead of telling an event module about all viable follow-up events, which feels like gluing them together, we focused on having events know as little as possible about each other. An event only cares about shared resources. For example, when an event required an "ANGRY_COMPANION" as an input, it didn't care how that situation resulted, whether from a prior leadership decision or a random mishap.
The events database works like a cookbook. Each event is a page with a recipe, listing its required "ingredients" (the hooks) and the actions to perform.
This not only made wrangling hundreds of events more manageable by skipping complex dependencies but also resulted in surprising chain reactions we didn't foresee, yet felt logical and believable.
I’ve since applied the same idea to every procedural game I’ve worked on: first define the hook system, then create the events that use those hooks to be loosely chained.
This is post 4 in my series on the "95% problem" in procedural design.
How do you connect the events in your game's design?