Impossible Actions in AI Stories Become Scenes

Impossible actions in AI stories should never come back as an error. Why a refusal breaks the fiction, and what a narrated failure gives you instead.

By The Fabledrift Team · · 8 min read

Impossible actions in AI stories should not come back as an error. The attempt happens, it fails inside the world, and the failure leaves the scene different from how it started: you shoulder the door, the frame gives a quarter inch, and something on the other side stops moving. A narrator that answers with a refusal has stopped narrating and started administering.

  • A refusal spends a turn and returns no story; a narrated failure spends a turn and returns a scene.
  • Zork I’s parser answered unparseable input from a fixed list, including “That sentence isn’t one I recognize.”
  • Inform 7’s Standard Rules still give refusals names, among them the can’t go that way rule and the block attacking rule.
  • An AI narrator has no parser to fail, so a refusal is a decision somebody made rather than a limit of the machine.
  • Only one kind of no belongs outside the prose: the text the app will not write at all.

Why does an error message break a story?

Because it changes who is speaking. Every other sentence on the page comes from inside the fiction — a narrator describing a room, a character answering you badly. A refusal comes from the software, addressed to the operator, in the vocabulary of a form that failed validation. You are no longer reading. You are being told your input was rejected.

The second cost is time. A refused move still spends the turn you took to write it and returns nothing readable, nothing the world remembers, no new pressure on anyone. Across an evening those turns accumulate into a specific feeling: that the story is a locked room you are being politely walked out of every few minutes.

What should happen to impossible actions in AI stories?

The attempt should happen on the page and fail there. Impossible actions in AI stories are often the most interesting moves a reader can make, precisely because they are the ones no author would have written a branch for. Trying to lift a portcullis alone is a scene about your shoulders and the noise it makes. Asking a dead man a question is a scene about the silence afterward.

Fabledrift, an interactive fiction app for Android, is built on that rule: you write your move in your own words, an attempted action happens even if it fails, and an impossible move becomes a scene rather than an error. The narrator is handed the story’s structured memory on every turn, so the failure can be specific — this door, this weather, this promise you made two chapters ago.

Two columns following the same reader move, forcing a locked door. In the refusal column the narrator answers with the sentence You can't do that, the scene is unchanged, and the page has not moved. In the narrated failure column the wood holds and the bolt scrapes, someone inside stops moving, and the story is further along.A refusalA narrated failureYou put your shoulder to the door.the move you wrote“You can’t do that.”the software, talking to youThe same room, unchanged.a turn spent, nothing gainedYou put your shoulder to the door.the move you wroteThe wood holds. The bolt scrapes.the attempt happens, and failsInside, something stops moving.the failure is informationThe page has not moved.The page has moved.

Both columns spend one move. Only one of them leaves you somewhere you have not been. That is the entire argument, and it does not rest on the model being clever. It rests on somebody having decided in advance that failure is content.

Where the canned refusal came from

The error message is an inheritance rather than a decision anyone made recently. Parser games needed one, because the parser could genuinely fail to understand. It held a fixed vocabulary and a grammar a few words wide, and input outside that produced nothing to act on.

You can read the original list. Zork I’s ZIL source, archived for education and historical work rather than play, keeps its parser errors in gparser.zil as fixed strings: “That sentence isn’t one I recognize.” for input with no matching syntax, “There was no verb in that sentence!” when the verb is missing, and “I beg your pardon?” for an empty line. None of them is set in the Great Underground Empire.

Inform 7, Graham Nelson’s natural-language system for writing interactive fiction and open source since 2022, handles the same problem more carefully. Its Standard Rules give every stock refusal a name — the can’t go that way rule, the can’t take what’s fixed in place rule, the block attacking rule, the block kissing rule — and each one prints a single short sentence.

Naming them matters. A rule with a name is a rule an author can substitute, which is the difference between a default and a wall. The canned line exists so that a work in progress has something to print before the bespoke sentence gets written. It was never meant to be the thing readers mostly read.

An AI narrator has none of that excuse. There is no vocabulary to fall outside of and no grammar to fail against. When one answers a move with a refusal, nothing broke; a choice was made, either by the people who wrote its instructions or by a model sliding back into the habits of an assistant.

Which refusals are worth keeping?

Some are. Not many, and only one of them has any business leaving the fiction.

The kind of no What the reader tried How it should reach the page
Physically impossible Lifting a portcullis alone The strain, the inch it rises, the sound
Not possible yet A door whose key is three scenes away The lock holds, and tells you what it wants
Against the record Using a lantern left behind at the ford The narrator notices the absence in-world
Outside the content level A scene the world’s cover rules out The story turns away in the narrator’s voice
The app will not write it Text the makers have ruled out Said once, plainly, outside the prose

The fourth row is a labeling decision before it is a filtering one. A content level declared on a world’s cover, the way a book carries an age rating, tells you what kind of story you are in before you start. A filter that interrupts a sentence tells you afterward, and takes the paragraph you were reading with it.

The fifth row is the honest exception. There is text a story app will not produce, and dressing that up as an in-world event is worse than saying so. Say it once, in plain language, and hand the page back. What ruins an evening is rarely the boundary itself. It is the lecture attached to it.

How do you write a move that fails well?

Attempt one thing, name what you expect to stop you, and leave the rest to the narrator. Moves that come back thin are usually the ones carrying three intentions at once, or asking for permission to have the first.

  • Try instead of asking. Can I climb the gate? is a question to the system; I go over the gate is an attempt. That habit comes from chat, and it is the most common way readers stall a scene, as talking to characters rather than the AI sets out at length.
  • Name the obstacle. I force the door, expecting the frame to give before the lock does hands the narrator a specific way to fail, which is more useful than a specific way to succeed.
  • Keep making impossible moves. Walking into the sea, arguing with a corpse, addressing a detail the narrator invented one line ago — these produce the pages nobody planned.
  • Retell rather than argue. If a refusal does arrive, do not fight it inside the scene. Step back and rewrite the move; the difference between returning to an earlier scene and asking for the same one again is covered in undo in AI story games.
  • Read the failure for information. A lock that resists in a particular way has told you something about the lock, and usually about who fitted it.

Try the door anyway

The measure of a narrator is not what it does when you cooperate. Anything can write the corridor you asked for. The measure is the move that should not work — the one you make at eleven at night because you want to see what the thing does when it is pushed.

A weak system prints an apology and hands the turn back unspent. A good one lets you push, lets the door hold, and lets whatever is behind it hear you. Those two answers occupy about the same number of words on the page. Only one of them is a story.

Frequently asked questions

What happens when you try something impossible in an AI story?

In a well-built narrator the attempt is written rather than rejected. Your character tries, the world resists, and the failure becomes part of the scene. An error message is the sign that the system has stepped outside the fiction.

Why does an AI narrator refuse to write what I asked?

Usually one of three reasons: the move contradicts the story's record, it falls outside the world's declared content level, or it is something the app will not write at all. Only the last of those needs to be said outside the prose.

Is a failed action a wasted turn?

No. A failure that gets narrated changes the world, because a lock that resists tells you what it wants and a guard who hears you is a new problem. The refusal is the wasted turn, since nothing in the story moved.

How do I get a better result after a refusal?

Retell the scene rather than arguing with the narrator inside it. Stepping back and rewriting your move as one specific attempt usually produces the failure you were reaching for.

Do AI stories have the guess-the-verb problem of old text adventures?

Not in the same way. A parser had a fixed vocabulary and rejected anything outside it, while a narrator reads plain language, so the remaining limits are editorial rather than lexical.