The idea
I’ve wanted a particular Crusader Kings mod for a long time. It would remove all of the game’s events, feasts and hunts included, and replace them with something that keeps track of the relationships between characters and builds a coherent story from them as the game goes. The story would be driven by the game’s engine, and it would feed back into it.
This is something fun I’m playing with at the moment. I haven’t properly playtested it yet, but there are sparks, and this is how I imagine it working.
How vanilla does it
CK3’s writing is coherent. What I don’t like is the goofiness and the lack of relevance. Events are pre-written and drawn at random from pools, so everyone gets the same ones. The first live-written scene shows the difference:
The post of my second has lain vacant. […] Three candidates have stepped forward to offer themselves for the role. [candidate_1], who offers to swear himself to me till his dying breath. [candidate_2], who seems about ready to work himself into a stupour for me. And, of course, [candidate_3] — undoubtedly the best qualified at camp for the role.
Eadmær finds me at the edge of the camp and walks me a little further before he speaks. “She is a good woman. We came to you the same morning, she and I. But I am the elder, and I am your sworn sword. Should the worst befall you, with Halfdan at war across the border, a camp needs a sword at its head.”
Eadmær, Beorhtgyth, the camp and Halfdan’s war are all real, taken from the game at the moment the scene fired. So are the options, and whichever you pick changes how they feel about you in the game.

An LLM needs a seed
Having an LLM write the events doesn’t work on its own. An LLM only tells a limited number of stories, and it needs some sort of seed to make it vary enough. CK3’s game state is a particularly good seed.
Two of the first scenes opened the same way, and both were about whose handwriting was on a letter.
Nobody wrote the Maccus story. It was sitting in the save.
The story engine
The model only writes. Everything around it is the story engine.
CK3 (the game's own simulation)
| save file + the engine's own chronicle
v
story engine
- silences vanilla's random events
- works out who matters to your character, and why
- picks which situation deserves a scene
- hands the model a brief of checked facts
v
LLM writes the scene
v
engine checks it: invented facts are thrown out
v
you choose -> real effects in the game -> remembered
Before a scene appears, and again when you click, the engine checks the facts still hold. If the world has moved on, the scene is dropped rather than showing you something that no longer matches the game.
Choices come back
When Eadric turned Maccus away, Maccus still held it against him seven months later, and the game remembered why. That’s the part that doesn’t run out: a save only holds so many stories, but your own choices keep making new ones.
The game keeps its own history
A save forgets how things happened. Mine knew Eadric had taken Maccus’s county “in a holy war”, but not how, and I couldn’t remember either. So the engine now writes its own chronicle as the game runs:
Ælla was executed by way of Blood Eagle, aged 45. His son Ælfgar inherited Northumbria.
Not everything is about you
The engine should be a storyteller rather than a director. It should ask questions like “who is your character?”, and not every situation should revolve around you. In one test scene another character, Thoræd, made his own decision through the game’s AI, and the player could only advise him or stand aside.
Small moments
Between the big scenes there are small ones, written from the people actually around you:
Wulfwaru shares her bread round the fire while Cuthberht guards his own portion; you watch, and she laughs anyway.
Cuthberht is greedy and Wulfwaru is sociable, in the game as well as the sentence.
An agent builds it
The surprise has been how well Opus 5.5 works as an agent on this. It edits the mod, launches the game, tests it, reflects, and goes again, and it’s making real progress on its own. A lot of that progress is learning the game. It found that inviting someone to visit your court quietly stripped him of his offices at his own court, which you only catch by running the game and looking.
What’s next
The next idea is a narrator: one agent that runs for the whole campaign and keeps a journal of what’s open, what’s been set up, and who your character is becoming. Then it’s playtesting, which is the only way to find out whether the sparks turn into stories.
I’d love to do the same for Stellaris, but its engine doesn’t support it.