Sitemap

Storylets Explained

Little chunks of story that know when they’re needed.

6 min readMay 15, 2025

I keep talking about storylets to people, often at inappropriate times and places, so I figured I’d pull a standalone explanation out of one of my other articles and expand it a bit.

Storylets are rearrangeable chunks of story that a player can encounter in any order — the sort of narrative structure you find in Fallen London, King of Dragon Pass, Wildermyth, Reigns, 80 Days, and increasingly sneaking into AAA games and in particular open-world experiences. Storylets are very useful for bringing a world to life.

Emily Short has more to say about them than me.

The Basic Idea

At heart, a storylet is a chunk of narrative with a condition on the front. A big fat IF statement, if you like, which says whether that chunk of narrative is currently available and appropriate to play.

A very small storylet deck.

Think of every possible storylet that could happen in your game as a deck of cards.

When it comes time to deliver more story, you deal a hand of cards consisting of just those storylets that are available right now.

It’s Tuesday, we don’t have the crown, we are at war with the trolls, and we have strawberries.

That hand of cards tells you what story is currently valid. Depending on your game, you could let the player pick one, or randomly select one — whatever works for your use case.

Once a storylet has played out, the world will have changed. Perhaps after the Tuesday Combat Teaparty the war with the trolls will be over — and perhaps one of the trolls gave you a crown! So you’ll redeal a new hand of valid cards:

Now the war with the trolls is over, and we have a crown!

The State of the World

There is a storyworld state associated with this. It contains facts about the storyworld, such as:

The state of the world.

When the conditions attached to each storylet are calculated — i.e. when the hand of cards is redealt — then the answers are figured out by examining the current state of the world.

Most storylets will change the world in some way. Perhaps the tuesday combat teaparty sets your strawberry count to 0. Perhaps meeting the troll ambassador goes badly, and ticks the at war with trolls box again.

Defining these states is entirely up to you as designers of the narrative.

Different Story Structures

With storylets, you could quite easily tell traditional linear or branched stories:

You could also unlock another few pieces of linear story in parallel:

The important thing with these structures is that each storylet should tell a coherent chunk of story rather than being too tightly coupled and that the player can play different storylet chains in between others. That is, once the magic sword is achieved, the player could hear about the dragon, but then head off to enter the tourney, perhaps beat Squire Rodney, before they see the dragon. Then maybe a vengeful Squire Rodney interrupts the player with a back street challenge before the quest for the dragon continues.

It takes careful story design, writing, and a lot of testing to make sure all of this makes sense to the player. However, this can all be tested out with physical cards before going anywhere near code!

Vanishing Cards, Repeating Cards, Aging Cards

Some cards you never want to see again. Once you managed to beat Squire Rodney, that card will never come back by default, because your tournament value is now at least 2, so the storylet condition of “IF tournament IS 1” is never true.

But once you have your back street challenge (the only condition being “beat Sir Rodney”) then with every shuffle, back street challenge might come back again, since back street challenge doesn’t change the world state.

That might be what you want. Rodney might keep coming back for more. But a clever storylet system will let you mark cards in various ways:

  • Always repeat: So long as the condition is true, this can come back immediately.
  • Never repeat: this card will be discarded and never played again, once it’s been played.
  • Don’t repeat for X hands: this card won’t come back for a while (assuming its condition is true).

By carefully selecting how often a card repeats, you can make something that feels right to the player’s story.

Card Priority

Depending on your requirements, you might want cards to have a priority. That is, if a hand of cards is dealt that includes a card about a dragon, perhaps that card should be marked always as having top priority when the player’s next chunk of story is chosen, as having a dragon turn up is probably something important that you should pay attention to right now!

Variant and Personalised Content

You can vary the available story content based on the time of day, the season, the number of orcs on the map, whether Saruman’s tower is still standing, what act of the story we are in, whether the player has specifically asked for a <15 minute mission… whatever works for your game design.

With a good selection of cards, you can imagine creating stories that are relevant to a player. Conditions could include:

  • What type of character has the player chosen? You’re a wizard, Harry? Have a selection of wizard challenges appearing in your hand of cards!
  • What is the player’s play style? Do they always sneak around? Include more sneak encounter cards. Maybe have the thieves’ guild or the assassins’ guild cards start appearing. Do they always charge head-on? Include more cards for thugs and knights.

Expanding the Story

The storylet structure allows you to add and expand your story content constantly — just add new cards! Think of them as expansion packs. Halloween content? Christmas content? Just add the right conditions to your cards! Adding a new class of player character? Put in a bunch of ranger cards! Opened up a new land? Put in a set of extra cards specifically for the creatures that appear in that land. Mix and match, set boundaries and validity any way you want.

Helpful(?) Links

I have put together a small number of other articles with some practical code to help out:

A Full Deck of Stories

Hopefully you can start to see the possibilities of our little cards full of content. Play Wildermyth, Reigns, Fallen London… now imagine the variations of each player’s story in an open world setting. Content and chains of content can be worked on in coherent chunks, tested separately, and added or dropped out of the game as needed.

Please do let me know if you come across good examples of games that are structured like this!

--

--

Ian Thomas
Ian Thomas

Written by Ian Thomas

Ian is narrative director, coder, and writer of video games, films, larp, books, live events, and VR/AR experiences. Find him on Bluesky or LinkedIn.

Responses (1)